didn't get fixed when connect2 was added
[unix-history] / usr / src / games / sail / dr_5.c
CommitLineData
3df86079
CL
1#ifndef lint
2static char *sccsid = "@(#)dr_5.c 1.1 83/03/17";
3#endif
4#include "externs.h"
5
6subtract(from, totalfrom, crewfrom, fromcap, pcfrom)
7int from, fromcap, pcfrom;
8register int totalfrom, crewfrom[3];
9{
10 register int n;
11
12 if (fromcap == from && totalfrom){ /* if not captured */
13 for (n = 0; n < 3; n++){
14 if (totalfrom > crewfrom[n]){
15 totalfrom -= crewfrom[n];
16 crewfrom[n] = 0;
17 }
18 else {
19 crewfrom[n] -= totalfrom;
20 totalfrom = 0;
21 }
22 Write(SPECS + from, 0, 14 + 2*n, crewfrom[n]);
23 }
24 }
25 else if (totalfrom){
26 pcfrom -= totalfrom;
27 pcfrom = pcfrom < 0 ? 0 : pcfrom;
28 Write(FILES + from, 0, 70, pcfrom);
29 }
30}
31
32mensent(from, to, crew, captured, pc, points, key)
33int from, to, key, crew[3], *captured, *pc, *points;
34{ /* returns # of crew squares sent */
35 int men = 0;
36 register int n;
37 int c1, c2, c3;
38 struct shipspecs *ptr;
39 struct File *ptr1;
40 struct BP *ptr2;
41
42 ptr = &specs[scene[game].ship[from].shipnum];
43 ptr1 = scene[game].ship[from].file; /* key: 0 OBP */
44 ptr2 = key ? ptr1 -> DBP : ptr1 -> OBP; /* 1 DBP */
45 *pc = ptr1 -> pcrew;
46 *captured = ptr1 -> captured;
47 crew[0] = ptr -> crew1;
48 crew[1] = ptr -> crew2;
49 crew[2] = ptr -> crew3;
50 for (n=0; n < 3; n++){
51 if (ptr2[n].turnsent && ptr2[n].toship == to)
52 men += ptr2[n].mensent;
53 }
54 if (men){
55 c1 = men/100 ? crew[0] : 0;
56 c2 = (men%100)/10 ? crew[1] : 0;
57 c3 = men/10 ? crew[2] : 0;
58 c3 = *captured < 0 ? crew[2] : *pc;
59 } else
60 c1 = c2 = c3 = 0;
61 return(c1 + c2 + c3);
62}
63