home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / More Source / C⁄C++ / Xconq 7.0d37 / source / curses / cconq.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-04  |  5.0 KB  |  179 lines  |  [TEXT/KAHL]

  1. /* Definitions for the curses interface to Xconq.
  2.    Copyright (C) 1986, 1987, 1988, 1989, 1991, 1992, 1993, 1994, 1995
  3.    Stanley T. Shebs.
  4.  
  5. Xconq is free software; you can redistribute it and/or modify
  6. it under the terms of the GNU General Public License as published by
  7. the Free Software Foundation; either version 2, or (at your option)
  8. any later version.  See the file COPYING.  */
  9.  
  10. #include <curses.h>
  11.  
  12. #include "imf.h"
  13. #include "ui.h"
  14.  
  15. #define VIEWFILE "view.ccq"
  16.  
  17. #define INFOLINES 4
  18.  
  19. #define ESCAPE '\033'           /* standard abort character */
  20. #define BACKSPACE '\010'        /* for fixing strings being entered */
  21.  
  22. /* ^A does a "transparent redraw" - can be done in middle of another
  23.    command for instance. */
  24.  
  25. #define REDRAW '\001'
  26.  
  27. struct ccwin {
  28.   int x, y;
  29.   int w, h;
  30. };
  31.  
  32. /* The program can be in a number of different "modes", which affect
  33.    both the appearance of the screen and the interpretation of input. */
  34.  
  35. enum mode {
  36.     SURVEY,
  37.     MOVE,
  38.     HELP,
  39.     MORE,
  40.     PROMPT,
  41.     PROMPTXY
  42.   };
  43.  
  44. enum listsides {
  45.     ourside,
  46.     ourallies,
  47.     allsides,
  48.     numlistsides
  49.   };
  50.  
  51. #define append_to_buffer(x,y) strcat(x,y)
  52.  
  53. #define terrain_visible(x, y)  \
  54.   (g_see_all() || dside->designer || terrain_view(dside, wrapx(x), y) != UNSEEN)
  55.  
  56. #define units_visible(x, y)  \
  57.   (g_see_all() || dside->designer || cover(dside, wrapx(x), y) >= 1)
  58.  
  59. extern Side *dside;
  60. extern int use_both_chars;
  61. extern int follow_action;
  62. extern int curx, cury;
  63. extern int tmpcurx, tmpcury;
  64. extern Unit *curunit;
  65. extern Unit *tmpcurunit;
  66. extern enum mode mode;
  67. extern enum mode prevmode;
  68. extern int itertime;
  69. extern char inpch;
  70. extern int cmdarg;
  71. extern char *ustr;
  72. extern int *uvec;
  73. extern int *bvec;
  74. extern int nw, nh;
  75. extern int lastx, lasty;
  76. extern char *text1;
  77. extern char *text2;
  78. extern int reqstrbeg;
  79. extern int reqstrend;
  80. extern struct ccwin *helpwin;
  81. extern HelpNode *cur_help_node;
  82. extern HelpNode *help_help_node;
  83. extern HelpNode *topics_help_node;
  84. extern char *helptopic;
  85. extern char *helpstring;
  86. extern int helpscreentop;
  87. extern struct ccwin *datewin;
  88. extern struct ccwin *sideswin;
  89. extern struct ccwin *toplineswin;
  90. extern struct ccwin *clockwin;
  91. extern struct ccwin *mapwin;
  92. extern struct ccwin *listwin;
  93. extern struct ccwin *closeupwin;
  94. extern struct ccwin *sidecloseupwin;
  95. extern int mw, mh;
  96. extern int vx, vy;
  97. extern int vw, vh;
  98. extern int vw2, vh2;
  99. extern VP *mvp;
  100. extern int lastvcx, lastvcy;
  101. extern int lw, lh;
  102. extern int sh;
  103. extern int drawterrain;
  104. extern int drawunits;
  105. extern int drawnames;
  106. extern int drawpeople;
  107. extern enum listsides listsides;
  108. extern int test;
  109. extern int value;
  110. extern int sorton;
  111. extern int sortorder;
  112. extern int active;
  113. extern char *terrchars;
  114. extern char *unitchars;
  115. extern char unseen_char_1, unseen_char_2;
  116.  
  117. extern void init_display PROTO ((void));
  118. extern void init_interaction PROTO ((void));
  119. extern int wait_for_char PROTO ((void));
  120. extern void maybe_handle_input PROTO ((int));
  121. extern void interpret_input PROTO ((void));
  122. extern void do_dir_2 PROTO ((int dir, int n));
  123. extern void move_survey PROTO ((int x, int y));
  124. extern void put_on_screen PROTO ((int x, int y));
  125.  
  126. extern int ask_bool PROTO ((char *question, int dflt));
  127. extern int ask_unit_type PROTO ((char *question, short *possibles));
  128. extern int ask_terrain_type PROTO ((char *question, short *possibles));
  129. extern int ask_position PROTO ((char *prompt, int *xp, int *yp));
  130. extern void save_cur PROTO ((void));
  131. extern void restore_cur PROTO ((void));
  132. extern int ask_string PROTO ((char *prompt, char *dflt, char **strp));
  133. extern Side *ask_side PROTO ((char *prompt, Side *dflt));
  134. extern int ask_unit PROTO ((char *prompt, Unit **unitp));
  135. extern void make_current PROTO ((Unit *unit));
  136. extern void interpret_help PROTO ((void));
  137.  
  138. extern void exit_cconq PROTO ((Side *side));
  139.  
  140. extern struct ccwin *create_window PROTO ((int x, int y, int w, int h));
  141.  
  142. extern int in_middle PROTO ((int x, int y));
  143. extern void set_map_viewport PROTO ((void));
  144. extern void set_scroll PROTO ((void));
  145.  
  146. extern void redraw PROTO ((void));
  147. extern void show_toplines PROTO ((void));
  148. extern void clear_toplines PROTO ((void));
  149. extern void show_closeup PROTO ((void));
  150. extern void show_map PROTO ((void));
  151. extern void draw_row PROTO ((int x, int y, int len));
  152. extern void show_game_date PROTO ((void));
  153. extern void show_clock PROTO ((void));
  154. extern void show_side_list PROTO ((void));
  155. extern void show_list PROTO ((void));
  156. extern void show_cursor PROTO ((void));
  157. extern void show_help PROTO ((void));
  158.  
  159. extern void clear_window PROTO ((struct ccwin *win));
  160.  
  161. extern int draw_text PROTO ((struct ccwin *win, int x, int y, char *str));
  162. extern int cur_at PROTO ((struct ccwin *win, int x, int y));
  163.  
  164. extern void cycle_list_type PROTO ((void));
  165. extern void cycle_list_filter PROTO ((void));
  166. extern void cycle_list_order PROTO ((void));
  167.  
  168. extern void low_notify PROTO ((char *buf));
  169.  
  170. extern int auto_attack_on_move PROTO ((Unit *, Unit *));
  171.  
  172. extern Unit *find_next_and_look PROTO ((void));
  173.  
  174. extern void execute_command PROTO ((void));
  175.  
  176. extern void xbeep PROTO ((void));
  177.  
  178. extern void dump_text_view PROTO ((Side *side));
  179.