// (c) 1995-2014 by Artsoft Entertainment
// Holger Schemel
// info@artsoft.org
-// http://www.artsoft.org/
+// https://www.artsoft.org/
// ----------------------------------------------------------------------------
// main.h
// ============================================================================
#define CE_VALUE_CHANGES_OF_X 41
#define CE_SCORE_CHANGES 42
#define CE_SCORE_CHANGES_OF_X 43
+#define CE_CLICKED_BY_MOUSE 44
+#define CE_PRESSED_BY_MOUSE 45
+#define CE_MOUSE_CLICKED_ON_X 46
+#define CE_MOUSE_PRESSED_ON_X 47
-#define NUM_CHANGE_EVENTS 44
+#define NUM_CHANGE_EVENTS 48
#define NUM_CE_BITFIELDS ((NUM_CHANGE_EVENTS + 31) / 32)
+#define CE_HEADLINE_SPECIAL_EVENTS 250
+#define CE_UNDEFINED 255
+
#define CE_BITMASK_DEFAULT 0
#define CH_EVENT_BITFIELD_NR(e) (e / 32)
#define CA_SET_PLAYER_INVENTORY 18
#define CA_SET_CE_ARTWORK 19
#define CA_SET_LEVEL_RANDOM_SEED 20
+#define CA_MOVE_PLAYER_NEW 21
#define CA_HEADLINE_LEVEL_ACTIONS 250
#define CA_HEADLINE_PLAYER_ACTIONS 251
#define MIN_ELEMENTS_IN_GROUP 1
#define MAX_ELEMENTS_IN_GROUP 16
#define MIN_ANDROID_ELEMENTS 1
-#define MAX_ANDROID_ELEMENTS 16
+#define MAX_ANDROID_ELEMENTS 32
+#define MAX_ANDROID_ELEMENTS_OLD 16 // (extended since version 4.2.0.0)
// values for elements with content
#define MIN_ELEMENT_CONTENTS 1
#define EL_MM_END_2 (EL_DF_START2 + 430)
#define EL_MM_END EL_MM_END_2
-#define NUM_FILE_ELEMENTS 1215
+#define EL_SPRING_LEFT 1215
+#define EL_SPRING_RIGHT 1216
+
+#define NUM_FILE_ELEMENTS 1217
// "real" (and therefore drawable) runtime elements
{
GFX_SPECIAL_ARG_SETUP_MAIN = 0,
GFX_SPECIAL_ARG_SETUP_GAME,
+ GFX_SPECIAL_ARG_SETUP_ENGINES,
GFX_SPECIAL_ARG_SETUP_EDITOR,
GFX_SPECIAL_ARG_SETUP_GRAPHICS,
GFX_SPECIAL_ARG_SETUP_SOUND,
GFX_ARG_DRAW_ORDER,
GFX_ARG_INIT_DELAY_FIXED,
GFX_ARG_INIT_DELAY_RANDOM,
+ GFX_ARG_INIT_DELAY_ACTION,
GFX_ARG_ANIM_DELAY_FIXED,
GFX_ARG_ANIM_DELAY_RANDOM,
+ GFX_ARG_ANIM_DELAY_ACTION,
GFX_ARG_POST_DELAY_FIXED,
GFX_ARG_POST_DELAY_RANDOM,
+ GFX_ARG_POST_DELAY_ACTION,
GFX_ARG_INIT_EVENT,
GFX_ARG_INIT_EVENT_ACTION,
GFX_ARG_ANIM_EVENT,
GFX_ARG_FADE_DELAY,
GFX_ARG_POST_DELAY,
GFX_ARG_AUTO_DELAY,
+ GFX_ARG_AUTO_DELAY_UNIT,
GFX_ARG_ALIGN,
GFX_ARG_VALIGN,
GFX_ARG_SORT_PRIORITY,
// program information and versioning definitions
#define PROGRAM_VERSION_SUPER 4
-#define PROGRAM_VERSION_MAJOR 1
-#define PROGRAM_VERSION_MINOR 2
-#define PROGRAM_VERSION_PATCH 1
+#define PROGRAM_VERSION_MAJOR 2
+#define PROGRAM_VERSION_MINOR 0
+#define PROGRAM_VERSION_PATCH 2
#define PROGRAM_VERSION_EXTRA ""
#define PROGRAM_TITLE_STRING "Rocks'n'Diamonds"
#define PROGRAM_AUTHOR_STRING "Holger Schemel"
#define PROGRAM_EMAIL_STRING "info@artsoft.org"
-#define PROGRAM_WEBSITE_STRING "http://www.artsoft.org/"
-#define PROGRAM_COPYRIGHT_STRING "Copyright \xa9""1995-2019 by Holger Schemel"
+#define PROGRAM_WEBSITE_STRING "https://www.artsoft.org/"
+#define PROGRAM_COPYRIGHT_STRING "Copyright \xa9""1995-2020 by Holger Schemel"
#define PROGRAM_COMPANY_STRING "A Game by Artsoft Entertainment"
#define PROGRAM_ICON_FILENAME "RocksIcon32x32.png"
struct TextPosInfo yes;
struct TextPosInfo no;
struct TextPosInfo confirm;
+
struct TextPosInfo player_1;
struct TextPosInfo player_2;
struct TextPosInfo player_3;
struct TextPosInfo player_4;
+
+ struct TextPosInfo touch_yes;
+ struct TextPosInfo touch_no;
+ struct TextPosInfo touch_confirm;
};
struct MenuMainButtonInfo
struct MenuPosInfo insert_solution;
struct MenuPosInfo play_solution;
+
+ struct MenuPosInfo switch_ecs_aga;
};
struct MenuMainTextInfo
struct TextPosInfo network_players;
};
+struct MenuSetupButtonInfo
+{
+ struct MenuPosInfo prev_player;
+ struct MenuPosInfo next_player;
+
+ struct MenuPosInfo touch_back;
+ struct MenuPosInfo touch_next;
+ struct MenuPosInfo touch_back2;
+ struct MenuPosInfo touch_next2;
+};
+
+struct MenuSetupInfo
+{
+ struct MenuSetupButtonInfo button;
+};
+
struct TitleFadingInfo
{
int fade_mode;
int fade_delay;
int post_delay;
int auto_delay;
+ int auto_delay_unit;
};
struct TitleMessageInfo
int fade_delay;
int post_delay;
int auto_delay;
+ int auto_delay_unit;
};
struct InitInfo
int music[NUM_SPECIAL_GFX_ARGS];
struct MenuMainInfo main;
+ struct MenuSetupInfo setup;
};
struct DoorInfo
int android_move_time;
int android_clone_time;
boolean ball_random;
- boolean ball_state_initial;
+ boolean ball_active_initial;
int ball_time;
int lenses_score;
int magnify_score;
int music[NUM_GLOBAL_ANIM_PARTS_ALL][NUM_SPECIAL_GFX_ARGS];
};
+struct GlobalAnimEventListInfo
+{
+ int *event_value;
+ int num_event_values;
+};
+
+struct GlobalAnimEventInfo
+{
+ struct GlobalAnimEventListInfo **event_list;
+ int num_event_lists;
+};
+
struct GraphicInfo
{
Bitmap **bitmaps; // bitmaps in all required sizes
int init_delay_fixed; // optional initial delay values for global
int init_delay_random; // animations (pause interval before start)
+ int init_delay_action; // optional action called on animation start
int anim_delay_fixed; // optional delay values for bored/sleeping
int anim_delay_random; // and global animations (animation length)
+ int anim_delay_action; // optional action called on animation end
int post_delay_fixed; // optional delay values after bored/global
int post_delay_random; // animations (pause before next animation)
+ int post_delay_action; // optional action called after post delay
int init_event; // optional event triggering animation start
int init_event_action; // optional action called on animation start
int fade_delay; // optional setting for drawing title screens
int post_delay; // optional setting for drawing title screens
int auto_delay; // optional setting for drawing title screens
+ int auto_delay_unit; // optional setting for drawing title screens
int align, valign; // optional setting for drawing title screens
int sort_priority; // optional setting for drawing title screens
extern struct FontInfo font_info[];
extern struct GlobalAnimInfo global_anim_info[];
extern struct GlobalAnimNameInfo global_anim_name_info[];
+extern struct GlobalAnimEventInfo global_anim_event_info;
extern struct MusicPrefixInfo music_prefix_info[];
extern struct GraphicInfo *graphic_info;
extern struct SoundInfo *sound_info;