Annotation of 43BSDReno/games/monop/print.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1980 Regents of the University of California.
                      3:  * All rights reserved.
                      4:  *
                      5:  * Redistribution and use in source and binary forms are permitted
                      6:  * provided that: (1) source distributions retain this entire copyright
                      7:  * notice and comment, and (2) distributions including binaries display
                      8:  * the following acknowledgement:  ``This product includes software
                      9:  * developed by the University of California, Berkeley and its contributors''
                     10:  * in the documentation or other materials provided with the distribution
                     11:  * and in all advertising materials mentioning features or use of this
                     12:  * software. Neither the name of the University nor the names of its
                     13:  * contributors may be used to endorse or promote products derived
                     14:  * from this software without specific prior written permission.
                     15:  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
                     16:  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
                     17:  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
                     18:  */
                     19: 
                     20: #ifndef lint
                     21: static char sccsid[] = "@(#)print.c    5.4 (Berkeley) 6/1/90";
                     22: #endif /* not lint */
                     23: 
                     24: # include      "monop.ext"
                     25: 
                     26: static char    buf[80],                /* output buffer                */
                     27:                *header = "Name      Own      Price Mg # Rent";
                     28: 
                     29: /*
                     30:  *     This routine prints out the current board
                     31:  */
                     32: printboard() {
                     33: 
                     34:        reg int i;
                     35: 
                     36:        printf("%s\t%s\n", header, header);
                     37:        for (i = 0; i < N_SQRS/2; i++) {
                     38:                printsq(i, FALSE);
                     39:                putchar('\t');
                     40:                printsq(i+N_SQRS/2, TRUE);
                     41:        }
                     42: }
                     43: /*
                     44:  *     This routine lists where each player is.
                     45:  */
                     46: where() {
                     47: 
                     48:        reg int i;
                     49:        char    *bsp;
                     50: 
                     51:        printf("%s Player\n", header);
                     52:        for (i = 0; i < num_play; i++) {
                     53:                printsq(play[i].loc, FALSE);
                     54:                printf(" %s (%d)", play[i].name, i+1);
                     55:                if (cur_p == &play[i])
                     56:                        printf(" *");
                     57:                putchar('\n');
                     58:        }
                     59: }
                     60: /*
                     61:  *     This routine prints out an individual square
                     62:  */
                     63: printsq(sqn, eoln)
                     64: int            sqn;
                     65: reg bool       eoln; {
                     66: 
                     67:        reg int         rnt;
                     68:        reg PROP        *pp;
                     69:        reg SQUARE      *sqp;
                     70:        int             i;
                     71: 
                     72:        sqp = &board[sqn];
                     73:        printf("%-10.10s", sqp->name);
                     74:        switch (sqp->type) {
                     75:          case SAFE:
                     76:          case CC:
                     77:          case CHANCE:
                     78:          case INC_TAX:
                     79:          case GOTO_J:
                     80:          case LUX_TAX:
                     81:          case IN_JAIL:
                     82: spec:
                     83:                if (!eoln)
                     84:                        printf("                        ");
                     85:                break;
                     86:          case PRPTY:
                     87:                pp = sqp->desc;
                     88:                if (sqp->owner < 0) {
                     89:                        printf(" - %-8.8s %3d", pp->mon_desc->name, sqp->cost);
                     90:                        if (!eoln)
                     91:                                printf("         ");
                     92:                        break;
                     93:                }
                     94:                printf(" %d %-8.8s %3d", sqp->owner+1, pp->mon_desc->name,
                     95:                        sqp->cost);
                     96:                printmorg(sqp);
                     97:                if (pp->monop) {
                     98:                        if (pp->houses < 5)
                     99:                                if (pp->houses > 0)
                    100:                                        printf("%d %4d", pp->houses,
                    101:                                                pp->rent[pp->houses]);
                    102:                                else
                    103:                                        printf("0 %4d", pp->rent[0] * 2);
                    104:                        else
                    105:                                printf("H %4d", pp->rent[5]);
                    106:                }
                    107:                else
                    108:                        printf("  %4d", pp->rent[0]);
                    109:                break;
                    110:          case UTIL:
                    111:                if (sqp->owner < 0) {
                    112:                        printf(" -          150");
                    113:                        if (!eoln)
                    114:                                printf("         ");
                    115:                        break;
                    116:                }
                    117:                printf(" %d          150", sqp->owner+1);
                    118:                printmorg(sqp);
                    119:                printf("%d", play[sqp->owner].num_util);
                    120:                if (!eoln)
                    121:                        printf("    ");
                    122:                break;
                    123:          case RR:
                    124:                if (sqp->owner < 0) {
                    125:                        printf(" - Railroad 200");
                    126:                        if (!eoln)
                    127:                                printf("         ");
                    128:                        break;
                    129:                }
                    130:                printf(" %d Railroad 200", sqp->owner+1);
                    131:                printmorg(sqp);
                    132:                rnt = 25;
                    133:                rnt <<= play[sqp->owner].num_rr - 1;
                    134:                printf("%d %4d", play[sqp->owner].num_rr, 25 << (play[sqp->owner].num_rr - 1));
                    135:                break;
                    136:        }
                    137:        if (eoln)
                    138:                putchar('\n');
                    139: }
                    140: /*
                    141:  *     This routine prints out the mortgage flag.
                    142:  */
                    143: printmorg(sqp)
                    144: reg SQUARE     *sqp; {
                    145: 
                    146:        if (sqp->desc->morg)
                    147:                printf(" * ");
                    148:        else
                    149:                printf("   ");
                    150: }
                    151: /*
                    152:  *     This routine lists the holdings of the player given
                    153:  */
                    154: printhold(pl)
                    155: reg int        pl; {
                    156: 
                    157:        reg OWN         *op;
                    158:        reg PLAY        *pp;
                    159:        char            *bsp;
                    160: 
                    161:        pp = &play[pl];
                    162:        printf("%s's (%d) holdings (Total worth: $%d):\n", name_list[pl], pl+1,
                    163:                pp->money + prop_worth(pp));
                    164:        printf("\t$%d", pp->money);
                    165:        if (pp->num_gojf) {
                    166:                printf(", %d get-out-of-jail-free card", pp->num_gojf);
                    167:                if (pp->num_gojf > 1)
                    168:                        putchar('s');
                    169:        }
                    170:        putchar('\n');
                    171:        if (pp->own_list) {
                    172:                printf("\t%s\n", header);
                    173:                for (op = pp->own_list; op; op = op->next) {
                    174:                        putchar('\t');
                    175:                        printsq(sqnum(op->sqr), TRUE);
                    176:                }
                    177:        }
                    178: }

unix.superglobalmegacorp.com

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