1 /* moon-buggy.h - global moon-buggy header file 2 * 3 * Copyright 1999, 2000 Jochen Voss 4 * 5 * $Id: moon-buggy.h 4839 2003-04-13 16:50:02Z voss $ */ 6 7 #ifndef FILE_MOON_BUGGY_H_SEEN 8 #define FILE_MOON_BUGGY_H_SEEN 9 10 /* The game's overall speed. High values indicate fast scrolling. 11 * You may try to decrease this, if the animation flickers too much. */ 12 #define MB_SPEED 1.0 13 14 #include <stdlib.h> /* we use `size_t' */ 15 #include <time.h> /* we use `time_t' */ 16 17 #ifndef CURSES_HEADER 18 #define CURSES_HEADER <curses.h> 19 #endif 20 #include CURSES_HEADER 21 22 #define TICK(x) ((x)*0.08/(MB_SPEED)) 23 #define BASELINE (LINES-5) 24 25 26 /* from "main.c" */ 27 extern const char *my_name; 28 extern WINDOW *moon, *status, *message; 29 30 extern int car_base; 31 32 extern void print_message (const char *str); 33 extern void print_hint (const char *str); 34 extern void prepare_screen (void); 35 extern void prepare_for_exit (void); 36 extern void allocate_windows (void); 37 extern void clear_windows (void); 38 39 /* from "queue.c" */ 40 typedef double game_time; 41 typedef void (*callback_fn) (game_time, void *); 42 43 extern game_time current_time (void); 44 45 extern void clock_reset (void); 46 extern void clock_thaw (void); 47 extern void clear_queue (void); 48 extern void add_event (game_time t, callback_fn callback, void *client_data); 49 extern void remove_event (callback_fn callback); 50 extern void remove_client_data (void *client_data); 51 extern void clock_freeze (void); 52 extern void quit_main_loop (void); 53 extern void main_loop (void); 54 55 extern void print_hint_h (game_time t, void *client_data); 56 extern void clear_hint_h (game_time, void *); 57 58 /* from "title.c" */ 59 extern struct mode *title_mode; 60 extern void setup_title_mode (void); 61 62 /* from "pager.c" */ 63 extern struct mode *pager_mode; 64 extern void setup_pager_mode (void); 65 66 /* from "game.c" */ 67 extern struct mode *game_mode; 68 extern struct mode *crash_mode; 69 extern int crash_detected; 70 extern int stakes; 71 72 extern void adjust_score (int val); 73 extern void print_lives (void); 74 extern void print_game_over (int blink); 75 extern void setup_game_mode (void); 76 77 /* from "level.c" */ 78 extern void level_start (int initial); 79 extern void level_tick (double t); 80 extern int current_level (void); 81 82 /* from "ground.c" */ 83 extern int *bonus; 84 extern char *ground1, *ground2; 85 extern void resize_ground (int clear_it); 86 extern void print_ground (void); 87 extern void start_scrolling (double t); 88 89 /* from "buggy.c" */ 90 extern int car_x, car_y; 91 extern void initialise_buggy (void); 92 extern void print_buggy (void); 93 extern void shift_buggy (int dx); 94 extern void jump (game_time t); 95 extern int can_jump (void); 96 extern int crash_check (void); 97 extern int car_meteor_hit (int x); 98 99 /* from "laser.c" */ 100 extern void fire_laser (double t); 101 extern void extinguish_laser (void); 102 extern int laser_hit (int x); 103 extern void resize_laser (void); 104 105 /* from "meteor.c" */ 106 extern void scroll_meteors (void); 107 extern void place_meteor (void); 108 extern void remove_meteors (void); 109 extern int meteor_laser_hit (int x0, int x1); 110 extern int meteor_car_hit (int x0, int x1); 111 extern void resize_meteors (void); 112 113 /* from "highscore.c" */ 114 extern struct mode *highscore_mode; 115 extern void create_highscores (void); 116 extern void show_highscores (void); 117 118 extern void score_set (int score, int level); 119 extern void setup_highscore_mode (void); 120 121 /* from "realname.c" */ 122 extern int get_real_user_name (char *buffer, size_t size); 123 124 /* from "vclock.c" */ 125 extern double vclock (void); 126 127 /* from "date.c" */ 128 #define MAX_DATE_CHARS 32 129 extern time_t parse_date (const char *str); 130 extern time_t convert_old_date (int day, int month, int year); 131 extern void format_date (char *buffer, time_t date); 132 extern void format_display_date (char *buffer, time_t date); 133 extern void format_relative_time (char *buffer, double dt); 134 135 /* from "persona.c" */ 136 enum persona { pers_GAME, pers_USER }; 137 extern void initialise_persona (void); 138 extern int is_setgid (void); 139 extern void set_persona (enum persona pers); 140 141 /* from "signal.c" */ 142 extern void block_all (void); 143 extern void unblock (void); 144 extern void initialise_signals (void); 145 extern int handle_signals (void); 146 147 /* from "keyboard.c" */ 148 enum mb_key { 149 mbk_copyright = 1, mbk_down = 2, mbk_end = 4, mbk_fire = 8, mbk_first = 16, 150 mbk_jump = 32, mbk_last = 64, mbk_pagedown = 128, mbk_pageup = 256, 151 mbk_start = 512, mbk_up = 1024, mbk_warranty = 2048, mbk_scores = 4096, 152 153 mbk_redraw = 8192 /* specially handled in `mode_keypress' */ 154 }; 155 struct binding { 156 int meanings; 157 const char *desc; 158 int res; 159 }; 160 extern void install_keys (void); 161 extern int read_key (void); 162 extern void describe_keys (int n, const struct binding *b); 163 164 /* from "mode.c" */ 165 struct mode { 166 void (*enter) (int seed); 167 void (*leave) (void); 168 void (*redraw) (void); 169 void (*signal) (int signum); 170 171 struct { 172 struct binding *data; 173 int used, slots; 174 } keys; 175 void (*keypress) (game_time, int); 176 }; 177 178 extern struct mode *new_mode (void); 179 extern void mode_add_key (struct mode *m, 180 int meanings, const char *desc, int res); 181 extern void mode_complete (struct mode *m); 182 extern void mode_change (const struct mode *m, int seed); 183 extern void mode_update (void); 184 extern void mode_redraw (void); 185 extern int mode_keypress (game_time t, int meaning); 186 extern void mode_signal (int signum); 187 188 /* from "terminal.c" */ 189 extern void term_prepare (int mesg_n_flag); 190 extern void term_restore (void); 191 192 /* from "cursor.c" */ 193 extern void hide_cursor (void); 194 extern void show_cursor (void); 195 196 /* from "random.c" */ 197 extern void init_rnd (void); 198 extern int uniform_rnd (unsigned limit); 199 200 /* from "error.c" */ 201 #ifdef __GNUC__ 202 extern void fatal (const char *format, ...) 203 __attribute__ ((noreturn)) __attribute__ ((format (printf, 1, 2))); 204 #else 205 extern void fatal (const char *format, ...); 206 #endif 207 208 /* from "xmalloc.c" */ 209 extern void *xmalloc (size_t size); 210 extern void *xrealloc (void *ptr, size_t size); 211 212 /* from "xstrdup.c" */ 213 extern size_t xstrnlen (const char *str, size_t size); 214 extern char *xstrdup (const char *str); 215 extern char *xstrndup (const char *str, size_t size); 216 217 /* from "hpath.c" */ 218 extern const char *score_dir; 219 220 #endif /* FILE_MOON_BUGGY_H_SEEN */ 221