00001 #ifndef MAIN_H
00002 #ifndef GLOBAL_H
00003 #define GLOBAL_H
00004
00005 #include "config.h"
00006 #include <allegro.h>
00007 #include "almp3.h"
00008 #include "time.h"
00009 #include "global_add.h"
00010 #include "loader.h"
00011
00015 extern struct
00016 {
00017 struct
00018 {
00019 int port;
00020 int volume;
00021 char *name;
00022 }
00023 output;
00024 }
00025 Options;
00026
00027
00028 typedef struct {
00029 PACKFILE *f;
00030 ALMP3_MP3STREAM *s;
00031 } MP3FILE;
00032
00033 extern MP3FILE *mp3 ;
00034 extern int mp3status;
00035 extern int mp3_loop;
00036
00037
00038
00039 extern FNTInfo* fontInfo;
00040 extern PALETTE* pal[16];
00041
00042
00043
00044
00045 extern DATAFILE *creditflic ;
00046 extern DATAFILE *fonts_dat ;
00047 extern FONT *small_font ;
00048
00049 extern MIDI *music ;
00050
00051 extern SAMPLE *rd1 ;
00052 extern SAMPLE *rd2 ;
00053 extern SAMPLE *rd3 ;
00054
00055 extern SAMPLE *fight ;
00056
00057 extern SAMPLE *hit_alwa ;
00058 extern SAMPLE *hit_good ;
00059
00060 extern SAMPLE *wp_alwa ;
00061 extern SAMPLE *wk_alwa ;
00062 extern SAMPLE *sp_alwa ;
00063 extern SAMPLE *sk_alwa ;
00064
00065 extern SAMPLE *hit1 ;
00066 extern SAMPLE *hit2 ;
00067
00068 extern SAMPLE *block_snd ;
00069
00070 extern SAMPLE *hadoken1 ;
00071 extern SAMPLE *hadoken2 ;
00072 extern SAMPLE *copter1 ;
00073 extern SAMPLE *copter2 ;
00074 extern SAMPLE *dragon1 ;
00075 extern SAMPLE *dragon2 ;
00076
00077 extern SAMPLE *hadokenx1 ;
00078 extern SAMPLE *hadokenx2 ;
00079 extern SAMPLE *copterx1 ;
00080 extern SAMPLE *copterx2 ;
00081 extern SAMPLE *dragonx1 ;
00082 extern SAMPLE *dragonx2 ;
00083
00084 extern SAMPLE *done ;
00085 extern SAMPLE *bing ;
00086 extern SAMPLE *buzz ;
00087
00088 extern SAMPLE *ko_snd ;
00089
00090 extern SAMPLE *prfct_snd ;
00091 extern SAMPLE *to_snd ;
00092
00093 extern SAMPLE *argh_snd ;
00094 extern SAMPLE *female_snd ;
00095
00096 extern BITMAP *virtscreen ;
00097
00098 extern BITMAP *zoomscreen ;
00099
00100 extern BITMAP *scanliner ;
00101
00102
00103 extern PALLETE Pal ;
00104 extern PALLETE TPal ;
00105
00106 extern BITMAP *Title ;
00107
00108 extern BITMAP *Selecteur1 ;
00109 extern BITMAP *Selecteur2 ;
00110
00111 extern BITMAP *LBbanner;
00112 extern BITMAP *LBbanner2;
00113
00114
00115 extern BITMAP *Bar ;
00116 extern BITMAP *Bar2 ;
00117
00118 extern BITMAP *Power ;
00119
00120 extern BITMAP *PBar ;
00121
00122 extern BITMAP *WImpact[ 11 ] ;
00123 extern BITMAP *SImpact[ 11 ] ;
00124 extern BITMAP *BlockImpact[ 11 ] ;
00125 extern BITMAP *B_Temp ;
00126
00127 extern BITMAP *Carton_R1 ;
00128 extern BITMAP *Carton_R2 ;
00129 extern BITMAP *Carton_R3 ;
00130
00131 extern BITMAP *Carton_FT ;
00132
00133 extern BITMAP *Carton_WN ;
00134
00135 extern BITMAP *Carton_KO ;
00136
00137 #if TIMEOVER == 1
00138 BITMAP *Carton_TO ;
00139 #endif
00140
00141 extern BITMAP *novic0 ;
00142 extern BITMAP *novic1 ;
00143
00144 extern BITMAP *avic0 ;
00145 extern BITMAP *avic1 ;
00146
00147 extern BITMAP *Face1 ;
00148 extern BITMAP *Face2 ;
00149
00150 extern BITMAP *Icon1 ;
00151 extern BITMAP *Icon2 ;
00152
00153 extern BITMAP *Lock ;
00154
00155
00156 extern BITMAP *Bkgd ;
00157
00158 extern BITMAP *Frgd ;
00159
00160
00161
00162 extern BITMAP *tface1;
00163 extern BITMAP *tface2;
00164
00165 extern char buffer[100];
00166 extern char file2[200];
00167
00168 extern int opt;
00169 extern int t_clock;
00170
00171
00172
00173 #if TIMEOVER > 0
00174 BITMAP *B_clock[ 11 ];
00175 #endif
00176
00177 #if PERFECT == 1
00178 BITMAP *B_prfct;
00179 #endif
00180
00181
00182
00183 struct PLAYER_BMP_STRUCT
00184 {
00185 BITMAP *Static[ 999 ];
00186 BITMAP *Walk[ 999 ];
00187 BITMAP *Single[ 999 ];
00188 BITMAP *Punch[ 999 ];
00189 BITMAP *WPunch[ 999 ];
00190 BITMAP *Kick[ 999 ];
00191 BITMAP *WKick[ 999 ];
00192 BITMAP *Jump[ 999 ];
00193 BITMAP *KO[ 999 ];
00194 BITMAP *Hurt[ 999 ];
00195 BITMAP *GHurt[ 999 ];
00196 BITMAP *AKick[ 999 ];
00197 BITMAP *APunch[ 999 ];
00198 BITMAP *GKick[ 999 ];
00199 BITMAP *GPunch[ 999 ];
00200 BITMAP *FireB[ 999 ];
00201 BITMAP *FBall[ 999 ];
00202 BITMAP *Rush[ 999 ];
00203 BITMAP *SMove[ 999 ];
00204 BITMAP *FireBX[ 999 ];
00205 BITMAP *FBallX[ 999 ];
00206 BITMAP *RushX[ 999 ];
00207 BITMAP *SMoveX[ 999 ];
00208 BITMAP *NMoves[ 999 ][ 999 ];
00209 };
00210
00211
00212 struct MOVE
00213 {
00214 int w ;
00215 char nbf, spd ;
00216 int defx , defy ;
00217 };
00218
00219 struct AMOVE
00220 {
00221 int w ;
00222 char nbf, spd ;
00223 int defx , defy ;
00224
00225 char hit, dmg ;
00226 int offx , offy ;
00227 };
00228
00229 struct SMOVE
00230 {
00231 int w ;
00232 char nbf, spd ;
00233 int defx , defy ;
00234
00235 char hit, dmg ;
00236 int offx , offy ;
00237
00238 char flg, rot, pix, end, succ, spec, sflg ;
00239 char exec[255] ;
00240 char seq[ 40 ] ;
00241 char nb ;
00242
00243 };
00244
00245 struct PLAYER_DATA_STRUCT
00246 {
00247 char flag ;
00248 int height, width ;
00249
00250 int limoffx , limoffy ;
00251 int limdefx , limdefy ;
00252
00253 int wimpact_ct ;
00254 int simpact_ct ;
00255 int bimpact_ct ;
00256
00257 struct MOVE statik ;
00258 struct MOVE walk ;
00259 struct MOVE crouch ;
00260 struct MOVE hurt ;
00261 struct MOVE ghurt ;
00262 struct MOVE jump ;
00263 struct MOVE intro ;
00264 struct MOVE outwin ;
00265 struct MOVE ko ;
00266
00267 struct AMOVE wpunch ;
00268 struct AMOVE spunch ;
00269 struct AMOVE apunch ;
00270 struct AMOVE gpunch ;
00271 struct AMOVE wkick ;
00272 struct AMOVE skick ;
00273 struct AMOVE gkick ;
00274 struct AMOVE akick ;
00275
00276 struct SMOVE fireb ;
00277 struct SMOVE fball ;
00278 struct SMOVE rush ;
00279 struct SMOVE smove ;
00280
00281 struct SMOVE firebx ;
00282 struct SMOVE fballx ;
00283 struct SMOVE rushx ;
00284 struct SMOVE smovex ;
00285
00286 };
00287
00288 extern struct PLAYER_BMP_STRUCT Player1 ;
00289 extern struct PLAYER_BMP_STRUCT Player2 ;
00290
00291 extern struct PLAYER_DATA_STRUCT p1 ;
00292 extern struct PLAYER_DATA_STRUCT p2 ;
00293
00294
00295
00296
00297
00298
00299 extern char animated ;
00300 extern char foreground ;
00301
00302 extern char bkgd_counter ;
00303 extern char bkgd_delay ;
00304
00305 extern int bkgdlim ;
00306 extern int zoomsup ;
00307 extern int zoomwidth;
00308
00309 extern unsigned char j ;
00310 extern int gmode;
00311 extern char diff ;
00312
00313
00314
00315 extern char story ;
00316 extern int sel1, sel2 ;
00317 extern char debug ;
00318
00319
00320 extern char charname [ 1000 ][ 30 ] ;
00321 extern char bkgdname [ 200 ][ 30 ] ;
00322 extern char flcname [ 100 ][ 30 ] ;
00323
00324 extern int nbchar ;
00325 extern int nbbkgd ;
00326 extern int nbflc ;
00327
00328 extern char defeated[ 1000 ];
00329 extern char present[ 1000 ];
00330 extern char secretchar[ 1000 ];
00331
00332 extern int num ;
00333 extern char tilenum[ 4 ] ;
00334
00335 extern char charn1[ 40 ] ;
00336 extern char charn2[ 40 ] ;
00337
00338 extern char bkgdnum[ 4 ] ;
00339
00340 extern char file[ 200 ] ;
00341 extern char passeur[ 100 ] ;
00342 extern char sectn[ 50 ] ;
00343
00344 extern char temp_strg[ 2 ] ;
00345
00346 extern char last_char ;
00347
00348 extern char get_kstatus ( char strg[] ) ;
00349
00350 extern char check_kstatus1 ( char ctrl_key ) ;
00351 extern char check_kstatus2 ( char ctrl_key ) ;
00352
00353 extern char last_status1 ;
00354 extern char last_status2 ;
00355
00356 extern int fball_h1 , fball_h2 ;
00357 extern int fballx_h1 , fballx_h2 ;
00358
00359 extern char autho_ht1 , autho_ht2 ;
00360
00361 extern char wimpact_nbf ;
00362 extern char simpact_nbf ;
00363 extern char bimpact_nbf ;
00364
00365
00366
00367 extern int p1_up , p2_up ;
00368 extern int p1_down , p2_down ;
00369 extern int p1_left , p2_left ;
00370 extern int p1_right , p2_right ;
00371 extern int p1_wpunch , p2_wpunch ;
00372 extern int p1_spunch , p2_spunch ;
00373 extern int p1_wkick , p2_wkick ;
00374 extern int p1_skick , p2_skick ;
00375
00376
00377
00378 extern int offense , defense ;
00379
00380 extern char easy_def , easy_off ;
00381 extern char medium_def , medium_off ;
00382 extern char hard_def , hard_off ;
00383
00384 extern int ai_walkf , ai_walkb ;
00385 extern int ai_static ;
00386
00387
00388
00389 extern int mp3_on ;
00390
00391 extern int intro_delay ;
00392
00393 extern int pan;
00394 extern int pitch;
00395
00396 extern int snd_vol , midi_vol ;
00397
00398 extern int start_x , start_y ;
00399
00400 extern int gfmode;
00401 extern int stretch;
00402
00403 extern int screen_height;
00404 extern int screen_width;
00405 extern int screen_depth;
00406
00407 extern int full_screen;
00408 extern char autorise ;
00409
00410
00411
00412 extern int life1, life2 ;
00413 extern int spower1, spower2 ;
00414 extern char vic_flag, vic1, vic2;
00415
00416 extern int clone;
00417
00418
00419
00420 extern char c ;
00421 extern int cx, cy;
00422 extern int x, y;
00423 extern int fx, fy;
00424 extern int ok ;
00425 extern int s ;
00426 extern int misc ;
00427
00428 extern long n;
00429
00430 extern int flag ;
00431 extern int flag2 ;
00432
00433 extern char hflag , hflag2 ;
00434
00435 extern int checkint ;
00436
00437
00438 extern char frameskip;
00439 extern char skp_flag;
00440
00441 extern int sens1 ;
00442 extern int sens2 ;
00443 extern int i;
00444 extern int g , h , nb ;
00445
00446 extern char com_block ;
00447 extern char com_gblock ;
00448
00449 extern char com_walkf ;
00450 extern char com_walkb ;
00451
00452 extern int spr1x , spr1y ;
00453 extern int spr2x , spr2y ;
00454
00455 extern char oldsel1 , oldsel2 ;
00456 extern char last_sel1, last_sel2 ;
00457
00458 extern char p2_sel ;
00459
00460 extern int angle ;
00461
00462 extern char bgd ;
00463
00464 extern int sel_player1 , sel_player2 ;
00465
00466 extern int alt_color , tcolor , bcolor ;
00467
00468 extern int sel_bkgd ;
00469
00470 extern int text_color ;
00471
00472 extern int deb ;
00473
00474
00475 extern int actual ;
00476 extern int actual2 ;
00477
00478 extern char ak , ak2 ;
00479 extern char apch , apch2 ;
00480
00481 extern char limak , limak2 ;
00482
00483 extern signed char limp1 , limp2 ;
00484
00485 extern char nbpar ;
00486
00487 extern char vsynch ;
00488
00489
00490 extern int delayer ;
00491
00492
00493
00494 extern int sol1 , sol2 ;
00495 extern int tol1 , tol2 ;
00496 extern int jump_how1 , jump_how2 ;
00497
00498 extern int hitfram1, hitfram2 ;
00499
00500 extern char female1 , female2 ;
00501
00502
00503
00504 extern int rush_stop1 , rush_stop2 ;
00505 extern int smove_stop1 , smove_stop2 ;
00506
00507 extern int rushx_stop1 , rushx_stop2 ;
00508 extern int smovex_stop1 , smovex_stop2 ;
00509
00510
00511 extern char damag1 , damag2 ;
00512
00513 extern char fball1 , fball2 ;
00514
00515 extern int fb1x , fb2x ;
00516 extern int fb1y , fb2y ;
00517
00518 extern int fball_cx1 , fball_cx2 ;
00519 extern int fball_cy1 , fball_cy2 ;
00520
00521 extern char fball_flg1 , fball_flg2 ;
00522
00523 extern char fballx1 , fballx2 ;
00524
00525 extern int fbx1x , fbx2x ;
00526 extern int fbx1y , fbx2y ;
00527
00528 extern int fballx_cx1 , fballx_cx2 ;
00529 extern int fballx_cy1 , fballx_cy2 ;
00530
00531 extern char fballx_flg1 , fballx_flg2 ;
00532
00533
00534 extern char accel_flag , gfx_flag ;
00535 extern char snd_flag , midi_flag ;
00536
00537 extern char wind_flag ;
00538
00539 extern char tnt2 ;
00540
00541 extern char open1[ 40 ] ;
00542 extern char open2[ 40 ] ;
00543 extern char open3[ 40 ] ;
00544 extern char open4[ 40 ] ;
00545 extern char open5[ 40 ] ;
00546 extern char title[ 20 ] ;
00547
00548 #if SCREENSHOT > 0
00549 extern void screenshot( void ) ;
00550 #endif
00551
00552 extern void text_shadow( BITMAP *outbm, FONT *font, char *text, int x, int y, int color );
00553 extern void text_centre_shadow( BITMAP *outbm, FONT *font, char *text, int x, int y, int color );
00554
00555
00556 char inverted ;
00557
00558 #if GAME_DEBUG > 0
00559 extern void __tron__( char *log_mess, char *n_file , int n_line );
00560 #endif
00561
00562 extern char log_mess[ 80 ];
00563 extern void __error__( char *log_mess, char *n_file , int n_line );
00564
00565 #endif
00566 #endif // MAIN_H