Annotation of 42BSD/games/sail/game.c, revision 1.1

1.1     ! root        1: #ifndef lint
        !             2: static char *sccsid = "@(#)game.c      1.3 83/05/20";
        !             3: #endif
        !             4: 
        !             5: #include "externs.h"
        !             6: 
        !             7: maxturns(shipnum)
        !             8: int shipnum;
        !             9: {
        !            10:        register int turns;
        !            11:        struct File *ptr;
        !            12: 
        !            13:        turns = specs[scene[game].ship[shipnum].shipnum].ta;
        !            14:        if ((ptr = scene[game].ship[shipnum].file) -> drift > 1 && turns){
        !            15:                turns--;
        !            16:                if(ptr -> FS == 1)
        !            17:                        turns = 0;
        !            18:                turns |= 0100000;
        !            19:        }
        !            20:        return(turns);
        !            21: }
        !            22: 
        !            23: maxmove(shipnum, dir, fs)
        !            24: int shipnum, dir, fs;
        !            25: {
        !            26:        register int riggone = 0, Move, full, flank = 0;
        !            27:        struct shipspecs *ptr;
        !            28: 
        !            29:        full = scene[game].ship[shipnum].file -> FS;
        !            30:        ptr = &specs[scene[game].ship[shipnum].shipnum];
        !            31:        Move = ptr -> bs;
        !            32:        if (!ptr -> rig1) riggone++;
        !            33:        if (!ptr -> rig2) riggone++;
        !            34:        if (!ptr -> rig3) riggone++;
        !            35:        if (!ptr -> rig4) riggone++;
        !            36:        if ((full || fs) && fs != -1){
        !            37:                flank = 1;
        !            38:                Move = ptr -> fs;
        !            39:        }
        !            40:        if (dir == winddir)
        !            41:                Move -= 1 + WET[windspeed][ptr -> class-1].B;
        !            42:        else if (dir == winddir + 2 || dir == winddir - 2 || dir == winddir - 6 || dir == winddir + 6)
        !            43:                Move -= 1 + WET[windspeed][ptr -> class-1].C;
        !            44:        else if (dir == winddir + 3 || dir == winddir - 3 || dir == winddir - 5 || dir == winddir + 5)
        !            45:                Move = (flank ? 2 : 1) - WET[windspeed][ptr -> class-1].D;
        !            46:        else if (dir == winddir + 4 || dir == winddir - 4)
        !            47:                Move = 0;
        !            48:        else 
        !            49:                Move -= WET[windspeed][ptr -> class-1].A;
        !            50:        Move -= riggone;
        !            51:        Move = Move < 0 ? 0 : Move;
        !            52:        return(Move);
        !            53: }
        !            54: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.