Commit | Line | Data |
---|---|---|
3df86079 CL |
1 | #ifndef lint |
2 | static char *sccsid = "@(#)dr_5.c 1.1 83/03/17"; | |
3 | #endif | |
4 | #include "externs.h" | |
5 | ||
6 | subtract(from, totalfrom, crewfrom, fromcap, pcfrom) | |
7 | int from, fromcap, pcfrom; | |
8 | register 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 | ||
32 | mensent(from, to, crew, captured, pc, points, key) | |
33 | int 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 |