X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/6ed4e2c694fbccf6b4ce3180ae34ed18cd6f40e0..aabea72fd374387f03f55ddb5e5772b968b1f254:/usr/src/games/sail/game.c diff --git a/usr/src/games/sail/game.c b/usr/src/games/sail/game.c index 8020d18069..58bec8aa03 100644 --- a/usr/src/games/sail/game.c +++ b/usr/src/games/sail/game.c @@ -1,55 +1,54 @@ #ifndef lint -static char *sccsid = "@(#)game.c 1.2 83/05/19"; +static char *sccsid = "@(#)game.c 2.1 83/10/31"; #endif -#include "externs.h" - +#include "externs.h" -maxturns(shipnum) -int shipnum; +maxturns(ship, af) +register struct ship *ship; +char *af; { - int turns; - struct File *ptr; + register int turns; - turns = specs[scene[game].ship[shipnum].shipnum].ta; - if ((ptr = scene[game].ship[shipnum].file) -> drift > 1 && turns){ + turns = ship->specs->ta; + if (*af = (ship->file->drift > 1 && turns)) { turns--; - if(ptr -> FS == 1) + if (ship->file->FS == 1) turns = 0; - turns |= 0100000; } - return(turns); + return turns; } -maxmove(shipnum, dir, fs) -int shipnum, dir, fs; +maxmove(ship, dir, fs) +register struct ship *ship; +int dir, fs; { - register int riggone = 0, Move, full, flank = 0; - struct shipspecs *ptr; + register int riggone = 0, Move, flank = 0; - full = scene[game].ship[shipnum].file -> FS; - ptr = &specs[scene[game].ship[shipnum].shipnum]; - Move = ptr -> bs; - if (!ptr -> rig1) riggone++; - if (!ptr -> rig2) riggone++; - if (!ptr -> rig3) riggone++; - if (!ptr -> rig4) riggone++; - if ((full || fs) && fs != -1){ + Move = ship->specs->bs; + if (!ship->specs->rig1) + riggone++; + if (!ship->specs->rig2) + riggone++; + if (!ship->specs->rig3) + riggone++; + if (!ship->specs->rig4) + riggone++; + if ((ship->file->FS || fs) && fs != -1) { flank = 1; - Move = ptr -> fs; + Move = ship->specs->fs; } if (dir == winddir) - Move -= 1 + WET[windspeed][ptr -> class-1].B; + Move -= 1 + WET[windspeed][ship->specs->class-1].B; else if (dir == winddir + 2 || dir == winddir - 2 || dir == winddir - 6 || dir == winddir + 6) - Move -= 1 + WET[windspeed][ptr -> class-1].C; + Move -= 1 + WET[windspeed][ship->specs->class-1].C; else if (dir == winddir + 3 || dir == winddir - 3 || dir == winddir - 5 || dir == winddir + 5) - Move = (flank ? 2 : 1) - WET[windspeed][ptr -> class-1].D; + Move = (flank ? 2 : 1) - WET[windspeed][ship->specs->class-1].D; else if (dir == winddir + 4 || dir == winddir - 4) Move = 0; else - Move -= WET[windspeed][ptr -> class-1].A; + Move -= WET[windspeed][ship->specs->class-1].A; Move -= riggone; Move = Move < 0 ? 0 : Move; return(Move); } -