[BACK]Return to disply.c CVS log [TXT][DIR] Up to [contributed] / early-roguelike / srogue

Annotation of early-roguelike/srogue/disply.c, Revision 1.1

1.1     ! rubenllo    1: /*
        !             2:  * various display routines and flag checking functions
        !             3:  *
        !             4:  * @(#)disply.c                9.0     (rdk)    7/17/84
        !             5:  *
        !             6:  * Super-Rogue
        !             7:  * Copyright (C) 1984 Robert D. Kindelberger
        !             8:  * All rights reserved.
        !             9:  *
        !            10:  * See the file LICENSE.TXT for full copyright and licensing information.
        !            11:  */
        !            12:
        !            13: #include "rogue.h"
        !            14: #include <ctype.h>
        !            15: #include "rogue.ext"
        !            16:
        !            17: /*
        !            18:  * displevl:
        !            19:  *     Display detailed level for wizard and scroll
        !            20:  */
        !            21: void
        !            22: displevl(void)
        !            23: {
        !            24:        reg char ch, mch;
        !            25:        reg int i,j;
        !            26:        reg struct room *rp;
        !            27:
        !            28:        for (rp = rooms; rp < &rooms[MAXROOMS]; rp++)
        !            29:                rp->r_flags &= ~ISDARK;
        !            30:
        !            31:        for (i = 0; i < LINES - 2; i++) {
        !            32:                for (j = 0; j < COLS - 1; j++) {
        !            33:                        ch = mvinch(i,j);
        !            34:                        if (isatrap(ch)) {
        !            35:                                struct trap *what;
        !            36:
        !            37:                                what = trap_at(i, j);
        !            38:                                if (what != NULL)
        !            39:                                        what->tr_flags |= ISFOUND;
        !            40:                        }
        !            41:                        else if (ch == SECRETDOOR) {
        !            42:                                ch = DOOR;
        !            43:                                mvaddch(i, j, ch);
        !            44:                        }
        !            45:                        else if (illeg_ch(ch)) {
        !            46:                                ch = FLOOR;
        !            47:                                mvaddch(i, j, ch);
        !            48:                        }
        !            49:                        if (mvwinch(mw, i, j) != ' ') {
        !            50:                                struct linked_list *what;
        !            51:                                struct thing *it;
        !            52:
        !            53:                                what = find_mons(i, j);
        !            54:                                if (what == NULL) {
        !            55:                                        ch = FLOOR;
        !            56:                                        mvaddch(i, j, ch);
        !            57:                                }
        !            58:                                else {
        !            59:                                        it = THINGPTR(what);
        !            60:                                        it->t_oldch = ch;
        !            61:                                }
        !            62:                        }
        !            63:                        mch = mvwinch(cw, i, j);
        !            64:                        if (isalpha(mch))
        !            65:                                ch = mch;
        !            66:                        mvwaddch(cw, i, j, ch);
        !            67:                }
        !            68:        }
        !            69:        nochange = FALSE;       /* display status again */
        !            70:        draw(cw);
        !            71: }
        !            72:
        !            73: /*
        !            74:  * dispmons:
        !            75:  *     Show monsters for wizard and potion
        !            76:  */
        !            77: void
        !            78: dispmons(void)
        !            79: {
        !            80:        reg int ch, y, x;
        !            81:        reg struct thing *it;
        !            82:        reg struct linked_list *item;
        !            83:
        !            84:        for (item = mlist; item != NULL; item = next(item)) {
        !            85:                it = THINGPTR(item);
        !            86:                y = it->t_pos.y;
        !            87:                x = it->t_pos.x;
        !            88:                mvwaddch(cw, y, x, it->t_type);
        !            89:                it->t_flags |= ISFOUND;
        !            90:                if (it->t_type == 'M')                  /* if a mimic */
        !            91:                        it->t_disguise = 'M';           /* give it away */
        !            92:        }
        !            93:        draw(cw);
        !            94: }
        !            95:
        !            96: /*
        !            97:  * winat:
        !            98:  *     Get whatever character is at a location on the screen
        !            99:  */
        !           100: char
        !           101: winat(int y, int x)
        !           102: {
        !           103:        reg char ch;
        !           104:
        !           105:        if (mvwinch(mw,y,x) == ' ')
        !           106:                ch = mvinch(y, x);                      /* non-monsters */
        !           107:        else
        !           108:                ch = winch(mw);                         /* monsters */
        !           109:        return ch;
        !           110: }
        !           111:
        !           112: /*
        !           113:  * cordok:
        !           114:  *     Returns TRUE if coordinate is on usable screen
        !           115:  */
        !           116: bool
        !           117: cordok(int y, int x)
        !           118: {
        !           119:        if (x < 0 || y < 0 || x >= COLS || y >= LINES - 1)
        !           120:                return FALSE;
        !           121:        return TRUE;
        !           122: }
        !           123:
        !           124: /*
        !           125:  * pl_on:
        !           126:  *     Returns TRUE if the player's flag is set
        !           127:  */
        !           128: bool
        !           129: pl_on(long what)
        !           130: {
        !           131:        return (player.t_flags & what);
        !           132: }
        !           133:
        !           134:
        !           135: /*
        !           136:  * pl_off:
        !           137:  *     Returns TRUE when player's flag is reset
        !           138:  */
        !           139: bool
        !           140: pl_off(long what)
        !           141: {
        !           142:        return (!(player.t_flags & what));
        !           143: }
        !           144:
        !           145:
        !           146: /*
        !           147:  * o_on:
        !           148:  *     Returns TRUE in the objects flag is set
        !           149:  */
        !           150: bool
        !           151: o_on(struct object *what, long bit)
        !           152: {
        !           153:        reg int flag;
        !           154:
        !           155:        flag = FALSE;
        !           156:        if (what != NULL)
        !           157:                flag = (what->o_flags & bit);
        !           158:        return flag;
        !           159: }
        !           160:
        !           161:
        !           162: /*
        !           163:  * o_off:
        !           164:  *     Returns TRUE is the objects flag is reset
        !           165:  */
        !           166: bool
        !           167: o_off(struct object *what, long bit)
        !           168: {
        !           169:        reg int flag;
        !           170:
        !           171:        flag = FALSE;
        !           172:        if (what != NULL)
        !           173:                flag = !(what->o_flags & bit);
        !           174:        return flag;
        !           175: }
        !           176:
        !           177:
        !           178: /*
        !           179:  * setoflg:
        !           180:  *     Set the specified flag for the object
        !           181:  */
        !           182: void
        !           183: setoflg(struct object *what, long bit)
        !           184: {
        !           185:        what->o_flags |= bit;
        !           186: }
        !           187:
        !           188:
        !           189: /*
        !           190:  * resoflg:
        !           191:  *     Reset the specified flag for the object
        !           192:  */
        !           193: void
        !           194: resoflg(struct object *what, long bit)
        !           195: {
        !           196:        what->o_flags &= ~bit;
        !           197: }

CVSweb