X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=inline;f=src%2Feditor.c;h=9345d1b12862002208ffcfd188218e91e5a4805d;hb=e5ee3648da48f552b47616247ca6ef447200b333;hp=0a682af53a6409a2b5cbccc7c68e3dd9a48b8258;hpb=724645813eb504ac837f045a76ffd604db11aa5c;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 0a682af5..9345d1b1 100644 --- a/src/editor.c +++ b/src/editor.c @@ -563,6 +563,8 @@ enum GADGET_ID_BD_AMOEBA_2_CONTENT_ENCLOSED, GADGET_ID_BD_AMOEBA_2_CONTENT_EXPLODING, GADGET_ID_BD_AMOEBA_2_CONTENT_LOOKS_LIKE, + GADGET_ID_BD_ACID_EATS_ELEMENT, + GADGET_ID_BD_ACID_TURNS_TO_ELEMENT, GADGET_ID_START_ELEMENT, GADGET_ID_ARTWORK_ELEMENT, GADGET_ID_EXPLOSION_ELEMENT, @@ -724,6 +726,7 @@ enum GADGET_ID_BD_VOODOO_HURT_KILLS_PLAYER, GADGET_ID_BD_VOODOO_DIES_BY_ROCK, GADGET_ID_BD_VOODOO_VANISH_BY_EXPLOSION, + GADGET_ID_BD_SLIME_IS_PREDICTABLE, GADGET_ID_ENVELOPE_AUTOWRAP, GADGET_ID_ENVELOPE_CENTERED, GADGET_ID_MM_LASER_RED, @@ -1068,6 +1071,7 @@ enum ED_CHECKBUTTON_ID_BD_VOODOO_HURT_KILLS_PLAYER, ED_CHECKBUTTON_ID_BD_VOODOO_DIES_BY_ROCK, ED_CHECKBUTTON_ID_BD_VOODOO_VANISH_BY_EXPLOSION, + ED_CHECKBUTTON_ID_BD_SLIME_IS_PREDICTABLE, ED_CHECKBUTTON_ID_ENVELOPE_AUTOWRAP, ED_CHECKBUTTON_ID_ENVELOPE_CENTERED, ED_CHECKBUTTON_ID_MM_LASER_RED, @@ -1170,6 +1174,8 @@ enum ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_ENCLOSED, ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_EXPLODING, ED_DRAWING_ID_BD_AMOEBA_2_CONTENT_LOOKS_LIKE, + ED_DRAWING_ID_BD_ACID_EATS_ELEMENT, + ED_DRAWING_ID_BD_ACID_TURNS_TO_ELEMENT, ED_DRAWING_ID_START_ELEMENT, ED_DRAWING_ID_ARTWORK_ELEMENT, ED_DRAWING_ID_EXPLOSION_ELEMENT, @@ -3792,6 +3798,14 @@ static struct NULL, NULL, "disappears in explosions", "can be destroyed by explosions" }, + { + ED_CHECKBUTTON_ID_BD_SLIME_IS_PREDICTABLE, + ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(0), + GADGET_ID_BD_SLIME_IS_PREDICTABLE, GADGET_ID_NONE, + &level.bd_slime_is_predictable, + NULL, NULL, + "slime is predictable", "use predictable random numbers" + }, { ED_CHECKBUTTON_ID_ENVELOPE_AUTOWRAP, ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1), @@ -4327,6 +4341,22 @@ static struct &level.bd_amoeba_2_content_looks_like, 1, 1, "use graphic of element:", NULL, NULL, NULL, "BD amoeba 2 looks like this element" }, + { + ED_DRAWING_ID_BD_ACID_EATS_ELEMENT, + ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(1), + ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF, + GADGET_ID_BD_ACID_EATS_ELEMENT, GADGET_ID_NONE, + &level.bd_acid_eats_element, 1, 1, + "can eat:", NULL, NULL, NULL, "eats this element when spreading" + }, + { + ED_DRAWING_ID_BD_ACID_TURNS_TO_ELEMENT, + ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(3), + ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF, + GADGET_ID_BD_ACID_TURNS_TO_ELEMENT, GADGET_ID_NONE, + &level.bd_acid_turns_to_element, 1, 1, + "can leave behind:", NULL, NULL, NULL, "turns to this element after spreading" + }, // ---------- level start element ------------------------------------------- @@ -10841,6 +10871,10 @@ static void DrawPropertiesInfo(void) #define TEXT_GAME_OF_LIFE_4 "Max neighbours to create" #define TEXT_TIME_BONUS "Extra time to solve level" #define TEXT_TIME_PENALTY "Time penalty if destroyed" +#define TEXT_PERMEABILITY_RATE "slime permeability rate" +#define TEXT_PERMEABILITY_BITS "slime permeability bits" +#define TEXT_RANDOM_SEED "slime random number seed" +#define TEXT_ACID_SPREAD_RATE "Spread rate (percent)" static struct { @@ -10957,6 +10991,14 @@ static struct -100, 100 }, { EL_BD_VOODOO_DOLL, &level.bd_voodoo_penalty_time, TEXT_TIME_PENALTY, 0, 100 }, + { EL_BD_SLIME, &level.bd_slime_permeability_rate, TEXT_PERMEABILITY_RATE, + 0, 100 }, + { EL_BD_SLIME, &level.bd_slime_permeability_bits_c64, TEXT_PERMEABILITY_BITS, + 0, 255 }, + { EL_BD_SLIME, &level.bd_slime_random_seed_c64, TEXT_RANDOM_SEED, + -1, 65535 }, + { EL_BD_ACID, &level.bd_acid_spread_rate, TEXT_ACID_SPREAD_RATE, + 0, 100 }, { EL_EXTRA_TIME, &level.extra_time, TEXT_TIME_BONUS }, { EL_TIME_ORB_FULL, &level.time_orb_time, TEXT_TIME_BONUS }, { EL_GAME_OF_LIFE, &level.game_of_life[0], TEXT_GAME_OF_LIFE_1,0,8 }, @@ -11138,6 +11180,8 @@ static void DrawPropertiesConfig(void) (COULD_MOVE_INTO_ACID(properties_element) ? 1 : 0) + (MAYBE_DONT_COLLIDE_WITH(properties_element) ? 1 : 0) + (properties_element == EL_BD_VOODOO_DOLL ? 4 : 0) + + (properties_element == EL_BD_SLIME ? 1 : 0) + + (properties_element == EL_BD_ACID ? 1 : 0) + (properties_element == EL_EMC_MAGIC_BALL ? 2 : 0) + num_element_counters); @@ -11188,6 +11232,11 @@ static void DrawPropertiesConfig(void) } else if (IS_AMOEBOID(properties_element)) MapDrawingArea(ED_DRAWING_ID_AMOEBA_CONTENT); + else if (properties_element == EL_BD_ACID) + { + MapDrawingArea(ED_DRAWING_ID_BD_ACID_EATS_ELEMENT); + MapDrawingArea(ED_DRAWING_ID_BD_ACID_TURNS_TO_ELEMENT); + } else if (properties_element == EL_YAMYAM || properties_element == EL_YAMYAM_LEFT || properties_element == EL_YAMYAM_RIGHT || @@ -11340,6 +11389,11 @@ static void DrawPropertiesConfig(void) MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_VOODOO_VANISH_BY_EXPLOSION); } + if (properties_element == EL_BD_SLIME) + { + MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_SLIME_IS_PREDICTABLE); + } + if (properties_element == EL_BD_MAGIC_WALL) { MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_WAIT_HATCHING);