BSD 4_2 release
[unix-history] / usr / src / games / sail / game.c
index e8de60b..249e7f3 100644 (file)
@@ -1,54 +1,54 @@
 #ifndef lint
 #ifndef lint
-static char *sccsid = "@(#)game.c      1.4 83/07/20";
+static char *sccsid = "@(#)game.c      1.3 83/05/20";
 #endif
 
 #include "externs.h"
 
 #endif
 
 #include "externs.h"
 
-maxturns(ship)
-register struct ship *ship;
+maxturns(shipnum)
+int shipnum;
 {
        register int turns;
 {
        register int turns;
+       struct File *ptr;
 
 
-       turns = ship->specs->ta;
-       if (ship->file->drift > 1 && turns) {
+       turns = specs[scene[game].ship[shipnum].shipnum].ta;
+       if ((ptr = scene[game].ship[shipnum].file) -> drift > 1 && turns){
                turns--;
                turns--;
-               if (ship->file->FS == 1)
+               if(ptr -> FS == 1)
                        turns = 0;
                turns |= 0100000;
        }
                        turns = 0;
                turns |= 0100000;
        }
-       return turns;
+       return(turns);
 }
 
 }
 
-maxmove(ship, dir, fs)
-register struct ship *ship;
-int dir, fs;
+maxmove(shipnum, dir, fs)
+int shipnum, dir, fs;
 {
 {
-       register int riggone = 0, Move, flank = 0;
+       register int riggone = 0, Move, full, flank = 0;
+       struct shipspecs *ptr;
 
 
-       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) {
+       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){
                flank = 1;
                flank = 1;
-               Move = ship->specs->fs;
+               Move = ptr -> fs;
        }
        if (dir == winddir)
        }
        if (dir == winddir)
-               Move -= 1 + WET[windspeed][ship->specs->class-1].B;
+               Move -= 1 + WET[windspeed][ptr -> 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][ship->specs->class-1].C;
+               Move -= 1 + WET[windspeed][ptr -> 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][ship->specs->class-1].D;
+               Move = (flank ? 2 : 1) - WET[windspeed][ptr -> 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][ship->specs->class-1].A;
+               Move -= WET[windspeed][ptr -> class-1].A;
        Move -= riggone;
        Move = Move < 0 ? 0 : Move;
        return(Move);
 }
        Move -= riggone;
        Move = Move < 0 ? 0 : Move;
        return(Move);
 }
+