(d) == MV_DOWN ? "MV_DOWN" : "(various)")
#define ELEMENT_ACTIVE(e) (ActiveElement[e])
-
+#define BUTTON_ACTIVE(b) (ActiveButton[b])
#define FONT_ACTIVE(f) (ActiveFont[f])
#define NUM_SPECIAL_GFX_INFO_ARGS 8
+/* these additional definitions are currently only used for draw offsets */
+#define GFX_SPECIAL_ARG_SETUP_MAIN 0
+#define GFX_SPECIAL_ARG_SETUP_GAME 1
+#define GFX_SPECIAL_ARG_SETUP_EDITOR 2
+#define GFX_SPECIAL_ARG_SETUP_GRAPHICS 3
+#define GFX_SPECIAL_ARG_SETUP_SOUND 4
+#define GFX_SPECIAL_ARG_SETUP_ARTWORK 5
+#define GFX_SPECIAL_ARG_SETUP_INPUT 6
+#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_1 7
+#define GFX_SPECIAL_ARG_SETUP_SHORTCUTS_2 8
+#define GFX_SPECIAL_ARG_SETUP_CHOOSE_ARTWORK 9
+#define GFX_SPECIAL_ARG_SETUP_CHOOSE_OTHER 10
+
+#define NUM_SPECIAL_GFX_SETUP_ARGS 11
+
/* values for image configuration suffixes */
#define GFX_ARG_X 0
#define PROGRAM_VERSION_MAJOR 3
#define PROGRAM_VERSION_MINOR 2
#define PROGRAM_VERSION_PATCH 4
-#define PROGRAM_VERSION_BUILD 0
+#define PROGRAM_VERSION_BUILD 1
#define PROGRAM_TITLE_STRING "Rocks'n'Diamonds"
#define PROGRAM_AUTHOR_STRING "Holger Schemel"
int draw_yoffset[NUM_SPECIAL_GFX_ARGS];
int draw_xoffset_info[NUM_SPECIAL_GFX_INFO_ARGS];
int draw_yoffset_info[NUM_SPECIAL_GFX_INFO_ARGS];
+ int draw_xoffset_setup[NUM_SPECIAL_GFX_SETUP_ARGS];
+ int draw_yoffset_setup[NUM_SPECIAL_GFX_SETUP_ARGS];
int scrollbar_xoffset;
int collect_score; /* runtime score value for collecting */
+ /* count of this element on playfield, calculated after each frame */
+ int element_count;
+
/* ---------- internal values used in level editor ---------- */
int access_type; /* walkable or passable */
extern int GfxDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
extern int ActiveElement[MAX_NUM_ELEMENTS];
+extern int ActiveButton[NUM_IMAGE_FILES];
extern int ActiveFont[NUM_FONTS];
extern int lev_fieldx, lev_fieldy;