|
|
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.