/* values for animation action types */
-#define GFX_ACTION_UNKNOWN 0
-#define GFX_ACTION_DEFAULT 1
-#define GFX_ACTION_WAITING 2
-#define GFX_ACTION_FALLING 3
-#define GFX_ACTION_MOVING 4
-#define GFX_ACTION_DIGGING 5
-#define GFX_ACTION_SNAPPING 6
-#define GFX_ACTION_COLLECTING 7
-#define GFX_ACTION_PUSHING 8
-#define GFX_ACTION_PASSING 9
-#define GFX_ACTION_IMPACT 10
-#define GFX_ACTION_CRACKING 11
-#define GFX_ACTION_ACTIVATING 12
-#define GFX_ACTION_EATING 13
-#define GFX_ACTION_ATTACKING 14
-#define GFX_ACTION_GROWING 15
-#define GFX_ACTION_OTHER 16
-
-#define NUM_GFX_ACTIONS 17
+#define GFX_ACTION_DEFAULT 0
+#define GFX_ACTION_WAITING 1
+#define GFX_ACTION_FALLING 2
+#define GFX_ACTION_MOVING 3
+#define GFX_ACTION_DIGGING 4
+#define GFX_ACTION_SNAPPING 5
+#define GFX_ACTION_COLLECTING 6
+#define GFX_ACTION_PUSHING 7
+#define GFX_ACTION_PASSING 8
+#define GFX_ACTION_IMPACT 9
+#define GFX_ACTION_CRACKING 10
+#define GFX_ACTION_ACTIVATING 11
+#define GFX_ACTION_EATING 12
+#define GFX_ACTION_ATTACKING 13
+#define GFX_ACTION_GROWING 14
+#define GFX_ACTION_OTHER 15
+
+#define NUM_GFX_ACTIONS 16
#define NUM_GFX_ACTIONS_MAPPED 8
#define GFX_ARG_YPOS 1
#define GFX_ARG_FRAMES 2
#define GFX_ARG_DELAY 3
-#define GFX_ARG_PINGPONG 4
-#define GFX_ARG_PINGPONG2 5
-#define GFX_ARG_REVERSE 6
-#define GFX_ARG_GLOBAL_SYNC 7
-#define GFX_ARG_VERTICAL 8
+#define GFX_ARG_MODE_LINEAR 4
+#define GFX_ARG_MODE_PINGPONG 5
+#define GFX_ARG_MODE_PINGPONG2 6
+#define GFX_ARG_MODE_REVERSE 7
+#define GFX_ARG_GLOBAL_SYNC 8
+#define GFX_ARG_VERTICAL 9
/* values for sound configuration suffixes */
/* (currently none) */
PROGRAM_VERSION_MINOR, \
PROGRAM_VERSION_PATCH)
-/* for DrawGraphicAnimation() [tools.c] and AnimateToon() [cartoons.c] */
-#define ANIM_NORMAL 0
-#define ANIM_REVERSE (1 << 0)
-#define ANIM_PINGPONG (1 << 1)
-#define ANIM_PINGPONG2 (1 << 2)
-
/* values for game_emulation */
#define EMU_NONE 0
#define EMU_BOULDERDASH 1
char *sound_class_name; /* classification for custom sound effects */
char *editor_description; /* short description for level editor */
+ /* default graphics for several actions */
int graphic[NUM_GFX_ACTIONS_MAPPED];
/* special graphics for left/right/up/down */
- int direction_graphic[NUM_GFX_ACTIONS_MAPPED][4];
- boolean has_direction_graphic[NUM_GFX_ACTIONS_MAPPED];
+ int direction_graphic[NUM_GFX_ACTIONS_MAPPED][NUM_MV_DIRECTIONS];
};
struct GraphicInfo
extern short Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern short StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern short Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
+extern short GfxAction[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern boolean Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern short JustStopped[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern short AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern boolean network_player_action_received;
+extern int graphics_action_mapping[];
+
extern struct LevelInfo level;
extern struct PlayerInfo stored_player[], *local_player;
extern struct HiScore highscore[];