V10/games/sail/game.c

Compare this file to the similar file:
Show the results in this format:

#ifndef lint
static	char *sccsid = "@(#)game.c	1.3 83/05/20";
#endif

#include "externs.h"

maxturns(shipnum)
int shipnum;
{
	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--;
		if(ptr->FS == 1)
			turns = 0;
		turns |= 0100000;
	}
	return(turns);
}

maxmove(shipnum, dir, fs)
int shipnum, dir, fs;
{
	register int riggone = 0, Move, full, flank = 0;
	struct shipspecs *ptr;

	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;
		Move = ptr->fs;
	}
	if (dir == winddir)
		Move -= 1 + WET[windspeed][ptr->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;
	else if (dir == winddir + 3 || dir == winddir - 3 || dir == winddir - 5 || dir == winddir + 5)
		Move = (flank ? 2 : 1) - WET[windspeed][ptr->class-1].D;
	else if (dir == winddir + 4 || dir == winddir - 4)
		Move = 0;
	else 
		Move -= WET[windspeed][ptr->class-1].A;
	Move -= riggone;
	Move = Move < 0 ? 0 : Move;
	return(Move);
}