#include "game.h"
#include "events.h"
-GC tile_clip_gc;
#if 0
+GC tile_clip_gc;
Bitmap *pix[NUM_BITMAPS];
#endif
Bitmap *bitmap_db_field, *bitmap_db_door;
+#if 0
Pixmap tile_clipmask[NUM_TILES];
+#endif
DrawBuffer *fieldbuffer;
DrawBuffer *drawto_field;
short Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
short Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
short StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-short Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-short GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
boolean Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
short JustStopped[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
short AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
short AmoebaCnt[MAX_NUM_AMOEBA], AmoebaCnt2[MAX_NUM_AMOEBA];
+short ExplodePhase[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
short ExplodeField[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
-unsigned long Elementeigenschaften1[MAX_ELEMENTS];
-unsigned long Elementeigenschaften2[MAX_ELEMENTS];
+
+unsigned long Properties1[MAX_NUM_ELEMENTS];
+unsigned long Properties2[MAX_NUM_ELEMENTS];
+
+int GfxFrame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+short GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
int lev_fieldx,lev_fieldy, scroll_x,scroll_y;
struct FileInfo *image_files;
struct FileInfo *sound_files;
-struct ElementInfo element_info[MAX_ELEMENTS] =
+struct ElementInfo element_info[MAX_NUM_ELEMENTS] =
{
+ /* "real" level file elements */
+
{ "empty_space", "empty space" }, /* 0 */
{ "sand", "sand" },
{ "wall", "normal wall" },
{ "dx_bomb", "stable bomb (DX style)" },
{ NULL, "-" },
{ NULL, "-" },
- { "generic", "generic element 0" },
- { "generic", "generic element 1" },
- { "generic", "generic element 2" },
- { "generic", "generic element 3" },
- { "generic", "generic element 4" },
- { "generic", "generic element 5" },
- { "generic", "generic element 6" },
- { "generic", "generic element 7" },
- { "generic", "generic element 8" },
- { "generic", "generic element 9" },
- { "generic", "generic element 10" },
- { "generic", "generic element 11" },
- { "generic", "generic element 12" },
- { "generic", "generic element 13" },
- { "generic", "generic element 14" },
- { "generic", "generic element 15" },
- { "generic", "generic element 16" },
- { "generic", "generic element 17" },
- { "generic", "generic element 18" },
- { "generic", "generic element 19" },
- { "generic", "generic element 20" },
- { "generic", "generic element 21" },
- { "generic", "generic element 22" },
- { "generic", "generic element 23" },
- { "generic", "generic element 24" },
- { "generic", "generic element 25" },
- { "generic", "generic element 26" },
- { "generic", "generic element 27" },
- { "generic", "generic element 28" },
- { "generic", "generic element 29" },
- { "generic", "generic element 30" },
- { "generic", "generic element 31" },
+ { "custom", "custom element 1" }, /* 360 */
+ { "custom", "custom element 2" },
+ { "custom", "custom element 3" },
+ { "custom", "custom element 4" },
+ { "custom", "custom element 5" },
+ { "custom", "custom element 6" },
+ { "custom", "custom element 7" },
+ { "custom", "custom element 8" },
+ { "custom", "custom element 9" },
+ { "custom", "custom element 10" },
+ { "custom", "custom element 11" }, /* 370 */
+ { "custom", "custom element 12" },
+ { "custom", "custom element 13" },
+ { "custom", "custom element 14" },
+ { "custom", "custom element 15" },
+ { "custom", "custom element 16" },
+ { "custom", "custom element 17" },
+ { "custom", "custom element 18" },
+ { "custom", "custom element 19" },
+ { "custom", "custom element 20" },
+ { "custom", "custom element 21" }, /* 380 */
+ { "custom", "custom element 22" },
+ { "custom", "custom element 23" },
+ { "custom", "custom element 24" },
+ { "custom", "custom element 25" },
+ { "custom", "custom element 26" },
+ { "custom", "custom element 27" },
+ { "custom", "custom element 28" },
+ { "custom", "custom element 29" },
+ { "custom", "custom element 30" },
+ { "custom", "custom element 31" }, /* 390 */
+ { "custom", "custom element 32" },
+ { "custom", "custom element 33" },
+ { "custom", "custom element 34" },
+ { "custom", "custom element 35" },
+ { "custom", "custom element 36" },
+ { "custom", "custom element 37" },
+ { "custom", "custom element 38" },
+ { "custom", "custom element 39" },
+ { "custom", "custom element 40" },
+ { "custom", "custom element 41" }, /* 400 */
+ { "custom", "custom element 42" },
+ { "custom", "custom element 43" },
+ { "custom", "custom element 44" },
+ { "custom", "custom element 45" },
+ { "custom", "custom element 46" },
+ { "custom", "custom element 47" },
+ { "custom", "custom element 48" },
+ { "custom", "custom element 49" },
+ { "custom", "custom element 50" },
+ { "custom", "custom element 51" }, /* 410 */
+ { "custom", "custom element 52" },
+ { "custom", "custom element 53" },
+ { "custom", "custom element 54" },
+ { "custom", "custom element 55" },
+ { "custom", "custom element 56" },
+ { "custom", "custom element 57" },
+ { "custom", "custom element 58" },
+ { "custom", "custom element 59" },
+ { "custom", "custom element 60" },
+ { "custom", "custom element 61" }, /* 420 */
+ { "custom", "custom element 62" },
+ { "custom", "custom element 63" },
+ { "custom", "custom element 64" },
+ { "custom", "custom element 65" },
+ { "custom", "custom element 66" },
+ { "custom", "custom element 67" },
+ { "custom", "custom element 68" },
+ { "custom", "custom element 69" },
+ { "custom", "custom element 70" },
+ { "custom", "custom element 71" }, /* 430 */
+ { "custom", "custom element 72" },
+ { "custom", "custom element 73" },
+ { "custom", "custom element 74" },
+ { "custom", "custom element 75" },
+ { "custom", "custom element 76" },
+ { "custom", "custom element 77" },
+ { "custom", "custom element 78" },
+ { "custom", "custom element 79" },
+ { "custom", "custom element 80" },
+ { "custom", "custom element 81" }, /* 440 */
+ { "custom", "custom element 82" },
+ { "custom", "custom element 83" },
+ { "custom", "custom element 84" },
+ { "custom", "custom element 85" },
+ { "custom", "custom element 86" },
+ { "custom", "custom element 87" },
+ { "custom", "custom element 88" },
+ { "custom", "custom element 89" },
+ { "custom", "custom element 90" },
+ { "custom", "custom element 91" }, /* 450 */
+ { "custom", "custom element 92" },
+ { "custom", "custom element 93" },
+ { "custom", "custom element 94" },
+ { "custom", "custom element 95" },
+ { "custom", "custom element 96" },
+ { "custom", "custom element 97" },
+ { "custom", "custom element 98" },
+ { "custom", "custom element 99" },
+ { "custom", "custom element 100" },
+ { "custom", "custom element 101" }, /* 460 */
+ { "custom", "custom element 102" },
+ { "custom", "custom element 103" },
+ { "custom", "custom element 104" },
+ { "custom", "custom element 105" },
+ { "custom", "custom element 106" },
+ { "custom", "custom element 107" },
+ { "custom", "custom element 108" },
+ { "custom", "custom element 109" },
+ { "custom", "custom element 110" },
+ { "custom", "custom element 111" }, /* 470 */
+ { "custom", "custom element 112" },
+ { "custom", "custom element 113" },
+ { "custom", "custom element 114" },
+ { "custom", "custom element 115" },
+ { "custom", "custom element 116" },
+ { "custom", "custom element 117" },
+ { "custom", "custom element 118" },
+ { "custom", "custom element 119" },
+ { "custom", "custom element 120" },
+ { "custom", "custom element 121" }, /* 480 */
+ { "custom", "custom element 122" },
+ { "custom", "custom element 123" },
+ { "custom", "custom element 124" },
+ { "custom", "custom element 125" },
+ { "custom", "custom element 126" },
+ { "custom", "custom element 127" },
+ { "custom", "custom element 128" },
+
+ /* "real" (and therefore drawable) runtime elements */
+
+ { "magic_wall", "-" },
+ { "magic_wall", "-" },
+ { "magic_wall", "-" }, /* 490 */
+ { "magic_wall", "-" },
+ { "wall", "-" },
+ { "wall", "-" },
+ { "exit", "-" },
+ { "sp_terminal", "-" },
+ { "sp_buggy_base", "-" },
+ { "key", "-" },
+ { "key", "-" },
+ { "key", "-" },
+ { "key", "-" }, /* 500 */
+ { "dynabomb", "-" },
+ { "dynabomb", "-" },
+ { "dynabomb", "-" },
+ { "dynabomb", "-" },
+ { "switchgate", "-" },
+ { "switchgate", "-" },
+ { "timegate", "-" },
+ { "timegate", "-" },
+ { "pearl", "-" },
+ { "trap", "-" }, /* 510 */
+ { "murphy_clone", "-" },
+ { "quicksand", "-" },
+ { "magic_wall", "-" },
+ { "magic_wall", "-" },
+ { "amoeba", "-" },
+ { "sp_exit", "-" },
+ { "wall", "-" },
+ { "sand", "-" },
+ { "wall", "-" },
+ { "conveyor_belt", "-" }, /* 520 */
+ { "conveyor_belt", "-" },
+ { "conveyor_belt", "-" },
+ { "conveyor_belt", "-" },
+ { "conveyor_belt", "-" },
+ { "conveyor_belt", "-" },
+ { "conveyor_belt", "-" },
+ { "conveyor_belt", "-" },
+ { "conveyor_belt", "-" },
+ { "conveyor_belt", "-" },
+ { "conveyor_belt", "-" }, /* 530 */
+ { "conveyor_belt", "-" },
{ NULL, "-" }
-
- /*
- "-------------------------------",
- */
};
+#if 0
struct GraphicInfo graphic_info[MAX_GRAPHICS];
+#endif
struct NewGraphicInfo new_graphic_info[NUM_IMAGE_FILES];