X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Ffiles.c;h=85bc18351de901a25a5de9024c854f6e7eaf741a;hb=72b8afe4885eda3b89b166b4cfcd80a3464ee37d;hp=040a94481794c49ae1eff1418d2ffd22759d1c95;hpb=0f6b2c62e0c72652c8b2093995845e02b91c51d3;p=rocksndiamonds.git diff --git a/src/files.c b/src/files.c index 040a9448..85bc1835 100644 --- a/src/files.c +++ b/src/files.c @@ -19,6 +19,7 @@ #include "files.h" #include "init.h" #include "screens.h" +#include "editor.h" #include "tools.h" #include "tape.h" #include "config.h" @@ -310,6 +311,41 @@ static struct LevelFileConfigInfo chunk_config_INFO[] = 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, @@ -2346,6 +2382,10 @@ static void setLevelInfoToDefaults_Level(struct LevelInfo *level) // 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; @@ -4378,6 +4418,14 @@ static void CopyNativeLevel_RND_to_BD(struct LevelInfo *level) 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'; @@ -4543,6 +4591,18 @@ static void CopyNativeLevel_BD_to_RND(struct LevelInfo *level) 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);