- int level_magic_wall_time[5]; /* magic wall 'on' state for each level (seconds) */
- boolean magic_wall_stops_amoeba; /* Turning on magic wall changes amoeba to diamonds. Original BD: yes, constkit: no */
- boolean magic_timer_wait_for_hatching; /* magic wall timer does not start before player's birth */
- boolean magic_wall_sound; /* magic wall has sound */
-
- int level_amoeba_time[5]; /* amoeba time for each level */
- int amoeba_growth_prob; /* Amoeba slow growth probability */
- int amoeba_fast_growth_prob; /* Amoeba fast growth probability */
- int level_amoeba_threshold[5]; /* amoeba turns to stones; if count is bigger than this (number of cells) */
- GdElement amoeba_enclosed_effect; /* an enclosed amoeba converts to this element */
- GdElement amoeba_too_big_effect; /* an amoeba grown too big converts to this element */
-
- int level_amoeba_2_time[5]; /* amoeba time for each level */
- int amoeba_2_growth_prob; /* Amoeba slow growth probability */
- int amoeba_2_fast_growth_prob; /* Amoeba fast growth probability */
- int level_amoeba_2_threshold[5]; /* amoeba turns to stones; if count is bigger than this (number of cells) */
- GdElement amoeba_2_enclosed_effect; /* an enclosed amoeba converts to this element */
- GdElement amoeba_2_too_big_effect; /* an amoeba grown too big converts to this element */
- boolean amoeba_2_explodes_by_amoeba; /* amoeba 2 will explode if touched by amoeba1 */
- GdElement amoeba_2_explosion_effect; /* amoeba 2 explosion ends in ... */
- GdElement amoeba_2_looks_like; /* an amoeba 2 looks like this element */
-
- boolean amoeba_timer_started_immediately; /* FALSE: amoeba will start life at the first possibility of growing. */
- boolean amoeba_timer_wait_for_hatching; /* amoeba timer does not start before player's birth */
- boolean amoeba_sound; /* if the living amoeba has sound. */
-
- GdElement acid_eats_this; /* acid eats this element */
- int acid_spread_ratio; /* Probability of acid blowing up, each frame */
- boolean acid_spread_sound; /* acid has sound */
- GdElement acid_turns_to; /* whether acid converts to explosion on spreading or other */
-
- GdElement nut_turns_to_when_crushed; /* when a nut is hit by a stone, it converts to this element */
-
- int level_slime_permeability[5]; /* true random slime */
- int level_slime_permeability_c64[5]; /* Appearing in bd 2 */
- int level_slime_seed_c64[5]; /* predictable slime random seed */
- boolean slime_predictable; /* predictable random start for slime. yes for plck. */
- GdElement slime_eats_1, slime_converts_1; /* slime eats element x and converts to element x; for example diamond -> falling diamond */
- GdElement slime_eats_2, slime_converts_2; /* this is usually stone -> stone_f */
- GdElement slime_eats_3, slime_converts_3; /* this is usually nut -> nut_f */
- boolean slime_sound; /* slime has sound */
-
- boolean lava_sound; /* elements sinking in lava have sound */
-
- int level_hatching_delay_frame[5]; /* Scan frames before Player's birth. */
- int level_hatching_delay_time[5]; /* Scan frames before Player's birth. */
-
- int level_bonus_time[5]; /* bonus time for clock collected. */
- int level_penalty_time[5]; /* Time penalty when voodoo destroyed. */
- boolean voodoo_collects_diamonds; /* Voodoo can collect diamonds */
- boolean voodoo_dies_by_stone; /* Voodoo can be killed by a falling stone */
- boolean voodoo_disappear_in_explosion; /* Voodoo can be destroyed by and explosion */
- boolean voodoo_any_hurt_kills_player; /* If any of the voodoos are hurt in any way, the player is killed. */
-
- boolean water_does_not_flow_down; /* if true, water will not grow downwards, only in other directions. */
- boolean water_sound; /* water has sound */
-
- boolean bladder_sound; /* bladder moving and pushing has sound */
- GdElement bladder_converts_by; /* bladder converts to clock by touching this element */
-
- int biter_delay_frame; /* frame count biters do move */
- GdElement biter_eat; /* biters eat this */
- boolean biter_sound; /* biters have sound */
-
- boolean expanding_wall_changed; /* expanding wall direction is changed */
-
- int replicator_delay_frame; /* replicator delay in frames (number of frames to wait between creating a new element) */
- boolean replicators_active; /* replicators are active. */
- boolean replicator_sound; /* when replicating an element, play sound or not. */
+ int level_magic_wall_time[5]; // magic wall 'on' state for each level (seconds)
+ boolean magic_wall_stops_amoeba; // Turning on magic wall changes amoeba to diamonds.
+ // Original BD: yes, constkit: no
+ boolean magic_wall_breakscan; // Currently this setting enabled will turn the amoeba to
+ // an enclosed state. To implement buggy BD1 behaviour.
+ boolean magic_timer_zero_is_infinite; // magic wall timer 0 is interpreted as infinite
+ boolean magic_timer_wait_for_hatching;// magic wall timer does not start before player's birth
+ boolean magic_wall_sound; // magic wall has sound
+
+ int level_amoeba_time[5]; // amoeba time for each level
+ int amoeba_growth_prob; // Amoeba slow growth probability
+ int amoeba_fast_growth_prob; // Amoeba fast growth probability
+ int level_amoeba_threshold[5]; // amoeba turns to stones; if count is bigger than this
+ // (number of cells)
+ GdElement amoeba_enclosed_effect; // an enclosed amoeba converts to this element
+ GdElement amoeba_too_big_effect; // an amoeba grown too big converts to this element
+
+ int level_amoeba_2_time[5]; // amoeba time for each level
+ int amoeba_2_growth_prob; // Amoeba slow growth probability
+ int amoeba_2_fast_growth_prob; // Amoeba fast growth probability
+ int level_amoeba_2_threshold[5]; // amoeba turns to stones; if count is bigger than this
+ // (number of cells)
+ GdElement amoeba_2_enclosed_effect; // an enclosed amoeba converts to this element
+ GdElement amoeba_2_too_big_effect; // an amoeba grown too big converts to this element
+ boolean amoeba_2_explodes_by_amoeba; // amoeba 2 will explode if touched by amoeba1
+ GdElement amoeba_2_explosion_effect; // amoeba 2 explosion ends in ...
+ GdElement amoeba_2_looks_like; // an amoeba 2 looks like this element
+
+ boolean amoeba_timer_started_immediately; // FALSE: amoeba will start life at the first
+ // possibility of growing.
+ boolean amoeba_timer_wait_for_hatching; // amoeba timer does not start before player's birth
+ boolean amoeba_sound; // if the living amoeba has sound.
+
+ GdElement acid_eats_this; // acid eats this element
+ int acid_spread_ratio; // Probability of acid blowing up, each frame
+ boolean acid_spread_sound; // acid has sound
+ GdElement acid_turns_to; // whether acid converts to explosion on spreading or other
+
+ GdElement nut_turns_to_when_crushed; // when nut is hit by stone, it converts to this element
+
+ int level_slime_permeability[5]; // true random slime
+ int level_slime_permeability_c64[5]; // Appearing in bd 2
+ int level_slime_seed_c64[5]; // predictable slime random seed
+ boolean slime_predictable; // predictable random start for slime. yes for plck.
+ boolean slime_correct_random; // correct random number generator for rendered caves
+ GdElement slime_eats_1, slime_converts_1; // slime eats element x and converts to element x;
+ // for example diamond -> falling diamond
+ GdElement slime_eats_2, slime_converts_2; // this is usually stone -> stone_f
+ GdElement slime_eats_3, slime_converts_3; // this is usually nut -> nut_f
+ boolean slime_sound; // slime has sound
+
+ boolean lava_sound; // elements sinking in lava have sound
+
+ int level_hatching_delay_frame[5]; // Scan frames before Player's birth.
+ int level_hatching_delay_time[5]; // Scan frames before Player's birth.
+
+ int level_bonus_time[5]; // bonus time for clock collected.
+ int level_penalty_time[5]; // Time penalty when voodoo destroyed.
+ boolean voodoo_collects_diamonds; // Voodoo can collect diamonds
+ boolean voodoo_dies_by_stone; // Voodoo can be killed by a falling stone
+ boolean voodoo_disappear_in_explosion;// Voodoo can be destroyed by and explosion
+ boolean voodoo_any_hurt_kills_player; // If any voodoo hurt in any way, player is killed.
+
+ boolean water_does_not_flow_down; // if true, water will not grow downwards,
+ // only in other directions.
+ boolean water_sound; // water has sound
+
+ boolean bladder_sound; // bladder moving and pushing has sound
+ GdElement bladder_converts_by; // bladder converts to clock by touching this element
+
+ int biter_delay_frame; // frame count biters do move
+ GdElement biter_eat; // biters eat this
+ boolean biter_sound; // biters have sound
+
+ boolean expanding_wall_changed; // expanding wall direction is changed
+
+ int replicator_delay_frame; // replicator delay in frames (number of frames
+ // to wait between creating a new element)
+ boolean replicators_active; // replicators are active.
+ boolean replicator_sound; // when replicating an element, play sound or not.