|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1982 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 the above copyright notice and this paragraph are ! 7: * duplicated in all such forms and that any documentation, ! 8: * advertising materials, and other materials related to such ! 9: * distribution and use acknowledge that the software was developed ! 10: * by the University of California, Berkeley. The name of the ! 11: * University may not be used to endorse or promote products derived ! 12: * from this software without specific prior written permission. ! 13: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 14: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 15: * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 16: */ ! 17: ! 18: #ifndef lint ! 19: static char sccsid[] = "@(#)print.c 5.3 (Berkeley) 6/18/88"; ! 20: #endif /* not lint */ ! 21: ! 22: # include "mille.h" ! 23: ! 24: /* ! 25: * @(#)print.c 1.1 (Berkeley) 4/1/82 ! 26: */ ! 27: ! 28: # define COMP_STRT 20 ! 29: # define CARD_STRT 2 ! 30: ! 31: prboard() { ! 32: ! 33: reg PLAY *pp; ! 34: reg int i, j, k, temp; ! 35: ! 36: for (k = 0; k < 2; k++) { ! 37: pp = &Player[k]; ! 38: temp = k * COMP_STRT + CARD_STRT; ! 39: for (i = 0; i < NUM_SAFE; i++) ! 40: if (pp->safety[i] == S_PLAYED && !pp->sh_safety[i]) { ! 41: mvaddstr(i, temp, C_name[i + S_CONV]); ! 42: if (pp->coups[i]) ! 43: mvaddch(i, temp - CARD_STRT, '*'); ! 44: pp->sh_safety[i] = TRUE; ! 45: } ! 46: show_card(14, temp, pp->battle, &pp->sh_battle); ! 47: show_card(16, temp, pp->speed, &pp->sh_speed); ! 48: for (i = C_25; i <= C_200; i++) { ! 49: reg char *name; ! 50: reg int end; ! 51: ! 52: if (pp->nummiles[i] == pp->sh_nummiles[i]) ! 53: continue; ! 54: ! 55: name = C_name[i]; ! 56: temp = k * 40; ! 57: end = pp->nummiles[i]; ! 58: for (j = pp->sh_nummiles[i]; j < end; j++) ! 59: mvwaddstr(Miles, i + 1, (j << 2) + temp, name); ! 60: pp->sh_nummiles[i] = end; ! 61: } ! 62: } ! 63: prscore(TRUE); ! 64: temp = CARD_STRT; ! 65: pp = &Player[PLAYER]; ! 66: for (i = 0; i < HAND_SZ; i++) ! 67: show_card(i + 6, temp, pp->hand[i], &pp->sh_hand[i]); ! 68: mvprintw(6, COMP_STRT + CARD_STRT, "%2d", Topcard - Deck); ! 69: show_card(8, COMP_STRT + CARD_STRT, Discard, &Sh_discard); ! 70: if (End == 1000) { ! 71: move(EXT_Y, EXT_X); ! 72: standout(); ! 73: addstr("Extension"); ! 74: standend(); ! 75: } ! 76: wrefresh(Board); ! 77: wrefresh(Miles); ! 78: wrefresh(Score); ! 79: } ! 80: ! 81: /* ! 82: * show_card: ! 83: * Show the given card if it is different from the last one shown ! 84: */ ! 85: show_card(y, x, c, lc) ! 86: int y, x; ! 87: register CARD c, *lc; ! 88: { ! 89: if (c == *lc) ! 90: return; ! 91: ! 92: mvprintw(y, x, C_fmt, C_name[c]); ! 93: *lc = c; ! 94: } ! 95: ! 96: static char Score_fmt[] = "%4d"; ! 97: ! 98: prscore(for_real) ! 99: reg bool for_real; { ! 100: ! 101: reg PLAY *pp; ! 102: reg int x; ! 103: ! 104: stdscr = Score; ! 105: for (pp = Player; pp < &Player[2]; pp++) { ! 106: x = (pp - Player) * 6 + 21; ! 107: show_score(1, x, pp->mileage, &pp->sh_mileage); ! 108: if (pp->safescore != pp->sh_safescore) { ! 109: mvprintw(2, x, Score_fmt, pp->safescore); ! 110: if (pp->safescore == 400) ! 111: mvaddstr(3, x + 1, "300"); ! 112: else ! 113: mvaddstr(3, x + 1, " 0"); ! 114: mvprintw(4, x, Score_fmt, pp->coupscore); ! 115: pp->sh_safescore = pp->safescore; ! 116: } ! 117: if (Window == W_FULL || Finished) { ! 118: #ifdef EXTRAP ! 119: if (for_real) ! 120: finalscore(pp); ! 121: else ! 122: extrapolate(pp); ! 123: #else ! 124: finalscore(pp); ! 125: #endif ! 126: show_score(11, x, pp->hand_tot, &pp->sh_hand_tot); ! 127: show_score(13, x, pp->total, &pp->sh_total); ! 128: show_score(14, x, pp->games, &pp->sh_games); ! 129: } ! 130: else { ! 131: show_score(6, x, pp->hand_tot, &pp->sh_hand_tot); ! 132: show_score(8, x, pp->total, &pp->sh_total); ! 133: show_score(9, x, pp->games, &pp->sh_games); ! 134: } ! 135: } ! 136: stdscr = Board; ! 137: } ! 138: ! 139: /* ! 140: * show_score: ! 141: * Show a score value if it is different from the last time we ! 142: * showed it. ! 143: */ ! 144: show_score(y, x, s, ls) ! 145: int y, x; ! 146: register int s, *ls; ! 147: { ! 148: if (s == *ls) ! 149: return; ! 150: ! 151: mvprintw(y, x, Score_fmt, s); ! 152: *ls = s; ! 153: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.