#include "files.h"
#include "init.h"
#include "screens.h"
+#include "editor.h"
#include "tools.h"
#include "tape.h"
#include "config.h"
TYPE_INTEGER, CONF_VALUE_8_BIT(23),
&li.bd_cave_random_seed_c64, 0
},
+ {
+ -1, -1,
+ TYPE_INTEGER, CONF_VALUE_32_BIT(3),
+ &li.bd_color_b, GD_C64_COLOR(0)
+ },
+ {
+ -1, -1,
+ TYPE_INTEGER, CONF_VALUE_32_BIT(4),
+ &li.bd_color_0, GD_C64_COLOR(0)
+ },
+ {
+ -1, -1,
+ TYPE_INTEGER, CONF_VALUE_32_BIT(5),
+ &li.bd_color_1, GD_C64_COLOR(8)
+ },
+ {
+ -1, -1,
+ TYPE_INTEGER, CONF_VALUE_32_BIT(6),
+ &li.bd_color_2, GD_C64_COLOR(11)
+ },
+ {
+ -1, -1,
+ TYPE_INTEGER, CONF_VALUE_32_BIT(7),
+ &li.bd_color_3, GD_C64_COLOR(1)
+ },
+ {
+ -1, -1,
+ TYPE_INTEGER, CONF_VALUE_32_BIT(8),
+ &li.bd_color_4, GD_C64_COLOR(5)
+ },
+ {
+ -1, -1,
+ TYPE_INTEGER, CONF_VALUE_32_BIT(9),
+ &li.bd_color_5, GD_C64_COLOR(6)
+ },
{
-1, -1,
TYPE_BOOLEAN, CONF_VALUE_8_BIT(3),
&li.bd_magic_wall_zero_infinite, TRUE
},
+ {
+ EL_BD_MAGIC_WALL, -1,
+ TYPE_BOOLEAN, CONF_VALUE_8_BIT(4),
+ &li.bd_magic_wall_break_scan, FALSE
+ },
{
EL_BD_MAGIC_WALL, -1,
TYPE_ELEMENT, CONF_VALUE_16_BIT(1),
// detect custom elements when loading them
level->file_has_custom_elements = FALSE;
+ // set default color type and colors for BD style level colors
+ SetDefaultLevelColorType_BD();
+ SetDefaultLevelColors_BD();
+
// set all bug compatibility flags to "false" => do not emulate this bug
level->use_action_after_change_bug = FALSE;
cave->magic_timer_zero_is_infinite = level->bd_magic_wall_zero_infinite;
cave->magic_timer_wait_for_hatching = level->bd_magic_wall_wait_hatching;
cave->magic_wall_stops_amoeba = level->bd_magic_wall_stops_amoeba;
+ cave->magic_wall_breakscan = level->bd_magic_wall_break_scan;
cave->magic_diamond_to = LEVEL_TO_CAVE(level->bd_magic_wall_diamond_to);
cave->magic_stone_to = LEVEL_TO_CAVE(level->bd_magic_wall_rock_to);
cave->nitro_explosion_effect = LEVEL_TO_CAVE(level->bd_nitro_explosion_turns_to);
cave->explosion_effect = LEVEL_TO_CAVE(level->bd_explosion_turns_to);
+ cave->colorb = level->bd_color_b;
+ cave->color0 = level->bd_color_0;
+ cave->color1 = level->bd_color_1;
+ cave->color2 = level->bd_color_2;
+ cave->color3 = level->bd_color_3;
+ cave->color4 = level->bd_color_4;
+ cave->color5 = level->bd_color_5;
+
// level name
strncpy(cave->name, level->name, sizeof(GdString));
cave->name[sizeof(GdString) - 1] = '\0';
level->bd_magic_wall_zero_infinite = cave->magic_timer_zero_is_infinite;
level->bd_magic_wall_wait_hatching = cave->magic_timer_wait_for_hatching;
level->bd_magic_wall_stops_amoeba = cave->magic_wall_stops_amoeba;
+ level->bd_magic_wall_break_scan = cave->magic_wall_breakscan;
level->bd_magic_wall_diamond_to = CAVE_TO_LEVEL(cave->magic_diamond_to);
level->bd_magic_wall_rock_to = CAVE_TO_LEVEL(cave->magic_stone_to);
level->bd_nitro_explosion_turns_to = CAVE_TO_LEVEL(cave->nitro_explosion_effect);
level->bd_explosion_turns_to = CAVE_TO_LEVEL(cave->explosion_effect);
+ level->bd_color_b = cave->colorb;
+ level->bd_color_0 = cave->color0;
+ level->bd_color_1 = cave->color1;
+ level->bd_color_2 = cave->color2;
+ level->bd_color_3 = cave->color3;
+ level->bd_color_4 = cave->color4;
+ level->bd_color_5 = cave->color5;
+
+ // set default color type and colors for BD style level colors
+ SetDefaultLevelColorType_BD();
+ SetDefaultLevelColors_BD();
+
// level name
char *cave_name = getStringPrint("%s / %d", cave->name, bd_level_nr + 1);