#define IMG_CHAR_START IMG_CHAR_SPACE
#define IMG_CUSTOM_START IMG_CUSTOM_1
+#define SND_UNDEFINED (-1)
+
#define WIN_XSIZE 672
#define WIN_YSIZE 560
#define MAX_NUM_ELEMENTS (EL_FIRST_DUMMY + 36)
-/* values for animation action types */
-#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_BREAKING 11
-#define GFX_ACTION_ACTIVATING 12
-#define GFX_ACTION_OPENING 13
-#define GFX_ACTION_CLOSING 14
-#define GFX_ACTION_EATING 15
-#define GFX_ACTION_ATTACKING 16
-#define GFX_ACTION_GROWING 17
-#define GFX_ACTION_SHRINKING 18
-#define GFX_ACTION_OTHER 19
-
-#define NUM_GFX_ACTIONS 20
-#define NUM_GFX_ACTIONS_MAPPED 8
+/* values for graphics/sounds action types */
+#define ACTION_DEFAULT 0
+#define ACTION_WAITING 1
+#define ACTION_FALLING 2
+#define ACTION_MOVING 3
+#define ACTION_DIGGING 4
+#define ACTION_SNAPPING 5
+#define ACTION_COLLECTING 6
+#define ACTION_PUSHING 7
+#define ACTION_PASSING 8
+#define ACTION_IMPACT 9
+#define ACTION_CRACKING 10
+#define ACTION_BREAKING 11
+#define ACTION_ACTIVATING 12
+#define ACTION_OPENING 13
+#define ACTION_CLOSING 14
+#define ACTION_EATING 15
+#define ACTION_ATTACKING 16
+#define ACTION_GROWING 17
+#define ACTION_SHRINKING 18
+#define ACTION_ACTIVE 19
+#define ACTION_OTHER 20
+
+#define NUM_ACTIONS 21
/* values for image configuration suffixes */
#define NUM_GFX_ARGS 16
-#define GFX_ARG_UNDEFINED "-1000000"
-#define GFX_ARG_UNDEFINED_VALUE (atoi(GFX_ARG_UNDEFINED))
-
/* values for sound configuration suffixes */
-/* (currently none) */
+#define SND_ARG_MODE_LOOP 0
+
+#define NUM_SND_ARGS 1
/* values for game_status */
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];
-
+ int graphic[NUM_ACTIONS]; /* default graphics for several actions */
/* special graphics for left/right/up/down */
- int direction_graphic[NUM_GFX_ACTIONS_MAPPED][NUM_MV_DIRECTIONS];
-};
+ int direction_graphic[NUM_ACTIONS][NUM_DIRECTIONS];
-struct GraphicInfo
-{
- Bitmap *bitmap;
- int src_x, src_y;
+ int sound[NUM_ACTIONS]; /* default sounds for several actions */
};
-struct NewGraphicInfo
+struct GraphicInfo
{
Bitmap *bitmap;
int src_x, src_y; /* derived from (tile sized) .xpos/.ypos */
#endif
};
+struct SoundInfo
+{
+ boolean loop;
+};
+
+struct SoundActionProperties
+{
+ char *text;
+ int value;
+ boolean is_loop;
+};
+
+
#if 0
extern GC tile_clip_gc;
extern Bitmap *pix[];
extern struct GameInfo game;
extern struct GlobalInfo global;
extern struct ElementInfo element_info[];
-extern struct NewGraphicInfo graphic_info[];
+extern struct GraphicInfo graphic_info[];
+extern struct SoundInfo sound_info[];
+extern struct SoundActionProperties sound_action_properties[];
extern struct ConfigInfo image_config[], sound_config[];
extern struct ConfigInfo image_config_suffix[], sound_config_suffix[];
extern struct FileInfo *image_files, *sound_files;