Annotation of 43BSDTahoe/games/rogue/play.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * play.c
                      3:  *
                      4:  * This source herein may be modified and/or distributed by anybody who
                      5:  * so desires, with the following restrictions:
                      6:  *    1.)  No portion of this notice shall be removed.
                      7:  *    2.)  Credit shall not be taken for the creation of this source.
                      8:  *    3.)  This code is not to be traded, sold, or used for personal
                      9:  *         gain or profit.
                     10:  *
                     11:  */
                     12: 
                     13: #ifndef lint
                     14: static char sccsid[] = "@(#)play.c     5.1 (Berkeley) 11/25/87";
                     15: #endif /* not lint */
                     16: 
                     17: #include "rogue.h"
                     18: 
                     19: boolean interrupted = 0;
                     20: char *unknown_command = "unknown command";
                     21: 
                     22: extern short party_room, bear_trap;
                     23: extern char hit_message[];
                     24: extern boolean wizard, trap_door;
                     25: 
                     26: play_level()
                     27: {
                     28:        short ch;
                     29:        int count;
                     30: 
                     31:        for (;;) {
                     32:                interrupted = 0;
                     33:                if (hit_message[0]) {
                     34:                        message(hit_message, 1);
                     35:                        hit_message[0] = 0;
                     36:                }
                     37:                if (trap_door) {
                     38:                        trap_door = 0;
                     39:                        return;
                     40:                }
                     41:                move(rogue.row, rogue.col);
                     42:                refresh();
                     43: 
                     44:                ch = rgetchar();
                     45: CMCH:
                     46:                check_message();
                     47:                count = 0;
                     48: CH:
                     49:                switch(ch) {
                     50:                case '.':
                     51:                        rest((count > 0) ? count : 1);
                     52:                        break;
                     53:                case 's':
                     54:                        search(((count > 0) ? count : 1), 0);
                     55:                        break;
                     56:                case 'i':
                     57:                        inventory(&rogue.pack, ALL_OBJECTS);
                     58:                        break;
                     59:                case 'f':
                     60:                        fight(0);
                     61:                        break;
                     62:                case 'F':
                     63:                        fight(1);
                     64:                        break;
                     65:                case 'h':
                     66:                case 'j':
                     67:                case 'k':
                     68:                case 'l':
                     69:                case 'y':
                     70:                case 'u':
                     71:                case 'n':
                     72:                case 'b':
                     73:                        (void) one_move_rogue(ch, 1);
                     74:                        break;
                     75:                case 'H':
                     76:                case 'J':
                     77:                case 'K':
                     78:                case 'L':
                     79:                case 'B':
                     80:                case 'Y':
                     81:                case 'U':
                     82:                case 'N':
                     83:                case '\010':
                     84:                case '\012':
                     85:                case '\013':
                     86:                case '\014':
                     87:                case '\031':
                     88:                case '\025':
                     89:                case '\016':
                     90:                case '\002':
                     91:                        multiple_move_rogue(ch);
                     92:                        break;
                     93:                case 'e':
                     94:                        eat();
                     95:                        break;
                     96:                case 'q':
                     97:                        quaff();
                     98:                        break;
                     99:                case 'r':
                    100:                        read_scroll();
                    101:                        break;
                    102:                case 'm':
                    103:                        move_onto();
                    104:                        break;
                    105:                case ',':
                    106:                        kick_into_pack();
                    107:                        break;
                    108:                case 'd':
                    109:                        drop();
                    110:                        break;
                    111:                case 'P':
                    112:                        put_on_ring();
                    113:                        break;
                    114:                case 'R':
                    115:                        remove_ring();
                    116:                        break;
                    117:                case '\020':
                    118:                        do {
                    119:                                remessage(count++);
                    120:                                ch = rgetchar();
                    121:                        } while (ch == '\020');
                    122:                        goto CMCH;
                    123:                        break;
                    124:                case '\027':
                    125:                        wizardize();
                    126:                        break;
                    127:                case '>':
                    128:                        if (drop_check()) {
                    129:                                return;
                    130:                        }
                    131:                        break;
                    132:                case '<':
                    133:                        if (check_up()) {
                    134:                                return;
                    135:                        }
                    136:                        break;
                    137:                case ')':
                    138:                case ']':
                    139:                        inv_armor_weapon(ch == ')');
                    140:                        break;
                    141:                case '=':
                    142:                        inv_rings();
                    143:                        break;
                    144:                case '^':
                    145:                        id_trap();
                    146:                        break;
                    147:                case '/':
                    148:                        id_type();
                    149:                        break;
                    150:                case '?':
                    151:                        id_com();
                    152:                        break;
                    153:                case '!':
                    154:                        do_shell();
                    155:                        break;
                    156:                case 'o':
                    157:                        edit_opts();
                    158:                        break;
                    159:                case 'I':
                    160:                        single_inv(0);
                    161:                        break;
                    162:                case 'T':
                    163:                        take_off();
                    164:                        break;
                    165:                case 'W':
                    166:                        wear();
                    167:                        break;
                    168:                case 'w':
                    169:                        wield();
                    170:                        break;
                    171:                case 'c':
                    172:                        call_it();
                    173:                        break;
                    174:                case 'z':
                    175:                        zapp();
                    176:                        break;
                    177:                case 't':
                    178:                        throw();
                    179:                        break;
                    180:                case 'v':
                    181:                        message("rogue-clone: Version III. (Tim Stoehr was here), tektronix!zeus!tims", 0);
                    182:                        break;
                    183:                case 'Q':
                    184:                        quit(0);
                    185:                case '0':
                    186:                case '1':
                    187:                case '2':
                    188:                case '3':
                    189:                case '4':
                    190:                case '5':
                    191:                case '6':
                    192:                case '7':
                    193:                case '8':
                    194:                case '9':
                    195:                        move(rogue.row, rogue.col);
                    196:                        refresh();
                    197:                        do {
                    198:                                if (count < 100) {
                    199:                                        count = (10 * count) + (ch - '0');
                    200:                                }
                    201:                                ch = rgetchar();
                    202:                        } while (is_digit(ch));
                    203:                        if (ch != CANCEL) {
                    204:                                goto CH;
                    205:                        }
                    206:                        break;
                    207:                case ' ':
                    208:                        break;
                    209:                case '\011':
                    210:                        if (wizard) {
                    211:                                inventory(&level_objects, ALL_OBJECTS);
                    212:                        } else {
                    213:                                message(unknown_command, 0);
                    214:                        }
                    215:                        break;
                    216:                case '\023':
                    217:                        if (wizard) {
                    218:                                draw_magic_map();
                    219:                        } else {
                    220:                                message(unknown_command, 0);
                    221:                        }
                    222:                        break;
                    223:                case '\024':
                    224:                        if (wizard) {
                    225:                                show_traps();
                    226:                        } else {
                    227:                                message(unknown_command, 0);
                    228:                        }
                    229:                        break;
                    230:                case '\017':
                    231:                        if (wizard) {
                    232:                                show_objects();
                    233:                        } else {
                    234:                                message(unknown_command, 0);
                    235:                        }
                    236:                        break;
                    237:                case '\001':
                    238:                        show_average_hp();
                    239:                        break;
                    240:                case '\003':
                    241:                        if (wizard) {
                    242:                                c_object_for_wizard();
                    243:                        } else {
                    244:                                message(unknown_command, 0);
                    245:                        }
                    246:                        break;
                    247:                case '\015':
                    248:                        if (wizard) {
                    249:                                show_monsters();
                    250:                        } else {
                    251:                                message(unknown_command, 0);
                    252:                        }
                    253:                        break;
                    254:                case 'S':
                    255:                        save_game();
                    256:                        break;
                    257:                default:
                    258:                        message(unknown_command, 0);
                    259:                        break;
                    260:                }
                    261:        }
                    262: }

unix.superglobalmegacorp.com

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