Annotation of 42BSD/games/sail/boarders.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char *sccsid = "@(#)boarders.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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.