GADGET_ID_LEVELSET_NUM_LEVELS_DOWN,
GADGET_ID_LEVELSET_NUM_LEVELS_TEXT,
GADGET_ID_LEVELSET_NUM_LEVELS_UP,
+ GADGET_ID_BD_CYCLE_DELAY_MS_DOWN,
+ GADGET_ID_BD_CYCLE_DELAY_MS_TEXT,
+ GADGET_ID_BD_CYCLE_DELAY_MS_UP,
+ GADGET_ID_BD_CYCLE_DELAY_C64_DOWN,
+ GADGET_ID_BD_CYCLE_DELAY_C64_TEXT,
+ GADGET_ID_BD_CYCLE_DELAY_C64_UP,
GADGET_ID_ELEMENT_VALUE1_DOWN,
GADGET_ID_ELEMENT_VALUE1_TEXT,
GADGET_ID_ELEMENT_VALUE1_UP,
ED_COUNTER_ID_LEVEL_RANDOM_SEED,
ED_COUNTER_ID_LEVELSET_NUM_LEVELS,
ED_COUNTER_ID_LEVEL_RANDOM,
+ ED_COUNTER_ID_BD_CYCLE_DELAY_MS,
+ ED_COUNTER_ID_BD_CYCLE_DELAY_C64,
ED_COUNTER_ID_ELEMENT_VALUE1,
ED_COUNTER_ID_ELEMENT_VALUE2,
ED_COUNTER_ID_ELEMENT_VALUE3,
&random_placement_value,
"random element placement:", NULL, "in"
},
+ {
+ ED_COUNTER_ID_BD_CYCLE_DELAY_MS,
+ ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(3),
+ 50, 500,
+ GADGET_ID_BD_CYCLE_DELAY_MS_DOWN, GADGET_ID_BD_CYCLE_DELAY_MS_UP,
+ GADGET_ID_BD_CYCLE_DELAY_MS_TEXT, GADGET_ID_NONE,
+ &level.bd_cycle_delay_ms,
+ NULL, NULL, "game cycle delay (ms)"
+ },
+ {
+ ED_COUNTER_ID_BD_CYCLE_DELAY_C64,
+ ED_LEVEL_SETTINGS_XPOS(0), ED_LEVEL_SETTINGS_YPOS(3),
+ 0, 32,
+ GADGET_ID_BD_CYCLE_DELAY_C64_DOWN, GADGET_ID_BD_CYCLE_DELAY_C64_UP,
+ GADGET_ID_BD_CYCLE_DELAY_C64_TEXT, GADGET_ID_NONE,
+ &level.bd_cycle_delay_c64,
+ NULL, NULL, "game cycle delay (C64-style)"
+ },
// ---------- element settings: configure (various elements) ----------------
{
int i;
+ // draw counter gadgets
+ if (level.bd_scheduling_type == GD_SCHEDULING_MILLISECONDS)
+ MapCounterButtons(ED_COUNTER_ID_BD_CYCLE_DELAY_MS);
+ else
+ MapCounterButtons(ED_COUNTER_ID_BD_CYCLE_DELAY_C64);
+
// draw checkbutton gadgets
for (i = ED_CHECKBUTTON_ID_ENGINE_FIRST; i <= ED_CHECKBUTTON_ID_ENGINE_LAST; i++)
MapCheckbuttonGadget(i);
ReinitializeElementList();
ModifyEditorElementList();
}
+ else if (type_id == ED_SELECTBOX_ID_BD_SCHEDULING_TYPE)
+ {
+ // update BD cycle delay counter gadgets depending on BD scheduling type
+ DrawLevelConfigWindow();
+ }
// do not mark level as modified for certain non-level-changing gadgets
if (type_id == ED_SELECTBOX_ID_LEVELSET_SAVE_MODE ||
&li.bd_pal_timing, FALSE
},
+ {
+ -1, -1,
+ TYPE_INTEGER, CONF_VALUE_16_BIT(6),
+ &li.bd_cycle_delay_ms, 200
+ },
+
+ {
+ -1, -1,
+ TYPE_INTEGER, CONF_VALUE_8_BIT(17),
+ &li.bd_cycle_delay_c64, 0
+ },
+
{
-1, -1,
-1, -1,
cave->level_time[i] = level->time;
cave->level_diamonds[i] = level->gems_needed;
cave->level_magic_wall_time[i] = level->time_magic_wall;
+
+ cave->level_speed[i] = level->bd_cycle_delay_ms;
+ cave->level_ckdelay[i] = level->bd_cycle_delay_c64;
+
cave->level_timevalue[i] = level->score[SC_TIME_BONUS];
}
cave->diamond_value = level->score[SC_EMERALD];
cave->extra_diamond_value = level->score[SC_DIAMOND_EXTRA];
- cave->level_speed[0] = 160; // set cave speed
-
cave->scheduling = level->bd_scheduling_type;
cave->pal_timing = level->bd_pal_timing;
cave->intermission = level->bd_intermission;
level->gems_needed = cave->level_diamonds[bd_level_nr];
level->time_magic_wall = cave->level_magic_wall_time[bd_level_nr];
+ level->bd_cycle_delay_ms = cave->level_speed[bd_level_nr];
+ level->bd_cycle_delay_c64 = cave->level_ckdelay[bd_level_nr];
+
level->score[SC_TIME_BONUS] = cave->level_timevalue[bd_level_nr];
level->score[SC_EMERALD] = cave->diamond_value;
level->score[SC_DIAMOND_EXTRA] = cave->extra_diamond_value;