home *** CD-ROM | disk | FTP | other *** search
/ ST-Computer Leser 2002 January / STC_CD_01_2002.iso / GAMES / BOINKO21 / SRC / SRC / BOINK.H < prev    next >
C/C++ Source or Header  |  2000-11-27  |  8KB  |  294 lines

  1. /******* boink.h ****************
  2. *                                *
  3. *  Based on boinkout.h            *
  4. *  by Samuel Streeper 1990        *
  5. *                                *
  6. * ammended Dan Ackerman 1999    *
  7. *********************************/
  8.  
  9. /* We were using these in every file that called BOINK.H */
  10. #include <aes.h>
  11. #include <vdi.h>
  12.  
  13. #include "bconfig.h"
  14. #include "avproto.h"
  15.  
  16. #ifndef TRUE
  17. #define TRUE 1
  18. #endif
  19.  
  20. #ifndef FALSE
  21. #define FALSE 0
  22. #endif
  23.  
  24. #ifndef min
  25. #define min(a, b)             ((a) < (b) ? (a) : (b))
  26. #endif
  27.  
  28. #ifndef max
  29. #define max(a, b)             ((a) > (b) ? (a) : (b))
  30. #endif
  31.  
  32. typedef struct score_entry{
  33.     char name[14];
  34.     int  level;
  35.     long  score;    /* MAR -- was int */
  36.      } SCORE_ENTRY;
  37.  
  38. typedef struct { int x,y,w,h;    } RECT;
  39.  
  40. typedef struct {
  41.     int id;
  42.     int (*ani_funct)();
  43.     int x,y;
  44.     int xspeed, yspeed;
  45.     int array[8];
  46.     int l,t,r,b;        /* redraw region */
  47.     int spin_dir;
  48.     int ball_ht, ball_wid;
  49.     int half_ht, half_wid;
  50.     int ball_num;
  51.     } BALL_STRUCT;
  52.  
  53. /******* ball id's *********/
  54. #define UNUSED 0
  55. #define BALL 1
  56. #define FUJI 2
  57. #define EYE 3
  58.  
  59. typedef struct {
  60.     int (*ani_funct)(int ax, int ay, int aframe);    /* ptr to the function to do the animation */
  61.     int x,y;                /* position of the animation */
  62.     int frame;                /* the frame number for this animation */
  63.     } ANI_STRUCT;
  64.  
  65. typedef struct
  66. {
  67.    int  red;        /* red intensity in per mille */
  68.    int  green;      /* green intensity in per mille */
  69.    int  blue;       /* blue intensity in per mille */
  70. } RGB1000;
  71.  
  72. /*
  73.  * This is the sample list definition. It consists of a doubly linked
  74.  * list of entries containing the samples which are available in the
  75.  * current sample directory.
  76.  *
  77.  * I'm just using it for sample storage and info
  78.  */
  79. typedef struct
  80. {
  81.     char name[128];            /* filename of sample in sample directory */
  82.  
  83.     struct
  84.     {
  85.         long length;            /* length of sample */
  86.         short rate;                /* sample replay 'rate' */
  87.         short stereo;            /* Is the sample stereo */
  88.         char name[128];            /* 128 character name - 0 padded */
  89.         short resolution;        /* 16 bit or 8 bit */
  90.         short *buffer_loc;        /* location of buffer */
  91.     } h;                        /* extracted from file header */
  92.     char zero;                    /* a zero since h.name is not guaranteed */
  93.                                 /* null terminated. */
  94. } samp_list;
  95.  
  96. #define MAX_BALLS 12
  97. #define MAX_ANI 60
  98.  
  99. #define WIDTH 440+13
  100. #define HEIGHT 362
  101.  
  102. #define NO_WINDOW (-1)
  103.  
  104. #define MIN_WIDTH  (113)
  105. #define MIN_HEIGHT (2*gl_hbox + ball_ht + 1)
  106.  
  107. #define BONUS 500
  108.  
  109. #define BNORMAL 3
  110. #define BLACKMODE 15
  111.  
  112. #define MAX_WINDOWS     6 /* This is how many win_info structs we are using */
  113. #define GAME_WIN         0
  114. #define ABOUT_WIN         1
  115. #define SCORE_WIN         2
  116. #define LOADING_WIN     3
  117. #define JUMP_WIN        4
  118. #define OBJCOLOR_WIN    5
  119.  
  120.  
  121. #define GLOBAL    0x0020
  122. #define ALLOCMODE 3|GLOBAL
  123.  
  124. /*#define LEVELS 36*/
  125. extern int file_levels;
  126.  
  127. /* macros to pass parameters */
  128. #ifndef PTRS
  129. #define PTRS(r) (r)->g_x, (r)->g_y, (r)->g_w, (r)->g_h
  130. #endif
  131.  
  132. #ifndef ELTS
  133. #define ELTS(r) (r).g_x, (r).g_y, (r).g_w, (r).g_h
  134. #endif
  135.  
  136. #ifndef ELTR
  137. #define ELTR(r) &(r).g_x, &(r).g_y, &(r).g_w, &(r).g_h
  138. #endif
  139.  
  140. #define     MagX_cookie        0x4D616758
  141. #define    AES_single    0
  142. #define    AES_MagiC    1
  143. #define    AES_Geneva    2
  144. #define    AES_MTOS    3
  145. #define    AES_nAES    4
  146.  
  147. #define    _cookies    ((long **) 0x5A0L)
  148.  
  149. typedef struct {
  150.     long cktag;
  151.     long ckvalue;
  152. } ck_entry;
  153.  
  154. extern int    aes_id;        /* our applications id */
  155. extern short av_id;     /* Is there an AV_ server ? */
  156. extern int planes;      /* Number of physical planes on the screen */
  157. extern MFDB tit_buf;
  158. extern MFDB screen_fdb;
  159. extern MFDB bricksource, permbricksource, fujisource, fmasksource;
  160. extern MFDB eyesource, twobricksource,magicbricksource;
  161. extern MFDB permbrickmask, twobrickmask, nbrickmask, eyemask;
  162.  
  163. extern OBJECT *about_dial,*menu_ptr,*timing_dial,*highscore_dial,
  164.                 *scorelist_dial,*loading_dial,*icons_dial,*jump_dial,
  165.                 *objcolor_dial;
  166. extern char *alert_noscore, *alert_cantcreate, *alert_cantfind, *alert_invalid;
  167.  
  168. extern char title_bar[];
  169.  
  170. extern GRECT desk;
  171. extern GRECT max;
  172. extern GRECT work;
  173. extern int timer;
  174.  
  175. extern char spath[PATH_MAX], name[FILENAME_MAX];
  176. extern char score_file[FILENAME_MAX];
  177. extern struct score_entry scores[10];
  178.  
  179. extern int junkcolors[2];
  180. extern int sound_switch;
  181. extern int vdi_handle;            /* virtual workstation handle */
  182. extern int screen_colors;        /* number o pens the screen has */
  183.  
  184. extern short vditodev8[];
  185. extern short vditodev4[];
  186. extern short vditodev2[];
  187. extern int remap_pal;  /* If this is off the screen colors will be modified by window */
  188.  
  189. extern char    *va_helpbuf;
  190.  
  191. extern RGB1000 screen_colortab[256]; /* used to save colors */
  192.  
  193. /*  Some extra .H files that need the above.
  194.     This should pretty much clean up the source code on this front
  195.     */
  196. #include "boinkout.h"
  197. #include "wins.h"
  198. #include "bo_sound.h"
  199.  
  200. /* In BOINKOUT.C */
  201. extern void add_region(int x,int y,int w,int h);
  202. extern void bsound(int pitch);
  203. extern void do_redraw(void);
  204. extern void restart_level(void);
  205. extern void save_colors(void);
  206. extern void reset_colors(void);
  207. extern void save_image_colors(void);
  208. extern void load_image_colors(void);
  209. extern void save_about_colors(void);
  210. extern void load_about_colors(void);
  211. extern void do_chipsound(int *snd);
  212. extern void open_objcolors(void);
  213. extern void high_score(void);
  214. extern int send_message(int msg[8]);
  215. extern void get_high_name(int x);
  216. extern int redraw_objcolors(void);
  217.  
  218. extern int jump_drive(int which_obj);
  219. extern int objcolors_drive(int which_obj);
  220.  
  221. /* In BOUT2.C */
  222. extern void new_ball(void);
  223. extern void vro_notcpy(int *pxy, MFDB *source, MFDB *dest);
  224.  
  225. /* In BOUT4.C */
  226. extern void cont_level(void);
  227. extern void magic(int i);
  228. extern void kill_ball(int i);
  229. extern void add_ball(int x,int y,int xspeed,int yspeed,int allow_fuji);
  230. extern void show_score(void);
  231. extern void show_lives(void);
  232. extern void show_level(void);
  233. extern void clear_areas(void);
  234. extern void fast_redraw(void);
  235. extern void add_difficulty(void);
  236.  
  237. /* In BO_SOUND.C */
  238. extern int sound_init(void);
  239. extern int sound_play(int num);
  240. extern int sound_exit(void);
  241.  
  242. /* In DIALOGS.C */
  243. extern int do_scorelist(void);
  244. extern int do_title(void);
  245. extern int do_objcolorsdial(void);
  246. extern int do_jumpdial(void);
  247. extern int do_loading(void);
  248.  
  249. /* In XIMGLOAD.C */
  250. extern void img_load(MFDB *image, char *file);
  251. extern int fix_image(MFDB *image, int color);
  252. extern int color_square( int img_handle, int color, int x, int y, int w );
  253.  
  254. /* In WINDOW.C */
  255. extern int new_window(OBJECT *tree, const char *title, int type);
  256. extern int do_wind_redraw(int wh, GRECT *p);
  257. extern int get_wininfo_from_handle(int w_hand);
  258. extern int get_topwindow(int window);
  259.  
  260. /* In FILEIO.C */
  261. extern long read_highscore(void);
  262. extern long write_score(void);
  263. extern long create_file(char *file_to_make);
  264. extern long write_cfg_file(char *file_to_read);
  265. extern long read_cfg_file(char *file_to_read);
  266. extern long read_level_file(char *file_to_read);
  267.  
  268. /* In EXTRAS.C */
  269. extern int identify_AES(void);
  270. extern void iconify(int w_info,GRECT *new_size);
  271. /*extern void iconify(int w_info,int x,int y,int w,int h);*/
  272. extern void un_iconify(int w_info,GRECT *new_size);
  273. /*extern void un_iconify(int w_info,int x,int y,int w,int h);*/
  274. extern void set_tedinfo(OBJECT *tree,int obj,char *source);
  275. extern void get_tedinfo(OBJECT *tree,int obj,char *dest);
  276.  
  277. extern int send_extmessage(int extapp, int msg0, int msg2, int msg3, int msg4, int msg5, int msg6, int msg7);
  278.  
  279. extern void paste_text(int w_info);
  280. extern void copy_paste(int w_info);
  281.  
  282. #if !GL_RCINTER
  283. extern int rc_intersect( GRECT *r1, GRECT *r2 );
  284. #endif
  285.  
  286. /* in AVFUNC.C */
  287. extern void do_help(char *pattern);
  288. extern int send_vastart(char *path, char *cmdline);
  289. extern short get_avserver(void);
  290. extern void send_avprot(void);
  291. extern void send_avexit(void);
  292.  
  293. /* in external.c */
  294. extern int run_web_browser(char *temp_file);