rnd-20030118-6-src
[rocksndiamonds.git] / src / main.h
index a96668871dc942d820d77797fccb5ef33d3c6e1f..221b3530ce324db1c8aeadb85b624c70aa7fad6a 100644 (file)
@@ -36,6 +36,8 @@
 #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
+/* 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 */
@@ -1029,20 +1031,14 @@ struct ElementInfo
   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];
-
+  int graphic[NUM_ACTIONS];    /* default graphics for several actions */
                                /* special graphics for left/right/up/down */
-  int direction_graphic[NUM_GFX_ACTIONS][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 */
@@ -1059,6 +1055,19 @@ struct NewGraphicInfo
 #endif
 };
 
+struct SoundInfo
+{
+  boolean loop;
+};
+
+struct SoundActionProperties
+{
+  char *text;
+  int value;
+  boolean is_loop;
+};
+
+
 #if 0
 extern GC              tile_clip_gc;
 extern Bitmap         *pix[];
@@ -1126,7 +1135,9 @@ extern struct TapeInfo            tape;
 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;