(no message)
[unix-history] / usr / src / games / sail / dr_5.c
index de1175f..f017089 100644 (file)
@@ -1,63 +1,59 @@
 #ifndef lint
 #ifndef lint
-static char *sccsid = "@(#)dr_5.c      1.1 83/03/17";
+static char *sccsid = "@(#)dr_5.c      1.2 83/07/20";
 #endif
 #include "externs.h"
 
 subtract(from, totalfrom, crewfrom, fromcap, pcfrom)
 #endif
 #include "externs.h"
 
 subtract(from, totalfrom, crewfrom, fromcap, pcfrom)
-int from, fromcap, pcfrom;
+struct ship *from, *fromcap;
+int pcfrom;
 register int  totalfrom, crewfrom[3];
 {
        register int n;
 
 register int  totalfrom, crewfrom[3];
 {
        register int n;
 
-       if (fromcap == from && totalfrom)             /* if not captured */
-               for (n = 0; n < 3; n++){
-                       if (totalfrom > crewfrom[n]){
+       if (fromcap == from && totalfrom) {             /* if not captured */
+               for (n = 0; n < 3; n++) {
+                       if (totalfrom > crewfrom[n]) {
                                totalfrom -= crewfrom[n];
                                crewfrom[n] = 0;
                                totalfrom -= crewfrom[n];
                                crewfrom[n] = 0;
-                       }
-                       else {
+                       } else {
                                crewfrom[n] -= totalfrom;
                                totalfrom = 0;
                        }
                                crewfrom[n] -= totalfrom;
                                totalfrom = 0;
                        }
-                       Write(SPECS + from, 0, 14 + 2*n, crewfrom[n]);
                }
                }
-       }
-       else if (totalfrom){
+               Write(W_CREW, from, 0, crewfrom[0], crewfrom[1], crewfrom[2], 0);
+       } else if (totalfrom) {
                pcfrom -= totalfrom;
                pcfrom = pcfrom < 0 ? 0 : pcfrom;
                pcfrom -= totalfrom;
                pcfrom = pcfrom < 0 ? 0 : pcfrom;
-               Write(FILES + from, 0, 70, pcfrom);
+               Write(W_PCREW, from, 0, pcfrom, 0, 0, 0);
        }
 }
 
        }
 }
 
-mensent(from, to, crew, captured, pc, points, key)
-int from, to, key, crew[3], *captured, *pc, *points;
+mensent(from, to, crew, captured, pc, isdefense)
+struct ship *from, *to, **captured;
+int crew[3], *pc;
+char isdefense;
 {                                      /* returns # of crew squares sent */
        int men = 0;
        register int n;
        int c1, c2, c3;
 {                                      /* returns # of crew squares sent */
        int men = 0;
        register int n;
        int c1, c2, c3;
-       struct shipspecs *ptr;
-       struct File *ptr1;
-       struct BP *ptr2;
+       register struct BP *bp;
 
 
-       ptr = &specs[scene[game].ship[from].shipnum];
-       ptr1 = scene[game].ship[from].file;     /* key:  0 OBP */
-       ptr2 = key ? ptr1 -> DBP : ptr1 -> OBP; /*       1 DBP */
-       *pc = ptr1 -> pcrew;
-       *captured = ptr1 -> captured;
-       crew[0] = ptr -> crew1;
-       crew[1] = ptr -> crew2;
-       crew[2] = ptr -> crew3;
-       for (n=0; n < 3; n++){
-               if (ptr2[n].turnsent && ptr2[n].toship == to)
-                       men += ptr2[n].mensent;
+       *pc = from->file->pcrew;
+       *captured = from->file->captured;
+       crew[0] = from->specs->crew1;
+       crew[1] = from->specs->crew2;
+       crew[2] = from->specs->crew3;
+       bp = isdefense ? from->file->DBP : from->file->OBP;
+       for (n=0; n < NBP; n++, bp++) {
+               if (bp->turnsent && bp->toship == to)
+                       men += bp->mensent;
        }
        }
-       if (men){
+       if (men) {
                c1 = men/100 ? crew[0] : 0;
                c2 = (men%100)/10 ? crew[1] : 0;
                c3 = men/10 ? crew[2] : 0;
                c1 = men/100 ? crew[0] : 0;
                c2 = (men%100)/10 ? crew[1] : 0;
                c3 = men/10 ? crew[2] : 0;
-               c3 = *captured < 0 ? crew[2] : *pc;
+               c3 = *captured == 0 ? crew[2] : *pc;
        } else
                c1 = c2 = c3 = 0;
        return(c1 + c2 + c3);
 }
        } else
                c1 = c2 = c3 = 0;
        return(c1 + c2 + c3);
 }
-