|
|
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 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[] = "@(#)play_level.c 5.4 (Berkeley) 6/18/88"; ! 20: #endif /* not lint */ ! 21: ! 22: # include "robots.h" ! 23: ! 24: /* ! 25: * play_level: ! 26: * Let the player play the current level ! 27: */ ! 28: play_level() ! 29: { ! 30: register COORD *cp; ! 31: register int y, x, bonus; ! 32: ! 33: move(My_pos.y, My_pos.x); ! 34: addch(PLAYER); ! 35: refresh(); ! 36: for (cp = Robots; cp < &Robots[MAXROBOTS]; cp++) { ! 37: if (cp->y < 0) ! 38: continue; ! 39: move(cp->y, cp->x); ! 40: addch(ROBOT); ! 41: } ! 42: refresh(); ! 43: # ifdef DEBUG ! 44: standout(); ! 45: move(Min.y, Min.x); ! 46: addch(inch()); ! 47: move(Max.y, Max.x); ! 48: addch(inch()); ! 49: standend(); ! 50: # endif DEBUG ! 51: setjmp(End_move); ! 52: flush_in(); ! 53: while (!Dead && Num_robots > 0) { ! 54: move(My_pos.y, My_pos.x); ! 55: if (!jumping()) ! 56: refresh(); ! 57: get_move(); ! 58: if (Real_time) ! 59: alarm(0); ! 60: if (Field[My_pos.y][My_pos.x] != 0) ! 61: Dead = TRUE; ! 62: if (!Dead) ! 63: move_robots(FALSE); ! 64: if (Was_bonus) { ! 65: move(Y_PROMPT, X_PROMPT); ! 66: clrtoeol(); ! 67: move(Y_PROMPT + 1, X_PROMPT); ! 68: clrtoeol(); ! 69: Was_bonus = FALSE; ! 70: } ! 71: } ! 72: ! 73: /* ! 74: * if the player didn't die, add on the possible bonuses ! 75: */ ! 76: ! 77: if (!Dead) { ! 78: Was_bonus = FALSE; ! 79: ! 80: if (Level == Start_level && Start_level > 1) { ! 81: move(Y_PROMPT, X_PROMPT); ! 82: printw("Advance bonus: %d", S_BONUS); ! 83: refresh(); ! 84: add_score(S_BONUS); ! 85: Was_bonus = TRUE; ! 86: } ! 87: ! 88: if (Wait_bonus != 0) { ! 89: if (!Was_bonus) ! 90: move(Y_PROMPT, X_PROMPT); ! 91: else ! 92: move(Y_PROMPT + 1, X_PROMPT); ! 93: printw("Wait bonus: %d", Wait_bonus); ! 94: refresh(); ! 95: add_score(Wait_bonus); ! 96: Was_bonus = TRUE; ! 97: } ! 98: } ! 99: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.