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

Annotation of early-roguelike/srogue/cx.h, Revision 1.1.1.1

1.1       rubenllo    1: /*
                      2:  * Super-Rogue
                      3:  * Copyright (C) 1984 Robert D. Kindelberger
                      4:  * All rights reserved.
                      5:  *
                      6:  * See the file LICENSE.TXT for full copyright and licensing information.
                      7:  */
                      8:
                      9: #include       <stdio.h>
                     10: #include       <sgtty.h>
                     11:
                     12: #define        bool    char            /* boolean variable     */
                     13: #define        reg     register        /* register abbr.       */
                     14:
                     15: #define        TRUE    (1)
                     16: #define        FALSE   (0)
                     17: #define        ERR     (0)     /* default return on error      */
                     18: #define        OK      (1)     /* default return on good run   */
                     19:
                     20: #define        _SUBWIN 01      /* window is a subwindow        */
                     21: #define        _ENDLINE 02     /* lines go to end of screen    */
                     22: #define        _FULLWIN 04     /* window is entire screen      */
                     23: #define        _SCROLLWIN 010  /* window could cause scroll    */
                     24: #define        _STANDOUT 0200  /* standout mode in effect      */
                     25: #define        _NOCHANGE -1    /* no change on this line       */
                     26:
                     27: #define        _puts(s)        tputs(s, 0, _putchar);
                     28:
                     29: typedef        struct sgttyb   SGTTY;
                     30:
                     31: #ifndef WINDOW
                     32:
                     33: #define        WINDOW  struct _win_st
                     34:
                     35: /* window description structure                */
                     36: struct _win_st {
                     37:     short _cury, _curx;                /* current y,x positions */
                     38:     short _maxy, _maxx;                /* maximum y,x positions */
                     39:     short _begy, _begx;                /* start y,x positions   */
                     40:     short _flags;              /* various window flags  */
                     41:     bool _clear;               /* need to clear         */
                     42:     bool _leave;               /* leave cur x,y at last update */
                     43:     bool _scroll;              /* scrolls allowed      */
                     44:     char **_y;                 /* actual window        */
                     45:     short *_firstch;           /* first change on line */
                     46:     short *_lastch;            /* last change on line  */
                     47: };
                     48:
                     49: extern bool My_term,   /* user specied terminal        */
                     50:            _echoit,    /* set if echoing characters    */
                     51:            _rawmode;   /* set if terminal in raw mode  */
                     52:
                     53: extern char *Def_term, /* default terminal type        */
                     54:            ttytype[];  /* long name of current term    */
                     55: # ifdef DEBUG
                     56: extern FILE *outf;     /* error outfile                */
                     57: # endif
                     58:
                     59: extern int LINES, COLS;        /* # of lines & columns         */
                     60: extern int _tty_ch;    /* channel with tty on it       */
                     61: extern WINDOW *stdscr, *curscr;
                     62:
                     63: static SGTTY _tty, _res_flg;
                     64:
                     65: /*
                     66:  * Define VOID to stop lint from generating "null effect"
                     67:  * comments.
                     68:  */
                     69: # ifdef lint
                     70: int    __void__;       /* place to assign to           */
                     71:
                     72: # define       VOID(x) (__void__ = (int) (x))
                     73: # else
                     74: # define       VOID(x) (x)
                     75: # endif
                     76:
                     77: # endif
                     78:
                     79: /*
                     80:  * psuedo functions for standard screen
                     81:  */
                     82: #define        addch(ch)       VOID(waddch(stdscr, ch))
                     83: #define        getch()         VOID(wgetch(stdscr))
                     84: #define        addstr(str)     VOID(waddstr(stdscr, str))
                     85: #define        getstr(str)     VOID(wgetstr(stdscr, str))
                     86: #define        move(y, x)      VOID(wmove(stdscr, y, x))
                     87: #define        clear()         VOID(wclear(stdscr))
                     88: #define        erase()         VOID(werase(stdscr))
                     89: #define        clrtobot()      VOID(wclrtobot(stdscr))
                     90: #define        clrtoeol()      VOID(wclrtoeol(stdscr))
                     91: #define        insertln()      VOID(winsertln(stdscr))
                     92: #define        deleteln()      VOID(wdeleteln(stdscr))
                     93: #define        refresh()       VOID(wrefresh(stdscr))
                     94: #define        inch()          VOID(winch(stdscr))
                     95:
                     96: #ifdef STANDOUT
                     97: #define        standout()      VOID(wstandout(stdscr))
                     98: #define        standend()      VOID(wstandend(stdscr))
                     99: #endif
                    100:
                    101: /*
                    102: # define       CBREAK  FALSE
                    103: # define       _IOSTRG 01
                    104: */
                    105:
                    106: /*
                    107:  * mv functions
                    108:  */
                    109: #define        mvwaddch(win,y,x,ch)    VOID(wmove(win,y,x)==ERR?ERR:waddch(win,ch))
                    110: #define        mvwgetch(win,y,x,ch)    VOID(wmove(win,y,x)==ERR?ERR:wgetch(win,ch))
                    111: #define        mvwaddstr(win,y,x,str)  VOID(wmove(win,y,x)==ERR?ERR:waddstr(win,str))
                    112: #define        mvwgetstr(win,y,x,str)  VOID(wmove(win,y,x)==ERR?ERR:wgetstr(win,str))
                    113: #define        mvwinch(win,y,x)        VOID(wmove(win,y,x) == ERR ? ERR : winch(win))
                    114: #define        mvaddch(y,x,ch)         mvwaddch(stdscr,y,x,ch)
                    115: #define        mvgetch(y,x,ch)         mvwgetch(stdscr,y,x,ch)
                    116: #define        mvaddstr(y,x,str)       mvwaddstr(stdscr,y,x,str)
                    117: #define        mvgetstr(y,x,str)       mvwgetstr(stdscr,y,x,str)
                    118: #define        mvinch(y,x)             mvwinch(stdscr,y,x)
                    119:
                    120: /*
                    121:  * psuedo functions
                    122:  */
                    123:
                    124: #define        clearok(win,bf)  (win->_clear = bf)
                    125: #define        leaveok(win,bf)  (win->_leave = bf)
                    126: #define        scrollok(win,bf) (win->_scroll = bf)
                    127: #define        getyx(win,y,x)   y = win->_cury, x = win->_curx
                    128: #define        winch(win)       (win->_y[win->_cury][win->_curx])
                    129:
                    130: WINDOW *initscr(), *newwin();

CVSweb