|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.