Annotation of 43BSD/games/sail/game.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1983 Regents of the University of California.
        !             3:  * All rights reserved.  The Berkeley software License Agreement
        !             4:  * specifies the terms and conditions for redistribution.
        !             5:  */
        !             6: 
        !             7: #ifndef lint
        !             8: static char sccsid[] = "@(#)game.c     5.1 (Berkeley) 5/29/85";
        !             9: #endif not lint
        !            10: 
        !            11: #include "externs.h"
        !            12: 
        !            13: maxturns(ship, af)
        !            14: register struct ship *ship;
        !            15: char *af;
        !            16: {
        !            17:        register int turns;
        !            18: 
        !            19:        turns = ship->specs->ta;
        !            20:        if (*af = (ship->file->drift > 1 && turns)) {
        !            21:                turns--;
        !            22:                if (ship->file->FS == 1)
        !            23:                        turns = 0;
        !            24:        }
        !            25:        return turns;
        !            26: }
        !            27: 
        !            28: maxmove(ship, dir, fs)
        !            29: register struct ship *ship;
        !            30: int dir, fs;
        !            31: {
        !            32:        register int riggone = 0, Move, flank = 0;
        !            33: 
        !            34:        Move = ship->specs->bs;
        !            35:        if (!ship->specs->rig1)
        !            36:                riggone++;
        !            37:        if (!ship->specs->rig2)
        !            38:                riggone++;
        !            39:        if (!ship->specs->rig3)
        !            40:                riggone++;
        !            41:        if (!ship->specs->rig4)
        !            42:                riggone++;
        !            43:        if ((ship->file->FS || fs) && fs != -1) {
        !            44:                flank = 1;
        !            45:                Move = ship->specs->fs;
        !            46:        }
        !            47:        if (dir == winddir)
        !            48:                Move -= 1 + WET[windspeed][ship->specs->class-1].B;
        !            49:        else if (dir == winddir + 2 || dir == winddir - 2 || dir == winddir - 6 || dir == winddir + 6)
        !            50:                Move -= 1 + WET[windspeed][ship->specs->class-1].C;
        !            51:        else if (dir == winddir + 3 || dir == winddir - 3 || dir == winddir - 5 || dir == winddir + 5)
        !            52:                Move = (flank ? 2 : 1) - WET[windspeed][ship->specs->class-1].D;
        !            53:        else if (dir == winddir + 4 || dir == winddir - 4)
        !            54:                Move = 0;
        !            55:        else 
        !            56:                Move -= WET[windspeed][ship->specs->class-1].A;
        !            57:        Move -= riggone;
        !            58:        Move = Move < 0 ? 0 : Move;
        !            59:        return(Move);
        !            60: }

unix.superglobalmegacorp.com

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