4 /* 2000-07-30T11:06:03Z ---------------------------------------------------- */
6 #define EM_MAX_CAVE_WIDTH 102
7 #define EM_MAX_CAVE_HEIGHT 102
9 /* define these for backwards compatibility */
10 #define EM_ENGINE_BAD_ROLL
11 #define EM_ENGINE_BAD_SPRING
15 Xblank = 0, /* still */
16 Yacid_splash_eB, /* hmm */
17 Yacid_splash_wB, /* hmm */
19 #ifdef EM_ENGINE_BAD_ROLL
20 Xstone_force_e, /* only use these in eater */
406 Xboom_bug, /* passed from explode to synchro (linked explosion);
407 transition to explode_normal */
408 Xboom_bomb, /* passed from explode to synchro (linked explosion);
409 transition to explode_normal */
410 Xboom_android, /* passed from explode to synchro;
411 transition to boom_2 */
412 Xboom_1, /* passed from explode to synchro;
413 transition to boom_2 */
414 Xboom_2, /* transition to boom[] */
416 Znormal, /* passed from synchro to explode, only in next[];
418 Zdynamite, /* passed from synchro to explode, only in next[];
420 Zplayer, /* special code to indicate player;
422 ZBORDER, /* special code to indicate border;
430 SAMPLE_blank = 0, /* player walks on blank */
431 SAMPLE_roll, /* player pushes stone/bomb/nut/spring */
432 SAMPLE_stone, /* stone hits ground */
433 SAMPLE_nut, /* nut hits ground */
434 SAMPLE_crack, /* stone hits nut */
435 SAMPLE_bug, /* bug moves */
436 SAMPLE_tank, /* tank moves */
437 SAMPLE_android, /* android places something */
438 SAMPLE_spring, /* spring hits ground/wall/bumper, stone hits spring */
439 SAMPLE_slurp, /* spring kills alien */
440 SAMPLE_eater, /* eater sits/eats diamond */
441 SAMPLE_alien, /* alien moves */
442 SAMPLE_collect, /* player collects object */
443 SAMPLE_diamond, /* diamond/emerald hits ground */
444 SAMPLE_squash, /* stone squashes diamond */
445 SAMPLE_wonderfall, /* object falls thru wonderwall */
446 SAMPLE_drip, /* drip hits ground */
447 SAMPLE_push, /* player pushes balloon/android */
448 SAMPLE_dirt, /* player walks on dirt */
449 SAMPLE_acid, /* acid splashes */
450 SAMPLE_ball, /* ball places something */
451 SAMPLE_grow, /* growing wall grows */
452 SAMPLE_wonder, /* wonderwall is active */
453 SAMPLE_door, /* player goes thru door (gate) */
454 SAMPLE_exit, /* player goes into exit */
455 SAMPLE_dynamite, /* player places dynamite */
456 SAMPLE_tick, /* dynamite ticks */
457 SAMPLE_press, /* player presses wheel/wind/switch */
458 SAMPLE_wheel, /* wheel moves */
459 SAMPLE_boom, /* explosion */
460 SAMPLE_time, /* time runs out */
461 SAMPLE_die, /* player dies */
468 unsigned int home_initial; /* number of players (initial) */
469 unsigned int home; /* number of players not yet at home */
470 /* 0 == all players at home */
472 unsigned int width; /* playfield width */
473 unsigned int height; /* playfield height */
475 unsigned int time_seconds; /* available time (seconds) */
476 unsigned int time_initial; /* available time (initial) */
477 unsigned int time; /* time remaining (runtime) */
479 unsigned int required_initial; /* emeralds needed (initial) */
480 unsigned int required; /* emeralds needed (runtime) */
482 unsigned int score; /* score */
484 /* fill in all below /every/ time you read a level */
485 unsigned int alien_score; /* alien popped by stone/spring score */
486 unsigned int amoeba_time; /* amoeba speed */
487 unsigned int android_move_cnt_initial; /* android move time counter (initial) */
488 unsigned int android_move_cnt; /* android move time counter */
489 unsigned int android_move_time; /* android move reset time */
490 unsigned int android_clone_cnt_initial; /* android clone time counter (initial) */
491 unsigned int android_clone_cnt; /* android clone time counter */
492 unsigned int android_clone_time; /* android clone reset time */
493 unsigned int ball_cnt; /* ball time counter */
494 unsigned int ball_pos; /* ball array pos counter */
495 unsigned int ball_random; /* ball is random flag */
496 unsigned int ball_state_initial; /* ball currently on flag (initial) */
497 unsigned int ball_state; /* ball currently on flag */
498 unsigned int ball_time; /* ball reset time */
499 unsigned int bug_score; /* bug popped by stone/spring score */
500 unsigned int diamond_score; /* diamond collect score */
501 unsigned int dynamite_score; /* dynamite collect scoer*/
502 unsigned int eater_pos; /* eater array pos */
503 unsigned int eater_score; /* eater popped by stone/spring score */
504 unsigned int emerald_score; /* emerald collect score */
505 unsigned int exit_score; /* exit score */
506 unsigned int key_score; /* key collect score */
507 unsigned int lenses_cnt_initial; /* lenses time counter (initial) */
508 unsigned int lenses_cnt; /* lenses time counter */
509 unsigned int lenses_score; /* lenses collect score */
510 unsigned int lenses_time; /* lenses reset time */
511 unsigned int magnify_cnt_initial; /* magnify time counter (initial) */
512 unsigned int magnify_cnt; /* magnify time counter */
513 unsigned int magnify_score; /* magnify collect score */
514 unsigned int magnify_time; /* magnify reset time */
515 unsigned int nut_score; /* nut crack score */
516 unsigned int shine_cnt; /* shine counter for emerald/diamond */
517 unsigned int slurp_score; /* slurp alien score */
518 unsigned int tank_score; /* tank popped by stone/spring */
519 unsigned int wheel_cnt_initial; /* wheel time counter (initial) */
520 unsigned int wheel_cnt; /* wheel time counter */
521 unsigned int wheel_x_initial; /* wheel x pos (initial) */
522 unsigned int wheel_x; /* wheel x pos */
523 unsigned int wheel_y_initial; /* wheel y pos (initial) */
524 unsigned int wheel_y; /* wheel y pos */
525 unsigned int wheel_time; /* wheel reset time */
526 unsigned int wind_cnt_initial; /* wind time counter (initial) */
527 unsigned int wind_cnt; /* wind time counter */
528 unsigned int wind_direction_initial;/* wind direction (initial) */
529 unsigned int wind_direction; /* wind direction */
530 unsigned int wind_time; /* wind reset time */
531 unsigned int wonderwall_state_initial; /* wonderwall currently on flag (initial) */
532 unsigned int wonderwall_state; /* wonderwall currently on flag */
533 unsigned int wonderwall_time_initial;/* wonderwall time (initial) */
534 unsigned int wonderwall_time; /* wonderwall time */
535 unsigned short eater_array[8][9]; /* eater data */
536 unsigned short ball_array[8][8]; /* ball data */
537 unsigned short android_array[TILE_MAX]; /* android clone table */
543 unsigned int alive_initial;
546 unsigned int dynamite;
547 unsigned int dynamite_cnt;
551 unsigned int x_initial;
552 unsigned int y_initial;
563 unsigned joy_stick:1;
568 /* ------------------------------------------------------------------------- */
569 /* definitions and structures for use by the main game functions */
570 /* ------------------------------------------------------------------------- */
572 /* values for native Emerald Mine game version */
573 #define FILE_VERSION_EM_V3 3
574 #define FILE_VERSION_EM_V4 4
575 #define FILE_VERSION_EM_V5 5
576 #define FILE_VERSION_EM_V6 6
578 #define FILE_VERSION_EM_ACTUAL FILE_VERSION_EM_V6
585 struct PLAYER *ply1, *ply2;
587 unsigned short cave[EM_MAX_CAVE_WIDTH][EM_MAX_CAVE_HEIGHT];
590 #endif /* MAIN_EM_H */