prints stats wrong way round
[unix-history] / usr / src / games / sail / game.c
index 249e7f3..58bec8a 100644 (file)
@@ -1,54 +1,54 @@
 #ifndef lint
 #ifndef lint
-static char *sccsid = "@(#)game.c      1.3 83/05/20";
+static char *sccsid = "@(#)game.c      2.1 83/10/31";
 #endif
 
 #include "externs.h"
 
 #endif
 
 #include "externs.h"
 
-maxturns(shipnum)
-int shipnum;
+maxturns(ship, af)
+register struct ship *ship;
+char *af;
 {
        register int turns;
 {
        register int turns;
-       struct File *ptr;
 
 
-       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--;
                turns--;
-               if(ptr -> FS == 1)
+               if (ship->file->FS == 1)
                        turns = 0;
                        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;
                flank = 1;
-               Move = ptr -> fs;
+               Move = ship->specs->fs;
        }
        if (dir == winddir)
        }
        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)
        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)
        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 
        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);
 }
        Move -= riggone;
        Move = Move < 0 ? 0 : Move;
        return(Move);
 }
-