#define TAPE_IS_STOPPED(x) (!(x).recording && !(x).playing)
#define PLAYERINFO(x,y) (&stored_player[StorePlayer[x][y]-EL_PLAYER1])
-#define SHIELD_ON(p) ((p)->shield_passive_time_left > 0)
+#define SHIELD_ON(p) ((p)->shield_normal_time_left > 0)
#define PROTECTED_FIELD(x,y) (IS_TUBE(Feld[x][y]))
#define PLAYER_PROTECTED(x,y) (SHIELD_ON(PLAYERINFO(x, y)) || \
PROTECTED_FIELD(x, y))
+#define PLAYER_NR_GFX(g,i) ((g) + i * (IMG_PLAYER2 - IMG_PLAYER1))
+
+
+#if 0
+
+/* Bitmaps with graphic file */
+#define PIX_BACK 0
+#define PIX_DOOR 1
+#define PIX_TOONS 2
+#define PIX_FONT_BIG 3
+#define PIX_FONT_SMALL 4
+#define PIX_FONT_MEDIUM 5
+#define PIX_FONT_EM 6
+/* Bitmaps without graphic file */
+#define PIX_DB_DOOR 7
+#define PIX_DB_FIELD 8
+
+#define NUM_PICTURES 7
+#define NUM_BITMAPS 9
+
+#else
+
/* Bitmaps with graphic file */
#define PIX_BACK 0
#define PIX_ELEMENTS 1
#define NUM_PICTURES 12
#define NUM_BITMAPS 14
+#endif
+
/* boundaries of arrays etc. */
#define MAX_LEVEL_NAME_LEN 32
#define MAX_LEVEL_AUTHOR_LEN 32
#define MICRO_GFX_PER_LINE 16
#define MINI_FONT_STARTX 0
-#define MINI_FONT_STARTY 128
-#define MICRO_FONT_STARTX 408
-#define MICRO_FONT_STARTY 128
+#define MINI_FONT_STARTY 160
+#define MICRO_FONT_STARTX 384
+#define MICRO_FONT_STARTY 160
#define HEROES_PER_LINE 16
#define EL_BLOCKED (EL_FIRST_RUNTIME_UNREAL + 0)
#define EL_EXPLOSION (EL_FIRST_RUNTIME_UNREAL + 1)
-#define EL_CRACKINGNUT (EL_FIRST_RUNTIME_UNREAL + 2)
-#define EL_ACID_SPLASHING_LEFT (EL_FIRST_RUNTIME_UNREAL + 3)
-#define EL_ACID_SPLASHING_RIGHT (EL_FIRST_RUNTIME_UNREAL + 4)
+#define EL_NUT_CRACKING (EL_FIRST_RUNTIME_UNREAL + 2)
+#define EL_ACID_SPLASH_LEFT (EL_FIRST_RUNTIME_UNREAL + 3)
+#define EL_ACID_SPLASH_RIGHT (EL_FIRST_RUNTIME_UNREAL + 4)
#define EL_AMOEBA_CREATING (EL_FIRST_RUNTIME_UNREAL + 5)
#define EL_AMOEBA_SHRINKING (EL_FIRST_RUNTIME_UNREAL + 6)
#define EL_WALL_GROWING_ACTIVE (EL_FIRST_RUNTIME_UNREAL + 7)
#define GFX_ARG_OFFSET 2
#define GFX_ARG_VERTICAL 3
#define GFX_ARG_FRAMES 4
-#define GFX_ARG_DELAY 5
-#define GFX_ARG_MODE_LOOP 6
-#define GFX_ARG_MODE_LINEAR 7
-#define GFX_ARG_MODE_PINGPONG 8
-#define GFX_ARG_MODE_PINGPONG2 9
-#define GFX_ARG_MODE_REVERSE 10
-#define GFX_ARG_GLOBAL_SYNC 11
+#define GFX_ARG_START_FRAME 5
+#define GFX_ARG_DELAY 6
+#define GFX_ARG_MODE_LOOP 7
+#define GFX_ARG_MODE_LINEAR 8
+#define GFX_ARG_MODE_PINGPONG 9
+#define GFX_ARG_MODE_PINGPONG2 10
+#define GFX_ARG_MODE_REVERSE 11
+#define GFX_ARG_GLOBAL_SYNC 12
/* values for sound configuration suffixes */
/* (currently none) */
int key[4];
int dynamite;
int dynabomb_count, dynabomb_size, dynabombs_left, dynabomb_xl;
- int shield_passive_time_left;
- int shield_active_time_left;
+ int shield_normal_time_left;
+ int shield_deadly_time_left;
};
struct LevelInfo
int src_x, src_y; /* derived from (tile sized) .xpos/.ypos */
int offset_x, offset_y; /* x/y offset to next animation frame */
int anim_frames;
+ int anim_start_frame;
int anim_delay; /* important: delay of 1 means "no delay"! */
int anim_mode;
boolean anim_global_sync;