X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=58a4e8e8983102d3511df6621eb43e0f41ff7ddb;hb=79e91e9a5ec83a11ee4708c8cf2c42dd4dd63cce;hp=6da69dfd85ad934a8276732078d6d44fe1ff3241;hpb=682ba5529540b03ce96e3890d24fe310adee4291;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 6da69dfd..58a4e8e8 100644 --- a/src/editor.c +++ b/src/editor.c @@ -4613,7 +4613,7 @@ static int editor_el_boulderdash_native[] = EL_BD_STEELWALL, EL_BD_WALL, - EL_EMPTY, + EL_BD_SAND_2, EL_BD_MAGIC_WALL, EL_BD_AMOEBA, @@ -4634,34 +4634,34 @@ static int editor_el_boulderdash_native[] = EL_BD_AMOEBA_2, EL_BD_BUTTERFLY_2_UP, EL_BD_FIREFLY_2_UP, - EL_EMPTY, + EL_BD_SLIME, EL_BD_BUTTERFLY_2_LEFT, EL_BD_FIREFLY_2_LEFT, EL_BD_BUTTERFLY_2_RIGHT, EL_BD_FIREFLY_2_RIGHT, - EL_EMPTY, + EL_BD_BOMB, EL_BD_BUTTERFLY_2_DOWN, EL_BD_FIREFLY_2_DOWN, - EL_EMPTY, + EL_BD_FLYING_DIAMOND, - EL_EMPTY, + EL_BD_NITRO_PACK, EL_BD_DRAGONFLY_UP, EL_BD_STONEFLY_UP, - EL_EMPTY, + EL_BD_DIAMOND_GLUED, EL_BD_DRAGONFLY_LEFT, EL_BD_STONEFLY_LEFT, EL_BD_DRAGONFLY_RIGHT, EL_BD_STONEFLY_RIGHT, - EL_EMPTY, + EL_BD_NUT, EL_BD_DRAGONFLY_DOWN, EL_BD_STONEFLY_DOWN, EL_EMPTY, - EL_EMPTY, + EL_BD_BITER_SWITCH_1, EL_BD_BITER_UP, EL_BD_COW_UP, EL_EMPTY, @@ -4671,15 +4671,15 @@ static int editor_el_boulderdash_native[] = EL_BD_BITER_RIGHT, EL_BD_COW_RIGHT, - EL_EMPTY, + EL_BD_VOODOO_DOLL, EL_BD_BITER_DOWN, EL_BD_COW_DOWN, - EL_EMPTY, + EL_BD_GHOST, - EL_EMPTY, - EL_BD_SAND, + EL_BD_SAND_GLUED, EL_BD_SAND_BALL, EL_BD_SAND_LOOSE, + EL_BD_WALL_NON_SLOPED, EL_BD_SAND_SLOPED_UP_LEFT, EL_BD_SAND_SLOPED_UP_RIGHT, @@ -4691,100 +4691,75 @@ static int editor_el_boulderdash_native[] = EL_BD_WALL_SLOPED_DOWN_LEFT, EL_BD_WALL_SLOPED_DOWN_RIGHT, - EL_BD_FLYING_DIAMOND, EL_BD_FLYING_ROCK, + EL_BD_ROCK_GLUED, EL_BD_STEELWALL_SLOPED_UP_LEFT, EL_BD_STEELWALL_SLOPED_UP_RIGHT, - EL_BD_NUT, - EL_BD_MEGA_ROCK, + EL_BD_WAITING_ROCK, + EL_BD_CHASING_ROCK, EL_BD_STEELWALL_SLOPED_DOWN_LEFT, EL_BD_STEELWALL_SLOPED_DOWN_RIGHT, - EL_BD_SAND_2, - EL_BD_WALL_NON_SLOPED, - EL_BD_WALL, - EL_BD_MAGIC_WALL, - - EL_BD_EXIT_CLOSED, - EL_BD_EXIT_OPEN, + EL_BD_MEGA_ROCK, + EL_BD_SWEET, EL_BD_INVISIBLE_EXIT_CLOSED, EL_BD_INVISIBLE_EXIT_OPEN, - EL_BD_STEELWALL, EL_BD_STEELWALL_EXPLODABLE, EL_BD_STEELWALL_DIGGABLE, EL_BD_WALL_DIGGABLE, + EL_BD_FALLING_WALL, EL_BD_EXPANDABLE_WALL_HORIZONTAL, EL_BD_EXPANDABLE_WALL_VERTICAL, EL_BD_EXPANDABLE_WALL_ANY, - EL_BD_CREATURE_SWITCH, + EL_BD_EXPANDABLE_WALL_SWITCH_HORIZONTAL, EL_BD_EXPANDABLE_STEELWALL_HORIZONTAL, EL_BD_EXPANDABLE_STEELWALL_VERTICAL, EL_BD_EXPANDABLE_STEELWALL_ANY, - EL_BD_EXPANDABLE_WALL_SWITCH_HORIZONTAL, + EL_BD_CREATURE_SWITCH, - EL_BD_BITER_SWITCH_1, + EL_BD_BLADDER, + EL_BD_BLADDER_SPENDER, + EL_BD_REPLICATOR, EL_BD_REPLICATOR_SWITCH, + + EL_BD_CONVEYOR_LEFT, + EL_BD_CONVEYOR_RIGHT, EL_BD_CONVEYOR_SWITCH, EL_BD_CONVEYOR_DIR_SWITCH_RIGHT, - EL_BD_ACID, - EL_BD_FALLING_WALL, - EL_BD_BOX, + EL_BD_CLOCK, EL_BD_TIME_PENALTY, - EL_BD_GRAVESTONE, - EL_BD_ROCK_GLUED, - EL_BD_DIAMOND_GLUED, - EL_BD_DIAMOND_KEY, + EL_BD_SKELETON, - EL_BD_TRAPPED_DIAMOND, - EL_BD_CLOCK, - EL_BD_SAND_GLUED, EL_BD_WATER, + EL_BD_ACID, + EL_BD_LAVA, + EL_BD_BOX, + + EL_BD_GATE_1, + EL_BD_GATE_2, + EL_BD_GATE_3, + EL_BD_TRAPPED_DIAMOND, EL_BD_KEY_1, EL_BD_KEY_2, EL_BD_KEY_3, - EL_EMPTY, + EL_BD_DIAMOND_KEY, EL_BD_WALL_KEY_1, EL_BD_WALL_KEY_2, EL_BD_WALL_KEY_3, EL_BD_WALL_DIAMOND, - EL_BD_GATE_1, - EL_BD_GATE_2, - EL_BD_GATE_3, - EL_BD_POT, - EL_BD_GRAVITY_SWITCH, EL_BD_PNEUMATIC_HAMMER, EL_BD_TELEPORTER, - EL_BD_SKELETON, - - EL_BD_AMOEBA, - EL_BD_AMOEBA_2, - EL_BD_REPLICATOR, - EL_BD_BLADDER_SPENDER, - - EL_BD_CONVEYOR_LEFT, - EL_BD_CONVEYOR_RIGHT, - EL_BD_BOMB, - EL_BD_NITRO_PACK, - - EL_BD_LAVA, - EL_BD_SWEET, - EL_BD_VOODOO_DOLL, - EL_BD_SLIME, - - EL_BD_BLADDER, - EL_BD_WAITING_ROCK, - EL_BD_CHASING_ROCK, - EL_BD_GHOST, + EL_BD_POT, EL_BD_PLAYER, EL_BD_PLAYER_WITH_BOMB, @@ -6406,7 +6381,7 @@ static int getTextWidthForDrawingArea(char *text) if (text == NULL) return 0; - return (getTextWidth(text, FONT_TEXT_1) + ED_DRAWINGAREA_TEXT_DISTANCE); + return (getTextWidth(text, FONT_TEXT_1) + ED_DRAWINGAREA_BORDER_SIZE); } static int getRightGadgetBorder(struct GadgetInfo *gi, char *text) @@ -8313,7 +8288,7 @@ static void MapDrawingArea(int id) int area_ysize = gi->drawing.area_ysize; int xoffset_left = getTextWidthForDrawingArea(drawingarea_info[id].text_left); int xoffset_below = getTextWidth(drawingarea_info[id].text_below, font_nr); - int x_left = gi->x - xoffset_left; + int x_left = gi->x - xoffset_left - ED_DRAWINGAREA_BORDER_SIZE; int x_right = gi->x + gi->width + ED_DRAWINGAREA_TEXT_DISTANCE; int x_above = gi->x - ED_DRAWINGAREA_BORDER_SIZE; int x_below = gi->x + (gi->width - xoffset_below) / 2; @@ -10818,133 +10793,140 @@ static struct int element; int *value; char *text; + int min_value; + int max_value; } elements_with_counter[] = { - { EL_EMERALD, &level.score[SC_EMERALD], TEXT_COLLECTING }, - { EL_BD_DIAMOND, &level.score[SC_EMERALD], TEXT_COLLECTING }, - { EL_BD_DIAMOND, &level.score[SC_DIAMOND_EXTRA], TEXT_COLLECTING_EXTRA }, - { EL_EMERALD_YELLOW, &level.score[SC_EMERALD], TEXT_COLLECTING }, - { EL_EMERALD_RED, &level.score[SC_EMERALD], TEXT_COLLECTING }, - { EL_EMERALD_PURPLE, &level.score[SC_EMERALD], TEXT_COLLECTING }, - { EL_SP_INFOTRON, &level.score[SC_EMERALD], TEXT_COLLECTING }, - { EL_DIAMOND, &level.score[SC_DIAMOND], TEXT_COLLECTING }, - { EL_CRYSTAL, &level.score[SC_CRYSTAL], TEXT_COLLECTING }, - { EL_PEARL, &level.score[SC_PEARL], TEXT_COLLECTING }, - { EL_BUG, &level.score[SC_BUG], TEXT_SMASHING }, - { EL_BUG_RIGHT, &level.score[SC_BUG], TEXT_SMASHING }, - { EL_BUG_UP, &level.score[SC_BUG], TEXT_SMASHING }, - { EL_BUG_LEFT, &level.score[SC_BUG], TEXT_SMASHING }, - { EL_BUG_DOWN, &level.score[SC_BUG], TEXT_SMASHING }, - { EL_BD_BUTTERFLY, &level.score[SC_BUG], TEXT_SMASHING }, - { EL_BD_BUTTERFLY_RIGHT, &level.score[SC_BUG], TEXT_SMASHING }, - { EL_BD_BUTTERFLY_UP, &level.score[SC_BUG], TEXT_SMASHING }, - { EL_BD_BUTTERFLY_LEFT, &level.score[SC_BUG], TEXT_SMASHING }, - { EL_BD_BUTTERFLY_DOWN, &level.score[SC_BUG], TEXT_SMASHING }, - { EL_SP_ELECTRON, &level.score[SC_BUG], TEXT_SMASHING }, - { EL_SPACESHIP, &level.score[SC_SPACESHIP], TEXT_SMASHING }, - { EL_SPACESHIP_RIGHT, &level.score[SC_SPACESHIP], TEXT_SMASHING }, - { EL_SPACESHIP_UP, &level.score[SC_SPACESHIP], TEXT_SMASHING }, - { EL_SPACESHIP_LEFT, &level.score[SC_SPACESHIP], TEXT_SMASHING }, - { EL_SPACESHIP_DOWN, &level.score[SC_SPACESHIP], TEXT_SMASHING }, - { EL_BD_FIREFLY, &level.score[SC_SPACESHIP], TEXT_SMASHING }, - { EL_BD_FIREFLY_RIGHT, &level.score[SC_SPACESHIP], TEXT_SMASHING }, - { EL_BD_FIREFLY_UP, &level.score[SC_SPACESHIP], TEXT_SMASHING }, - { EL_BD_FIREFLY_LEFT, &level.score[SC_SPACESHIP], TEXT_SMASHING }, - { EL_BD_FIREFLY_DOWN, &level.score[SC_SPACESHIP], TEXT_SMASHING }, - { EL_SP_SNIKSNAK, &level.score[SC_SPACESHIP], TEXT_SMASHING }, - { EL_YAMYAM, &level.score[SC_YAMYAM], TEXT_SMASHING }, - { EL_YAMYAM_LEFT, &level.score[SC_YAMYAM], TEXT_SMASHING }, - { EL_YAMYAM_RIGHT, &level.score[SC_YAMYAM], TEXT_SMASHING }, - { EL_YAMYAM_UP, &level.score[SC_YAMYAM], TEXT_SMASHING }, - { EL_YAMYAM_DOWN, &level.score[SC_YAMYAM], TEXT_SMASHING }, - { EL_DARK_YAMYAM, &level.score[SC_YAMYAM], TEXT_SMASHING }, - { EL_ROBOT, &level.score[SC_ROBOT], TEXT_SMASHING }, - { EL_PACMAN, &level.score[SC_PACMAN], TEXT_SMASHING }, - { EL_PACMAN_RIGHT, &level.score[SC_PACMAN], TEXT_SMASHING }, - { EL_PACMAN_UP, &level.score[SC_PACMAN], TEXT_SMASHING }, - { EL_PACMAN_LEFT, &level.score[SC_PACMAN], TEXT_SMASHING }, - { EL_PACMAN_DOWN, &level.score[SC_PACMAN], TEXT_SMASHING }, - { EL_NUT, &level.score[SC_NUT], TEXT_CRACKING }, - { EL_DYNAMITE, &level.score[SC_DYNAMITE], TEXT_COLLECTING }, - { EL_EM_DYNAMITE, &level.score[SC_DYNAMITE], TEXT_COLLECTING }, - { EL_DYNABOMB_INCREASE_NUMBER,&level.score[SC_DYNAMITE], TEXT_COLLECTING }, - { EL_DYNABOMB_INCREASE_SIZE, &level.score[SC_DYNAMITE], TEXT_COLLECTING }, - { EL_DYNABOMB_INCREASE_POWER, &level.score[SC_DYNAMITE], TEXT_COLLECTING }, - { EL_SHIELD_NORMAL, &level.score[SC_SHIELD], TEXT_COLLECTING }, - { EL_SHIELD_DEADLY, &level.score[SC_SHIELD], TEXT_COLLECTING }, - { EL_EXTRA_TIME, &level.extra_time_score, TEXT_COLLECTING }, - { EL_KEY_1, &level.score[SC_KEY], TEXT_COLLECTING }, - { EL_KEY_2, &level.score[SC_KEY], TEXT_COLLECTING }, - { EL_KEY_3, &level.score[SC_KEY], TEXT_COLLECTING }, - { EL_KEY_4, &level.score[SC_KEY], TEXT_COLLECTING }, - { EL_EM_KEY_1, &level.score[SC_KEY], TEXT_COLLECTING }, - { EL_EM_KEY_2, &level.score[SC_KEY], TEXT_COLLECTING }, - { EL_EM_KEY_3, &level.score[SC_KEY], TEXT_COLLECTING }, - { EL_EM_KEY_4, &level.score[SC_KEY], TEXT_COLLECTING }, - { EL_EMC_KEY_5, &level.score[SC_KEY], TEXT_COLLECTING }, - { EL_EMC_KEY_6, &level.score[SC_KEY], TEXT_COLLECTING }, - { EL_EMC_KEY_7, &level.score[SC_KEY], TEXT_COLLECTING }, - { EL_EMC_KEY_8, &level.score[SC_KEY], TEXT_COLLECTING }, - { EL_DC_KEY_WHITE, &level.score[SC_KEY], TEXT_COLLECTING }, - { EL_MM_KETTLE, &level.score[SC_EMERALD], TEXT_COLLECTING }, - { EL_DF_CELL, &level.score[SC_EMERALD], TEXT_COLLECTING }, - { EL_MM_KEY, &level.score[SC_KEY], TEXT_COLLECTING }, - { EL_MM_LIGHTBALL, &level.score[SC_ELEM_BONUS], TEXT_COLLECTING }, - { EL_MM_PACMAN, &level.score[SC_PACMAN], TEXT_SMASHING }, - { EL_MM_PACMAN_RIGHT, &level.score[SC_PACMAN], TEXT_SMASHING }, - { EL_MM_PACMAN_UP, &level.score[SC_PACMAN], TEXT_SMASHING }, - { EL_MM_PACMAN_LEFT, &level.score[SC_PACMAN], TEXT_SMASHING }, - { EL_MM_PACMAN_DOWN, &level.score[SC_PACMAN], TEXT_SMASHING }, - { EL_AMOEBA_WET, &level.amoeba_speed, TEXT_AMOEBA_SPEED }, - { EL_AMOEBA_DRY, &level.amoeba_speed, TEXT_AMOEBA_SPEED }, - { EL_AMOEBA_FULL, &level.amoeba_speed, TEXT_AMOEBA_SPEED }, - { EL_BD_AMOEBA, &level.amoeba_speed, TEXT_AMOEBA_SPEED }, - { EL_EMC_DRIPPER, &level.amoeba_speed, TEXT_AMOEBA_SPEED }, + { EL_EMERALD, &level.score[SC_EMERALD], TEXT_COLLECTING }, + { EL_BD_DIAMOND, &level.score[SC_EMERALD], TEXT_COLLECTING }, + { EL_BD_DIAMOND, &level.score[SC_DIAMOND_EXTRA], TEXT_COLLECTING_EXTRA }, + { EL_EMERALD_YELLOW, &level.score[SC_EMERALD], TEXT_COLLECTING }, + { EL_EMERALD_RED, &level.score[SC_EMERALD], TEXT_COLLECTING }, + { EL_EMERALD_PURPLE, &level.score[SC_EMERALD], TEXT_COLLECTING }, + { EL_SP_INFOTRON, &level.score[SC_EMERALD], TEXT_COLLECTING }, + { EL_DIAMOND, &level.score[SC_DIAMOND], TEXT_COLLECTING }, + { EL_CRYSTAL, &level.score[SC_CRYSTAL], TEXT_COLLECTING }, + { EL_PEARL, &level.score[SC_PEARL], TEXT_COLLECTING }, + { EL_BUG, &level.score[SC_BUG], TEXT_SMASHING }, + { EL_BUG_RIGHT, &level.score[SC_BUG], TEXT_SMASHING }, + { EL_BUG_UP, &level.score[SC_BUG], TEXT_SMASHING }, + { EL_BUG_LEFT, &level.score[SC_BUG], TEXT_SMASHING }, + { EL_BUG_DOWN, &level.score[SC_BUG], TEXT_SMASHING }, + { EL_BD_BUTTERFLY, &level.score[SC_BUG], TEXT_SMASHING }, + { EL_BD_BUTTERFLY_RIGHT, &level.score[SC_BUG], TEXT_SMASHING }, + { EL_BD_BUTTERFLY_UP, &level.score[SC_BUG], TEXT_SMASHING }, + { EL_BD_BUTTERFLY_LEFT, &level.score[SC_BUG], TEXT_SMASHING }, + { EL_BD_BUTTERFLY_DOWN, &level.score[SC_BUG], TEXT_SMASHING }, + { EL_SP_ELECTRON, &level.score[SC_BUG], TEXT_SMASHING }, + { EL_SPACESHIP, &level.score[SC_SPACESHIP], TEXT_SMASHING }, + { EL_SPACESHIP_RIGHT, &level.score[SC_SPACESHIP], TEXT_SMASHING }, + { EL_SPACESHIP_UP, &level.score[SC_SPACESHIP], TEXT_SMASHING }, + { EL_SPACESHIP_LEFT, &level.score[SC_SPACESHIP], TEXT_SMASHING }, + { EL_SPACESHIP_DOWN, &level.score[SC_SPACESHIP], TEXT_SMASHING }, + { EL_BD_FIREFLY, &level.score[SC_SPACESHIP], TEXT_SMASHING }, + { EL_BD_FIREFLY_RIGHT, &level.score[SC_SPACESHIP], TEXT_SMASHING }, + { EL_BD_FIREFLY_UP, &level.score[SC_SPACESHIP], TEXT_SMASHING }, + { EL_BD_FIREFLY_LEFT, &level.score[SC_SPACESHIP], TEXT_SMASHING }, + { EL_BD_FIREFLY_DOWN, &level.score[SC_SPACESHIP], TEXT_SMASHING }, + { EL_SP_SNIKSNAK, &level.score[SC_SPACESHIP], TEXT_SMASHING }, + { EL_YAMYAM, &level.score[SC_YAMYAM], TEXT_SMASHING }, + { EL_YAMYAM_LEFT, &level.score[SC_YAMYAM], TEXT_SMASHING }, + { EL_YAMYAM_RIGHT, &level.score[SC_YAMYAM], TEXT_SMASHING }, + { EL_YAMYAM_UP, &level.score[SC_YAMYAM], TEXT_SMASHING }, + { EL_YAMYAM_DOWN, &level.score[SC_YAMYAM], TEXT_SMASHING }, + { EL_DARK_YAMYAM, &level.score[SC_YAMYAM], TEXT_SMASHING }, + { EL_ROBOT, &level.score[SC_ROBOT], TEXT_SMASHING }, + { EL_PACMAN, &level.score[SC_PACMAN], TEXT_SMASHING }, + { EL_PACMAN_RIGHT, &level.score[SC_PACMAN], TEXT_SMASHING }, + { EL_PACMAN_UP, &level.score[SC_PACMAN], TEXT_SMASHING }, + { EL_PACMAN_LEFT, &level.score[SC_PACMAN], TEXT_SMASHING }, + { EL_PACMAN_DOWN, &level.score[SC_PACMAN], TEXT_SMASHING }, + { EL_NUT, &level.score[SC_NUT], TEXT_CRACKING }, + { EL_DYNAMITE, &level.score[SC_DYNAMITE], TEXT_COLLECTING }, + { EL_EM_DYNAMITE, &level.score[SC_DYNAMITE], TEXT_COLLECTING }, + { EL_DYNABOMB_INCREASE_NUMBER,&level.score[SC_DYNAMITE], TEXT_COLLECTING }, + { EL_DYNABOMB_INCREASE_SIZE, &level.score[SC_DYNAMITE], TEXT_COLLECTING }, + { EL_DYNABOMB_INCREASE_POWER, &level.score[SC_DYNAMITE], TEXT_COLLECTING }, + { EL_SHIELD_NORMAL, &level.score[SC_SHIELD], TEXT_COLLECTING }, + { EL_SHIELD_DEADLY, &level.score[SC_SHIELD], TEXT_COLLECTING }, + { EL_EXTRA_TIME, &level.extra_time_score, TEXT_COLLECTING }, + { EL_KEY_1, &level.score[SC_KEY], TEXT_COLLECTING }, + { EL_KEY_2, &level.score[SC_KEY], TEXT_COLLECTING }, + { EL_KEY_3, &level.score[SC_KEY], TEXT_COLLECTING }, + { EL_KEY_4, &level.score[SC_KEY], TEXT_COLLECTING }, + { EL_EM_KEY_1, &level.score[SC_KEY], TEXT_COLLECTING }, + { EL_EM_KEY_2, &level.score[SC_KEY], TEXT_COLLECTING }, + { EL_EM_KEY_3, &level.score[SC_KEY], TEXT_COLLECTING }, + { EL_EM_KEY_4, &level.score[SC_KEY], TEXT_COLLECTING }, + { EL_EMC_KEY_5, &level.score[SC_KEY], TEXT_COLLECTING }, + { EL_EMC_KEY_6, &level.score[SC_KEY], TEXT_COLLECTING }, + { EL_EMC_KEY_7, &level.score[SC_KEY], TEXT_COLLECTING }, + { EL_EMC_KEY_8, &level.score[SC_KEY], TEXT_COLLECTING }, + { EL_DC_KEY_WHITE, &level.score[SC_KEY], TEXT_COLLECTING }, + { EL_MM_KETTLE, &level.score[SC_EMERALD], TEXT_COLLECTING }, + { EL_DF_CELL, &level.score[SC_EMERALD], TEXT_COLLECTING }, + { EL_MM_KEY, &level.score[SC_KEY], TEXT_COLLECTING }, + { EL_MM_LIGHTBALL, &level.score[SC_ELEM_BONUS], TEXT_COLLECTING }, + { EL_MM_PACMAN, &level.score[SC_PACMAN], TEXT_SMASHING }, + { EL_MM_PACMAN_RIGHT, &level.score[SC_PACMAN], TEXT_SMASHING }, + { EL_MM_PACMAN_UP, &level.score[SC_PACMAN], TEXT_SMASHING }, + { EL_MM_PACMAN_LEFT, &level.score[SC_PACMAN], TEXT_SMASHING }, + { EL_MM_PACMAN_DOWN, &level.score[SC_PACMAN], TEXT_SMASHING }, + { EL_AMOEBA_WET, &level.amoeba_speed, TEXT_AMOEBA_SPEED }, + { EL_AMOEBA_DRY, &level.amoeba_speed, TEXT_AMOEBA_SPEED }, + { EL_AMOEBA_FULL, &level.amoeba_speed, TEXT_AMOEBA_SPEED }, + { EL_BD_AMOEBA, &level.amoeba_speed, TEXT_AMOEBA_SPEED }, + { EL_EMC_DRIPPER, &level.amoeba_speed, TEXT_AMOEBA_SPEED }, { EL_BD_AMOEBA, &level.bd_amoeba_threshold_too_big, TEXT_AMOEBA_THRESHOED }, { EL_BD_AMOEBA, &level.bd_amoeba_slow_growth_time, TEXT_AMOEBA_SLOW_TIME }, - { EL_BD_AMOEBA, &level.bd_amoeba_slow_growth_rate, TEXT_AMOEBA_SLOW_RATE }, - { EL_BD_AMOEBA, &level.bd_amoeba_fast_growth_rate, TEXT_AMOEBA_FAST_RATE }, + { EL_BD_AMOEBA, &level.bd_amoeba_slow_growth_rate, TEXT_AMOEBA_SLOW_RATE, + 0, 100 }, + { EL_BD_AMOEBA, &level.bd_amoeba_fast_growth_rate, TEXT_AMOEBA_FAST_RATE, + 0, 100 }, { EL_BD_AMOEBA_2, &level.bd_amoeba_2_threshold_too_big, TEXT_AMOEBA_THRESHOED }, { EL_BD_AMOEBA_2, &level.bd_amoeba_2_slow_growth_time, TEXT_AMOEBA_SLOW_TIME }, - { EL_BD_AMOEBA_2, &level.bd_amoeba_2_slow_growth_rate, TEXT_AMOEBA_SLOW_RATE }, - { EL_BD_AMOEBA_2, &level.bd_amoeba_2_fast_growth_rate, TEXT_AMOEBA_FAST_RATE }, - { EL_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION }, - { EL_BD_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION }, - { EL_DC_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION }, - { EL_ROBOT_WHEEL, &level.time_wheel, TEXT_DURATION }, - { EL_TIMEGATE_SWITCH, &level.time_timegate, TEXT_DURATION }, - { EL_DC_TIMEGATE_SWITCH, &level.time_timegate, TEXT_DURATION }, - { EL_LIGHT_SWITCH, &level.time_light, TEXT_DURATION }, - { EL_LIGHT_SWITCH_ACTIVE, &level.time_light, TEXT_DURATION }, - { EL_SHIELD_NORMAL, &level.shield_normal_time, TEXT_DURATION }, - { EL_SHIELD_DEADLY, &level.shield_deadly_time, TEXT_DURATION }, - { 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 }, - { EL_GAME_OF_LIFE, &level.game_of_life[1], TEXT_GAME_OF_LIFE_2 }, - { EL_GAME_OF_LIFE, &level.game_of_life[2], TEXT_GAME_OF_LIFE_3 }, - { EL_GAME_OF_LIFE, &level.game_of_life[3], TEXT_GAME_OF_LIFE_4 }, - { EL_BIOMAZE, &level.biomaze[0], TEXT_GAME_OF_LIFE_1 }, - { EL_BIOMAZE, &level.biomaze[1], TEXT_GAME_OF_LIFE_2 }, - { EL_BIOMAZE, &level.biomaze[2], TEXT_GAME_OF_LIFE_3 }, - { EL_BIOMAZE, &level.biomaze[3], TEXT_GAME_OF_LIFE_4 }, - { EL_EMC_ANDROID, &level.android_move_time, TEXT_MOVE_SPEED }, - { EL_EMC_ANDROID, &level.android_clone_time, TEXT_CLONE_SPEED }, - { EL_EMC_MAGIC_BALL, &level.ball_time, TEXT_BALL_DELAY }, - { EL_EMC_LENSES, &level.lenses_score, TEXT_COLLECTING }, - { EL_EMC_MAGNIFIER, &level.magnify_score, TEXT_COLLECTING }, - { EL_SPRING, &level.slurp_score, TEXT_SLURPING }, - { EL_SPRING_LEFT, &level.slurp_score, TEXT_SLURPING }, - { EL_SPRING_RIGHT, &level.slurp_score, TEXT_SLURPING }, - { EL_EMC_LENSES, &level.lenses_time, TEXT_DURATION }, - { EL_EMC_MAGNIFIER, &level.magnify_time, TEXT_DURATION }, - { EL_MM_FUSE_ACTIVE, &level.mm_time_fuse, TEXT_DELAY_OFF }, - { EL_MM_BOMB, &level.mm_time_bomb, TEXT_DELAY_EXPLODING }, - { EL_MM_GRAY_BALL, &level.mm_time_ball, TEXT_DELAY_CHANGING }, - { EL_MM_STEEL_BLOCK, &level.mm_time_block, TEXT_DELAY_MOVING }, - { EL_MM_WOODEN_BLOCK, &level.mm_time_block, TEXT_DELAY_MOVING }, - - { -1, NULL, NULL } + { EL_BD_AMOEBA_2, &level.bd_amoeba_2_slow_growth_rate, TEXT_AMOEBA_SLOW_RATE, + 0, 100 }, + { EL_BD_AMOEBA_2, &level.bd_amoeba_2_fast_growth_rate, TEXT_AMOEBA_FAST_RATE, + 0, 100 }, + { EL_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION }, + { EL_BD_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION }, + { EL_DC_MAGIC_WALL, &level.time_magic_wall, TEXT_DURATION }, + { EL_ROBOT_WHEEL, &level.time_wheel, TEXT_DURATION }, + { EL_TIMEGATE_SWITCH, &level.time_timegate, TEXT_DURATION }, + { EL_DC_TIMEGATE_SWITCH, &level.time_timegate, TEXT_DURATION }, + { EL_LIGHT_SWITCH, &level.time_light, TEXT_DURATION }, + { EL_LIGHT_SWITCH_ACTIVE, &level.time_light, TEXT_DURATION }, + { EL_SHIELD_NORMAL, &level.shield_normal_time, TEXT_DURATION }, + { EL_SHIELD_DEADLY, &level.shield_deadly_time, TEXT_DURATION }, + { EL_BD_CLOCK, &level.bd_clock_extra_time, TEXT_TIME_BONUS }, + { 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 }, + { EL_GAME_OF_LIFE, &level.game_of_life[1], TEXT_GAME_OF_LIFE_2,0,8 }, + { EL_GAME_OF_LIFE, &level.game_of_life[2], TEXT_GAME_OF_LIFE_3,0,8 }, + { EL_GAME_OF_LIFE, &level.game_of_life[3], TEXT_GAME_OF_LIFE_4,0,8 }, + { EL_BIOMAZE, &level.biomaze[0], TEXT_GAME_OF_LIFE_1,0,8 }, + { EL_BIOMAZE, &level.biomaze[1], TEXT_GAME_OF_LIFE_2,0,8 }, + { EL_BIOMAZE, &level.biomaze[2], TEXT_GAME_OF_LIFE_3,0,8 }, + { EL_BIOMAZE, &level.biomaze[3], TEXT_GAME_OF_LIFE_4,0,8 }, + { EL_EMC_ANDROID, &level.android_move_time, TEXT_MOVE_SPEED }, + { EL_EMC_ANDROID, &level.android_clone_time, TEXT_CLONE_SPEED }, + { EL_EMC_MAGIC_BALL, &level.ball_time, TEXT_BALL_DELAY }, + { EL_EMC_LENSES, &level.lenses_score, TEXT_COLLECTING }, + { EL_EMC_MAGNIFIER, &level.magnify_score, TEXT_COLLECTING }, + { EL_SPRING, &level.slurp_score, TEXT_SLURPING }, + { EL_SPRING_LEFT, &level.slurp_score, TEXT_SLURPING }, + { EL_SPRING_RIGHT, &level.slurp_score, TEXT_SLURPING }, + { EL_EMC_LENSES, &level.lenses_time, TEXT_DURATION }, + { EL_EMC_MAGNIFIER, &level.magnify_time, TEXT_DURATION }, + { EL_MM_FUSE_ACTIVE, &level.mm_time_fuse, TEXT_DELAY_OFF }, + { EL_MM_BOMB, &level.mm_time_bomb, TEXT_DELAY_EXPLODING }, + { EL_MM_GRAY_BALL, &level.mm_time_ball, TEXT_DELAY_CHANGING }, + { EL_MM_STEEL_BLOCK, &level.mm_time_block, TEXT_DELAY_MOVING }, + { EL_MM_WOODEN_BLOCK, &level.mm_time_block, TEXT_DELAY_MOVING }, + + { -1, NULL, NULL } }; static boolean checkPropertiesConfig(int element) @@ -11107,27 +11089,14 @@ static void DrawPropertiesConfig(void) counterbutton_info[counter_id].y = ED_ELEMENT_SETTINGS_YPOS(3 + num_element_counters); - counterbutton_info[counter_id].value = elements_with_counter[i].value; + counterbutton_info[counter_id].value = elements_with_counter[i].value; counterbutton_info[counter_id].text_right = elements_with_counter[i].text; + counterbutton_info[counter_id].min_value = elements_with_counter[i].min_value; + counterbutton_info[counter_id].max_value = elements_with_counter[i].max_value; - if (properties_element == EL_GAME_OF_LIFE || - properties_element == EL_BIOMAZE) - { - counterbutton_info[counter_id].min_value = 0; // min neighbours - counterbutton_info[counter_id].max_value = 8; // max neighbours - } - else if (strEqual(elements_with_counter[i].text, TEXT_AMOEBA_SLOW_RATE) || - strEqual(elements_with_counter[i].text, TEXT_AMOEBA_FAST_RATE)) - { - counterbutton_info[counter_id].min_value = 0; // min percent - counterbutton_info[counter_id].max_value = 100; // max percent - } - else - { - // !!! CHANGE THIS FOR CERTAIN ELEMENTS !!! - counterbutton_info[counter_id].min_value = MIN_SCORE; - counterbutton_info[counter_id].max_value = MAX_SCORE; - } + // default: counter values between 0 and 999 + if (counterbutton_info[counter_id].max_value == 0) + counterbutton_info[counter_id].max_value = 999; MapCounterButtons(counter_id);