added separate initial and runtime level structure definitions for EM engine
[rocksndiamonds.git] / src / game_em / cave.h
1 /* 2009-01-25 23:00:34
2  *
3  * intermediate cave structure
4  */
5
6 #ifndef CAVE_H
7 #define CAVE_H
8
9 struct CAVE
10 {
11   int width;                    /* playfield width */
12   int height;                   /* playfield height */
13
14   int player_x[MAX_PLAYERS];    /* player x pos */
15   int player_y[MAX_PLAYERS];    /* player y pos */
16
17   int time_seconds;             /* available time (seconds) */
18   int required_initial;         /* emeralds needed */
19
20   int alien_score;              /* score for killing alien */
21   int amoeba_time;              /* amoeba speed */
22   int android_move_cnt_initial; /* android move counter (initial) */
23   int android_move_time;        /* android move reset time */
24   int android_clone_cnt_initial;/* android clone counter (initial) */
25   int android_clone_time;       /* android clone reset time */
26   int ball_cnt;                 /* ball counter */
27   int ball_pos;                 /* ball array pos counter */
28   int ball_random;              /* ball is random flag */
29   int ball_state_initial;       /* ball active flag (initial) */
30   int ball_time;                /* ball reset time */
31   int bug_score;                /* score for killing bug */
32   int diamond_score;            /* score for collecting diamond */
33   int dynamite_score;           /* score for collecting dynamite */
34   int eater_pos;                /* eater array pos */
35   int eater_score;              /* score for killing eater */
36   int emerald_score;            /* score for collecting emerald */
37   int exit_score;               /* score for entering exit */
38   int key_score;                /* score for colleting key */
39   int lenses_cnt_initial;       /* lenses counter (initial) */
40   int lenses_score;             /* score for collecting lenses */
41   int lenses_time;              /* lenses reset time */
42   int magnify_cnt_initial;      /* magnify counter (initial) */
43   int magnify_score;            /* score for collecting magnifier */
44   int magnify_time;             /* magnify reset time */
45   int nut_score;                /* score for cracking nut */
46   int shine_cnt;                /* shine counter for emerald/diamond */
47   int slurp_score;              /* score for slurping alien */
48   int tank_score;               /* score for killing tank */
49   int wheel_cnt_initial;        /* wheel counter (initial) */
50   int wheel_x_initial;          /* wheel x pos (initial) */
51   int wheel_y_initial;          /* wheel y pos (initial) */
52   int wheel_time;               /* wheel reset time */
53   int wind_cnt_initial;         /* wind counter (initial) */
54   int wind_direction_initial;   /* wind direction (initial) */
55   int wind_time;                /* wind reset time */
56   int wonderwall_state_initial; /* wonderwall active flag (initial) */
57   int wonderwall_time_initial;  /* wonderwall time (initial) */
58
59   int num_ball_arrays;          /* number of ball data arrays used */
60
61   short eater_array[8][9];              /* eater data */
62   short ball_array[8][8];               /* ball data */
63   short android_array[TILE_MAX];        /* android clone table */
64
65   short cave_raw[CAVE_WIDTH][CAVE_HEIGHT];
66 };
67
68 #endif  // CAVE_H