#define GADGET_ID_SELECTBOX_FIRST (GADGET_ID_TEXT_AREA_FIRST + 1)
#define GADGET_ID_TIME_OR_STEPS (GADGET_ID_SELECTBOX_FIRST + 0)
-#define GADGET_ID_CUSTOM_WALK_TO_ACTION (GADGET_ID_SELECTBOX_FIRST + 1)
-#define GADGET_ID_CUSTOM_EXPLOSION_TYPE (GADGET_ID_SELECTBOX_FIRST + 2)
-#define GADGET_ID_CUSTOM_DEADLINESS (GADGET_ID_SELECTBOX_FIRST + 3)
-#define GADGET_ID_CUSTOM_MOVE_PATTERN (GADGET_ID_SELECTBOX_FIRST + 4)
-#define GADGET_ID_CUSTOM_MOVE_DIRECTION (GADGET_ID_SELECTBOX_FIRST + 5)
-#define GADGET_ID_CUSTOM_MOVE_STEPSIZE (GADGET_ID_SELECTBOX_FIRST + 6)
-#define GADGET_ID_CUSTOM_MOVE_LEAVE_TYPE (GADGET_ID_SELECTBOX_FIRST + 7)
-#define GADGET_ID_CUSTOM_SMASH_TARGETS (GADGET_ID_SELECTBOX_FIRST + 8)
-#define GADGET_ID_CUSTOM_SLIPPERY_TYPE (GADGET_ID_SELECTBOX_FIRST + 9)
-#define GADGET_ID_CUSTOM_ACCESS_TYPE (GADGET_ID_SELECTBOX_FIRST + 10)
-#define GADGET_ID_CUSTOM_ACCESS_LAYER (GADGET_ID_SELECTBOX_FIRST + 11)
-#define GADGET_ID_CUSTOM_ACCESS_PROTECTED (GADGET_ID_SELECTBOX_FIRST + 12)
-#define GADGET_ID_CUSTOM_ACCESS_DIRECTION (GADGET_ID_SELECTBOX_FIRST + 13)
-#define GADGET_ID_CHANGE_TIME_UNITS (GADGET_ID_SELECTBOX_FIRST + 14)
-#define GADGET_ID_CHANGE_DIRECT_ACTION (GADGET_ID_SELECTBOX_FIRST + 15)
-#define GADGET_ID_CHANGE_OTHER_ACTION (GADGET_ID_SELECTBOX_FIRST + 16)
-#define GADGET_ID_CHANGE_SIDE (GADGET_ID_SELECTBOX_FIRST + 17)
-#define GADGET_ID_CHANGE_PLAYER (GADGET_ID_SELECTBOX_FIRST + 18)
-#define GADGET_ID_CHANGE_PAGE (GADGET_ID_SELECTBOX_FIRST + 19)
-#define GADGET_ID_CHANGE_REPLACE_WHEN (GADGET_ID_SELECTBOX_FIRST + 20)
-#define GADGET_ID_SELECT_CHANGE_PAGE (GADGET_ID_SELECTBOX_FIRST + 21)
-#define GADGET_ID_GROUP_CHOICE_MODE (GADGET_ID_SELECTBOX_FIRST + 22)
+#define GADGET_ID_GAME_ENGINE_TYPE (GADGET_ID_SELECTBOX_FIRST + 1)
+#define GADGET_ID_CUSTOM_WALK_TO_ACTION (GADGET_ID_SELECTBOX_FIRST + 2)
+#define GADGET_ID_CUSTOM_EXPLOSION_TYPE (GADGET_ID_SELECTBOX_FIRST + 3)
+#define GADGET_ID_CUSTOM_DEADLINESS (GADGET_ID_SELECTBOX_FIRST + 4)
+#define GADGET_ID_CUSTOM_MOVE_PATTERN (GADGET_ID_SELECTBOX_FIRST + 5)
+#define GADGET_ID_CUSTOM_MOVE_DIRECTION (GADGET_ID_SELECTBOX_FIRST + 6)
+#define GADGET_ID_CUSTOM_MOVE_STEPSIZE (GADGET_ID_SELECTBOX_FIRST + 7)
+#define GADGET_ID_CUSTOM_MOVE_LEAVE_TYPE (GADGET_ID_SELECTBOX_FIRST + 8)
+#define GADGET_ID_CUSTOM_SMASH_TARGETS (GADGET_ID_SELECTBOX_FIRST + 9)
+#define GADGET_ID_CUSTOM_SLIPPERY_TYPE (GADGET_ID_SELECTBOX_FIRST + 10)
+#define GADGET_ID_CUSTOM_ACCESS_TYPE (GADGET_ID_SELECTBOX_FIRST + 11)
+#define GADGET_ID_CUSTOM_ACCESS_LAYER (GADGET_ID_SELECTBOX_FIRST + 12)
+#define GADGET_ID_CUSTOM_ACCESS_PROTECTED (GADGET_ID_SELECTBOX_FIRST + 13)
+#define GADGET_ID_CUSTOM_ACCESS_DIRECTION (GADGET_ID_SELECTBOX_FIRST + 14)
+#define GADGET_ID_CHANGE_TIME_UNITS (GADGET_ID_SELECTBOX_FIRST + 15)
+#define GADGET_ID_CHANGE_DIRECT_ACTION (GADGET_ID_SELECTBOX_FIRST + 16)
+#define GADGET_ID_CHANGE_OTHER_ACTION (GADGET_ID_SELECTBOX_FIRST + 17)
+#define GADGET_ID_CHANGE_SIDE (GADGET_ID_SELECTBOX_FIRST + 18)
+#define GADGET_ID_CHANGE_PLAYER (GADGET_ID_SELECTBOX_FIRST + 19)
+#define GADGET_ID_CHANGE_PAGE (GADGET_ID_SELECTBOX_FIRST + 20)
+#define GADGET_ID_CHANGE_REPLACE_WHEN (GADGET_ID_SELECTBOX_FIRST + 21)
+#define GADGET_ID_SELECT_CHANGE_PAGE (GADGET_ID_SELECTBOX_FIRST + 22)
+#define GADGET_ID_GROUP_CHOICE_MODE (GADGET_ID_SELECTBOX_FIRST + 23)
/* textbutton identifiers */
-#define GADGET_ID_TEXTBUTTON_FIRST (GADGET_ID_SELECTBOX_FIRST + 23)
+#define GADGET_ID_TEXTBUTTON_FIRST (GADGET_ID_SELECTBOX_FIRST + 24)
#define GADGET_ID_PROPERTIES_INFO (GADGET_ID_TEXTBUTTON_FIRST + 0)
#define GADGET_ID_PROPERTIES_CONFIG (GADGET_ID_TEXTBUTTON_FIRST + 1)
/* values for selectbox gadgets */
#define ED_SELECTBOX_ID_TIME_OR_STEPS 0
-#define ED_SELECTBOX_ID_CUSTOM_ACCESS_TYPE 1
-#define ED_SELECTBOX_ID_CUSTOM_ACCESS_LAYER 2
-#define ED_SELECTBOX_ID_CUSTOM_ACCESS_PROTECTED 3
-#define ED_SELECTBOX_ID_CUSTOM_ACCESS_DIRECTION 4
-#define ED_SELECTBOX_ID_CUSTOM_WALK_TO_ACTION 5
-#define ED_SELECTBOX_ID_CUSTOM_MOVE_PATTERN 6
-#define ED_SELECTBOX_ID_CUSTOM_MOVE_DIRECTION 7
-#define ED_SELECTBOX_ID_CUSTOM_MOVE_STEPSIZE 8
-#define ED_SELECTBOX_ID_CUSTOM_MOVE_LEAVE_TYPE 9
-#define ED_SELECTBOX_ID_CUSTOM_SMASH_TARGETS 10
-#define ED_SELECTBOX_ID_CUSTOM_SLIPPERY_TYPE 11
-#define ED_SELECTBOX_ID_CUSTOM_DEADLINESS 12
-#define ED_SELECTBOX_ID_CUSTOM_EXPLOSION_TYPE 13
-#define ED_SELECTBOX_ID_CHANGE_TIME_UNITS 14
-#define ED_SELECTBOX_ID_CHANGE_DIRECT_ACTION 15
-#define ED_SELECTBOX_ID_CHANGE_OTHER_ACTION 16
-#define ED_SELECTBOX_ID_CHANGE_SIDE 17
-#define ED_SELECTBOX_ID_CHANGE_PLAYER 18
-#define ED_SELECTBOX_ID_CHANGE_PAGE 19
-#define ED_SELECTBOX_ID_CHANGE_REPLACE_WHEN 20
-#define ED_SELECTBOX_ID_SELECT_CHANGE_PAGE 21
-#define ED_SELECTBOX_ID_GROUP_CHOICE_MODE 22
-
-#define ED_NUM_SELECTBOX 23
+#define ED_SELECTBOX_ID_GAME_ENGINE_TYPE 1
+#define ED_SELECTBOX_ID_CUSTOM_ACCESS_TYPE 2
+#define ED_SELECTBOX_ID_CUSTOM_ACCESS_LAYER 3
+#define ED_SELECTBOX_ID_CUSTOM_ACCESS_PROTECTED 4
+#define ED_SELECTBOX_ID_CUSTOM_ACCESS_DIRECTION 5
+#define ED_SELECTBOX_ID_CUSTOM_WALK_TO_ACTION 6
+#define ED_SELECTBOX_ID_CUSTOM_MOVE_PATTERN 7
+#define ED_SELECTBOX_ID_CUSTOM_MOVE_DIRECTION 8
+#define ED_SELECTBOX_ID_CUSTOM_MOVE_STEPSIZE 9
+#define ED_SELECTBOX_ID_CUSTOM_MOVE_LEAVE_TYPE 10
+#define ED_SELECTBOX_ID_CUSTOM_SMASH_TARGETS 11
+#define ED_SELECTBOX_ID_CUSTOM_SLIPPERY_TYPE 12
+#define ED_SELECTBOX_ID_CUSTOM_DEADLINESS 13
+#define ED_SELECTBOX_ID_CUSTOM_EXPLOSION_TYPE 14
+#define ED_SELECTBOX_ID_CHANGE_TIME_UNITS 15
+#define ED_SELECTBOX_ID_CHANGE_DIRECT_ACTION 16
+#define ED_SELECTBOX_ID_CHANGE_OTHER_ACTION 17
+#define ED_SELECTBOX_ID_CHANGE_SIDE 18
+#define ED_SELECTBOX_ID_CHANGE_PLAYER 19
+#define ED_SELECTBOX_ID_CHANGE_PAGE 20
+#define ED_SELECTBOX_ID_CHANGE_REPLACE_WHEN 21
+#define ED_SELECTBOX_ID_SELECT_CHANGE_PAGE 22
+#define ED_SELECTBOX_ID_GROUP_CHOICE_MODE 23
+
+#define ED_NUM_SELECTBOX 24
#define ED_SELECTBOX_ID_LEVEL_FIRST ED_SELECTBOX_ID_TIME_OR_STEPS
-#define ED_SELECTBOX_ID_LEVEL_LAST ED_SELECTBOX_ID_TIME_OR_STEPS
+#define ED_SELECTBOX_ID_LEVEL_LAST ED_SELECTBOX_ID_GAME_ENGINE_TYPE
#define ED_SELECTBOX_ID_CUSTOM1_FIRST ED_SELECTBOX_ID_CUSTOM_ACCESS_TYPE
#define ED_SELECTBOX_ID_CUSTOM1_LAST ED_SELECTBOX_ID_CUSTOM_WALK_TO_ACTION
{ -1, NULL }
};
+static struct ValueTextInfo options_game_engine_type[] =
+{
+ { GAME_ENGINE_TYPE_RND, "RND" },
+ { GAME_ENGINE_TYPE_EM, "EM" },
+
+ { -1, NULL }
+};
+
static struct ValueTextInfo options_access_type[] =
{
{ EP_WALKABLE, "walkable" },
#else
{ CE_HITTING_SOMETHING, "collision" },
#endif
-#if 1
+
+#if 0
{ CE_BLOCKED, "blocked" },
#endif
+
{ CE_IMPACT, "impact (on something)" },
{ CE_SMASHED, "smashed (from above)" },
&level.use_step_counter,
NULL, "(0 => no limit)", "time or step limit"
},
+ {
+ ED_SETTINGS_XPOS(0), ED_COUNTER_YPOS(6) + 8,
+ GADGET_ID_GAME_ENGINE_TYPE, GADGET_ID_NONE,
+ -1,
+ options_game_engine_type,
+ &level.game_engine_type,
+ "game engine:", NULL, "game engine"
+ },
/* ---------- element settings: configure 1 (custom elements) ----------- */
ED_SETTINGS_XPOS(0), ED_SETTINGS_YPOS(1),
GADGET_ID_CUSTOM_USE_GRAPHIC, GADGET_ID_NONE,
&custom_element.use_gfx_element,
+
+ /* !!! add separate "use existing element sound" !!! */
#if 0
NULL, "use graphic/sound of element:", "use existing graphic and sound"
#else
static int num_editor_hl_emerald_mine=SIZEOF_ARRAY_INT(editor_hl_emerald_mine);
static int num_editor_el_emerald_mine=SIZEOF_ARRAY_INT(editor_el_emerald_mine);
+static int editor_hl_emerald_mine_club[] =
+{
+ EL_CHAR('E'),
+ EL_CHAR('M'),
+ EL_CHAR('E'),
+ EL_CHAR('-'),
+
+ EL_CHAR('R'),
+ EL_CHAR('A'),
+ EL_CHAR('L'),
+ EL_CHAR('D'),
+
+ EL_CHAR('M'),
+ EL_CHAR('I'),
+ EL_CHAR('N'),
+ EL_CHAR('E'),
+
+ EL_CHAR('C'),
+ EL_CHAR('L'),
+ EL_CHAR('U'),
+ EL_CHAR('B'),
+};
+
+static int editor_el_emerald_mine_club[] =
+{
+ EL_EMC_KEY_5,
+ EL_EMC_KEY_6,
+ EL_EMC_KEY_7,
+ EL_EMC_KEY_8,
+
+ EL_EMC_GATE_5,
+ EL_EMC_GATE_6,
+ EL_EMC_GATE_7,
+ EL_EMC_GATE_8,
+
+ EL_EMC_GATE_5_GRAY,
+ EL_EMC_GATE_6_GRAY,
+ EL_EMC_GATE_7_GRAY,
+ EL_EMC_GATE_8_GRAY,
+
+ EL_EMC_STEELWALL_1,
+ EL_EMC_STEELWALL_2,
+ EL_EMC_STEELWALL_3,
+ EL_EMC_STEELWALL_4,
+
+ EL_EMC_WALL_13,
+ EL_EMC_WALL_14,
+ EL_EMC_WALL_15,
+ EL_EMC_WALL_16,
+
+ EL_EMC_WALL_SLIPPERY_1,
+ EL_EMC_WALL_SLIPPERY_2,
+ EL_EMC_WALL_SLIPPERY_3,
+ EL_EMC_WALL_SLIPPERY_4,
+
+ EL_EMC_WALL_1,
+ EL_EMC_WALL_2,
+ EL_EMC_WALL_3,
+ EL_EMC_WALL_4,
+
+ EL_EMC_WALL_5,
+ EL_EMC_WALL_6,
+ EL_EMC_WALL_7,
+ EL_EMC_WALL_8,
+
+ EL_EMC_WALL_9,
+ EL_EMC_WALL_10,
+ EL_EMC_WALL_11,
+ EL_EMC_WALL_12,
+
+ EL_EMC_ANDROID,
+ EL_BALLOON,
+ EL_BALLOON_SWITCH_ANY,
+ EL_BALLOON_SWITCH_NONE,
+
+ EL_BALLOON_SWITCH_LEFT,
+ EL_BALLOON_SWITCH_RIGHT,
+ EL_BALLOON_SWITCH_UP,
+ EL_BALLOON_SWITCH_DOWN,
+
+ EL_EMC_GRASS,
+ EL_EMC_PLANT,
+ EL_EMC_LENSES,
+ EL_EMC_MAGNIFIER,
+
+ EL_EMC_MAGIC_BALL,
+ EL_EMC_MAGIC_BALL_SWITCH,
+ EL_SPRING,
+ EL_EMC_BUMPER,
+
+#if 0
+ EL_EMC_LEVEL_BORDER,
+#endif
+};
+static int *editor_hl_emerald_mine_club_ptr = editor_hl_emerald_mine_club;
+static int *editor_el_emerald_mine_club_ptr = editor_el_emerald_mine_club;
+static int num_editor_hl_emerald_mine_club=SIZEOF_ARRAY_INT(editor_hl_emerald_mine_club);
+static int num_editor_el_emerald_mine_club=SIZEOF_ARRAY_INT(editor_el_emerald_mine_club);
+
static int editor_hl_more[] =
{
EL_CHAR('M'),
EL_SPACESHIP,
EL_MOLE_DOWN,
- EL_BALLOON,
- EL_BALLOON_SWITCH_ANY,
-
- EL_BALLOON_SWITCH_LEFT,
- EL_BALLOON_SWITCH_RIGHT,
- EL_BALLOON_SWITCH_UP,
- EL_BALLOON_SWITCH_DOWN,
+ EL_EMPTY,
+ EL_EMPTY,
EL_SATELLITE,
EL_EXPANDABLE_WALL_HORIZONTAL,
EL_INVISIBLE_WALL,
EL_SPEED_PILL,
EL_BLACK_ORB,
-
- EL_EMC_STEELWALL_1,
- EL_EMC_WALL_1,
- EL_EMC_WALL_2,
- EL_EMC_WALL_3,
-
- EL_EMC_WALL_4,
- EL_EMC_WALL_5,
- EL_EMC_WALL_6,
- EL_EMC_WALL_7,
};
static int *editor_hl_more_ptr = editor_hl_more;
static int *editor_el_more_ptr = editor_el_more;
static int editor_el_dx_boulderdash[] =
{
- EL_SPRING,
+ EL_EMPTY,
EL_TUBE_RIGHT_DOWN,
EL_TUBE_HORIZONTAL_DOWN,
EL_TUBE_LEFT_DOWN,
&editor_hl_emerald_mine_ptr, &num_editor_hl_emerald_mine,
&editor_el_emerald_mine_ptr, &num_editor_el_emerald_mine
},
+ {
+ &setup.editor.el_emerald_mine_club,
+ &editor_hl_emerald_mine_club_ptr, &num_editor_hl_emerald_mine_club,
+ &editor_el_emerald_mine_club_ptr, &num_editor_el_emerald_mine_club
+ },
{
&setup.editor.el_more,
&editor_hl_more_ptr, &num_editor_hl_more,
CopyPlayfield(level.field, FieldBackup);
CopyPlayfield(Feld, level.field);
+ CopyNativeLevel_RND_to_Native(&level);
+
UnmapLevelEditorGadgets();
UndrawSpecialEditorDoor();