X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=0bbf8dd3e24a2db393f1e89e235cda6918793fd5;hb=c7467e9ca66d7b19626a9ba8b8deaf535b27cab0;hp=69e57de2c7638a0d9dacaccabb55245dcf6e4e84;hpb=4b979559210bd4da7da9d6c94643823748df23ae;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 69e57de2..0bbf8dd3 100644 --- a/src/editor.c +++ b/src/editor.c @@ -756,6 +756,7 @@ enum GADGET_ID_SAVE_LEVELSET, GADGET_ID_ADD_CHANGE_PAGE, GADGET_ID_DEL_CHANGE_PAGE, + GADGET_ID_BD_SET_RANDOM_COLORS, // graphicbutton identifiers @@ -1132,6 +1133,7 @@ enum ED_TEXTBUTTON_ID_SAVE_AS_TEMPLATE_1, ED_TEXTBUTTON_ID_ADD_CHANGE_PAGE, ED_TEXTBUTTON_ID_DEL_CHANGE_PAGE, + ED_TEXTBUTTON_ID_BD_SET_RANDOM_COLORS, ED_NUM_TEXTBUTTONS }; @@ -3596,6 +3598,16 @@ static struct -1, "Delete", NULL, NULL, NULL, "Delete current change page" }, + + // ---------- engine settings (buttons) ------------------------------------- + + { + ED_TEXTBUTTON_ID_BD_SET_RANDOM_COLORS, + ED_ENGINE_SETTINGS_XPOS(0), ED_ENGINE_SETTINGS_YPOS(8), + GADGET_ID_BD_SET_RANDOM_COLORS, GADGET_ID_NONE, + -1, "Set random colors", + NULL, NULL, NULL, "Create and set random level colors" + }, }; static struct @@ -11437,6 +11449,24 @@ void SetDefaultLevelColors_BD(void) bd_color_default[i] = *bd_color[i]; } +static void SetRandomLevelColors_BD(void) +{ + struct LevelInfo_BD *level_bd = level.native_bd_level; + GdCave *cave = level_bd->cave; + + // create random cave colors + gd_cave_set_random_colors(cave, level.bd_color_type); + + // copy colors to level editor + 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; +} + static void DrawEngineConfigColors(void) { int i; @@ -11476,6 +11506,8 @@ static void DrawEngineConfigColors(void) for (i = ED_SELECTBOX_ID_COLORS_FIRST; i <= ED_SELECTBOX_ID_COLORS_LAST; i++) MapSelectboxGadget(i); } + + MapTextbuttonGadget(ED_TEXTBUTTON_ID_BD_SET_RANDOM_COLORS); } static void DrawLevelConfigEngine(void) @@ -16549,6 +16581,13 @@ static void HandleTextbuttonGadgets(struct GadgetInfo *gi) level.changed = TRUE; } + else if (type_id == ED_TEXTBUTTON_ID_BD_SET_RANDOM_COLORS) + { + SetRandomLevelColors_BD(); + + // update BD color palette gadgets after setting random colors + DrawLevelConfigWindow(); + } } static void HandleGraphicbuttonGadgets(struct GadgetInfo *gi)