rnd-20020907-1-src
[rocksndiamonds.git] / src / main.h
index 17136765340ef86cc56b8c5368f4a9af4452b3cd..976325dac8d68b13216a2f4f69d0563cebe76b4e 100644 (file)
 #define MAX_TAPELEN            (1000 * 50)     /* max. time * framerate */
 #define MAX_SCORE_ENTRIES      100
 #define MAX_ELEMENTS           700             /* 500 static + 200 runtime */
+#define MAX_GRAPHICS           1536            /* see below: NUM_TILES */
 #define MAX_NUM_AMOEBA         100
 
 /* values for elements with content */
@@ -340,8 +341,19 @@ struct GlobalInfo
 
 struct ElementInfo
 {
-  char *sound_class_name;
-  char *editor_description;
+  char *sound_class_name;      /* classification for custom sound effects */
+  char *editor_description;    /* short description for level editor */
+
+  int graphic;
+};
+
+struct GraphicInfo
+{
+  Bitmap *bitmap;
+  int src_x, src_y;
+  int anim_frames;
+  int anim_delay;
+  int anim_mode;
 };
 
 extern GC              tile_clip_gc;
@@ -402,7 +414,10 @@ extern struct TapeInfo             tape;
 extern struct GameInfo         game;
 extern struct GlobalInfo       global;
 extern struct ElementInfo      element_info[];
-extern struct SoundEffectInfo  sound_effects[];
+extern struct GraphicInfo      graphic_info[];
+extern struct ConfigInfo       image_config[], sound_config[];
+extern struct FileInfo        *image_files, *sound_files;
+extern char                   *image_config_suffix[], *sound_config_suffix[];
 
 /* often used screen positions */
 #define SX                     8
@@ -900,7 +915,7 @@ extern struct SoundEffectInfo       sound_effects[];
 #define GFX_START_ROCKSMORE    1280
 #define GFX_END_ROCKSMORE      1535
 
-#define NUM_TILES              1536
+#define NUM_TILES              1536            /* see above: MAX_GRAPHICS */
 
 /* graphics from "RocksScreen" */
 /* Zeile 0 (0) */
@@ -1445,7 +1460,14 @@ extern struct SoundEffectInfo    sound_effects[];
 #define NUM_SOUNDS             55
 
 
-/* values for sound effects */
+/* values for image configuration */
+#define GFX_BD_DIAMOND                         0
+#define GFX_ROBOT_WHEEL                                1
+
+#define NUM_IMAGE_FILES                                2
+
+
+/* values for sound configuration */
 #define SND_BD_EMPTY_SPACE_DIGGING             0
 #define SND_BD_SAND_DIGGING                    1
 #define SND_BD_DIAMOND_COLLECTING              2
@@ -1616,7 +1638,7 @@ extern struct SoundEffectInfo     sound_effects[];
 #define SND_MENU_HALL_OF_FAME                  167
 #define SND_MENU_INFO_SCREEN                   168
 
-#define NUM_SOUND_EFFECTS                      169
+#define NUM_SOUND_FILES                                169
 
 
 /* values for game_status */
@@ -1632,8 +1654,8 @@ extern struct SoundEffectInfo     sound_effects[];
 
 #define PROGRAM_VERSION_MAJOR  2
 #define PROGRAM_VERSION_MINOR  1
-#define PROGRAM_VERSION_PATCH  0
-#define PROGRAM_VERSION_STRING "2.1.0"
+#define PROGRAM_VERSION_PATCH  2
+#define PROGRAM_VERSION_STRING "2.1.2"
 
 #define PROGRAM_TITLE_STRING   "Rocks'n'Diamonds"
 #define PROGRAM_AUTHOR_STRING  "Holger Schemel"