GADGET_ID_BD_MAGIC_WALL_ZERO_INFINITE,
GADGET_ID_BD_MAGIC_WALL_WAIT_HATCHING,
GADGET_ID_BD_MAGIC_WALL_STOPS_AMOEBA,
+ GADGET_ID_BD_MAGIC_WALL_BREAK_SCAN,
GADGET_ID_BD_AMOEBA_WAIT_FOR_HATCHING,
GADGET_ID_BD_AMOEBA_START_IMMEDIATELY,
GADGET_ID_BD_AMOEBA_2_EXPLODE_BY_AMOEBA,
ED_CHECKBUTTON_ID_BD_MAGIC_WALL_ZERO_INFINITE,
ED_CHECKBUTTON_ID_BD_MAGIC_WALL_WAIT_HATCHING,
ED_CHECKBUTTON_ID_BD_MAGIC_WALL_STOPS_AMOEBA,
+ ED_CHECKBUTTON_ID_BD_MAGIC_WALL_BREAK_SCAN,
ED_CHECKBUTTON_ID_BD_AMOEBA_WAIT_FOR_HATCHING,
ED_CHECKBUTTON_ID_BD_AMOEBA_START_IMMEDIATELY,
ED_CHECKBUTTON_ID_BD_AMOEBA_2_EXPLODE_BY_AMOEBA,
NULL, NULL,
"Stop amoeba and turn to diamonds", "Activation changes amoeba to diamonds"
},
+ {
+ ED_CHECKBUTTON_ID_BD_MAGIC_WALL_BREAK_SCAN,
+ ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(5),
+ GADGET_ID_BD_MAGIC_WALL_BREAK_SCAN, GADGET_ID_NONE,
+ &level.bd_magic_wall_break_scan,
+ NULL, NULL,
+ "Emulate amoeba bug in BD1", "Use buggy BD1 behavior"
+ },
{
ED_CHECKBUTTON_ID_BD_AMOEBA_WAIT_FOR_HATCHING,
ED_ELEMENT_SETTINGS_XPOS(0), ED_ELEMENT_SETTINGS_YPOS(1),
{
ED_DRAWING_ID_BD_MAGIC_WALL_DIAMOND_TO,
- ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(5),
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(6),
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_MAGIC_WALL_DIAMOND_TO, GADGET_ID_NONE,
&level.bd_magic_wall_diamond_to, 1, 1,
},
{
ED_DRAWING_ID_BD_MAGIC_WALL_ROCK_TO,
- ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(6),
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(7),
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_MAGIC_WALL_ROCK_TO, GADGET_ID_NONE,
&level.bd_magic_wall_rock_to, 1, 1,
},
{
ED_DRAWING_ID_BD_MAGIC_WALL_MEGA_ROCK_TO,
- ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(7),
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(8),
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_MAGIC_WALL_MEGA_ROCK_TO, GADGET_ID_NONE,
&level.bd_magic_wall_mega_rock_to, 1, 1,
},
{
ED_DRAWING_ID_BD_MAGIC_WALL_NUT_TO,
- ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(8),
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(9),
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_MAGIC_WALL_NUT_TO, GADGET_ID_NONE,
&level.bd_magic_wall_nut_to, 1, 1,
},
{
ED_DRAWING_ID_BD_MAGIC_WALL_NITRO_PACK_TO,
- ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(9),
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(10),
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_MAGIC_WALL_NITRO_PACK_TO, GADGET_ID_NONE,
&level.bd_magic_wall_nitro_pack_to, 1, 1,
},
{
ED_DRAWING_ID_BD_MAGIC_WALL_FLYING_DIAMOND_TO,
- ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(10),
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(11),
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_MAGIC_WALL_FLYING_DIAMOND_TO, GADGET_ID_NONE,
&level.bd_magic_wall_flying_diamond_to, 1, 1,
},
{
ED_DRAWING_ID_BD_MAGIC_WALL_FLYING_ROCK_TO,
- ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(11),
+ ED_AREA_1X1_SETTINGS_XPOS(0), ED_AREA_1X1_SETTINGS_YPOS(12),
ED_AREA_1X1_SETTINGS_XOFF, ED_AREA_1X1_SETTINGS_YOFF,
GADGET_ID_BD_MAGIC_WALL_FLYING_ROCK_TO, GADGET_ID_NONE,
&level.bd_magic_wall_flying_rock_to, 1, 1,
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_ZERO_INFINITE);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_WAIT_HATCHING);
MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_STOPS_AMOEBA);
+ MapCheckbuttonGadget(ED_CHECKBUTTON_ID_BD_MAGIC_WALL_BREAK_SCAN);
MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_DIAMOND_TO);
MapDrawingArea(ED_DRAWING_ID_BD_MAGIC_WALL_ROCK_TO);
{"MagicWallProperties.zeroisinfinite", GD_TYPE_BOOLEAN, 0, N_("Milling time 0 is infinite"), CAVE_OFFSET(magic_timer_zero_is_infinite), 1, N_("This determines if the magic wall timer 0 is interpreted as infinite.")},
{"MagicWallProperties.waitforhatching", GD_TYPE_BOOLEAN, 0, N_("Timer waits for hatching"), CAVE_OFFSET(magic_timer_wait_for_hatching), 1, N_("This determines if the magic wall timer starts before the player appearing. Magic can always be activated before that; but if this is set to true, the timer will not start.")},
{"MagicWallProperties.convertamoeba", GD_TYPE_BOOLEAN, 0, N_("Stops amoeba"), CAVE_OFFSET(magic_wall_stops_amoeba), 1, N_("When the magic wall is activated, it can convert amoeba into diamonds.")},
+ {"MagicWallProperties.breakscan", GD_TYPE_BOOLEAN, 0, N_("BD1 amoeba bug"), CAVE_OFFSET(magic_wall_breakscan), 1, N_("This setting emulates the BD1 bug, where a stone or a diamond falling into a magic wall sometimes caused the active amoeba to convert into a diamond. The rule is: if all amoeba cells above or left to the point where the stone or the diamond falls into the magic wall are enclosed, the amoeba is converted. The timing implications of the bug are not emulated.")},
{"", GD_LABEL, 0, N_("Conversions")},
{"MagicWallProperties", GD_TYPE_ELEMENT, 0, N_("Diamond to"), CAVE_OFFSET(magic_diamond_to), 1, N_("As a special effect, magic walls can convert diamonds to any other element.")},
{"MagicWallProperties", GD_TYPE_ELEMENT, 0, N_("Stone to"), CAVE_OFFSET(magic_stone_to), 1, N_("As a special effect, magic walls can convert stones to any other element.")},