Annotation of 42BSD/games/sail/boarders.c, revision 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.