{ "bdx_bomb.collecting", "pong.wav" },
{ "bdx_bomb.dropping", "zisch.wav" },
{ "bdx_magic_wall.active", "miep.wav" },
+ { "bdx_amoeba_1.growing", "amoebe.wav" },
+ { "bdx_amoeba_1.growing.mode_loop", "false" },
{ "bdx_amoeba_1.active", UNDEFINED_FILENAME },
- { "bdx_amoeba_1.other", UNDEFINED_FILENAME },
+ { "bdx_amoeba_1.other", "miep.wav" },
+ { "bdx_amoeba_2.growing", "amoebe.wav" },
+ { "bdx_amoeba_2.growing.mode_loop", "false" },
{ "bdx_amoeba_2.active", UNDEFINED_FILENAME },
+ { "bdx_amoeba_2.other", "miep.wav" },
{ "bdx_pneumatic_hammer.active", "hammer.wav" },
{ "bdx_covered.active", "jingle.wav" },
{ "bdx_inbox.opening", "crash.wav" },
O_STONE
};
- boolean amoeba_sound, magic_sound;
+ boolean amoeba_1_sound, amoeba_2_sound, magic_sound;
gd_cave_clear_sounds(cave);
case 0:
// let this be up. numbers indifferent.
if (amoeba_eats(cave, x, y, GD_MV_UP))
+ {
store_dir(cave, x, y, GD_MV_UP, O_AMOEBA);
+ gd_sound_play(cave, GD_S_AMOEBA_GROWING, O_AMOEBA, -1, -1);
+ }
break;
case 1:
// down
if (amoeba_eats(cave, x, y, GD_MV_DOWN))
+ {
store_dir(cave, x, y, GD_MV_DOWN, O_AMOEBA);
+ gd_sound_play(cave, GD_S_AMOEBA_GROWING, O_AMOEBA, -1, -1);
+ }
break;
case 2:
// left
if (amoeba_eats(cave, x, y, GD_MV_LEFT))
+ {
store_dir(cave, x, y, GD_MV_LEFT, O_AMOEBA);
+ gd_sound_play(cave, GD_S_AMOEBA_GROWING, O_AMOEBA, -1, -1);
+ }
break;
case 3:
// right
if (amoeba_eats(cave, x, y, GD_MV_RIGHT))
+ {
store_dir(cave, x, y, GD_MV_RIGHT, O_AMOEBA);
+ gd_sound_play(cave, GD_S_AMOEBA_GROWING, O_AMOEBA, -1, -1);
+ }
break;
}
}
case 0:
// let this be up. numbers indifferent.
if (amoeba_eats(cave, x, y, GD_MV_UP))
+ {
store_dir(cave, x, y, GD_MV_UP, O_AMOEBA_2);
+ gd_sound_play(cave, GD_S_AMOEBA_2_GROWING, O_AMOEBA_2, -1, -1);
+ }
break;
case 1:
// down
if (amoeba_eats(cave, x, y, GD_MV_DOWN))
+ {
store_dir(cave, x, y, GD_MV_DOWN, O_AMOEBA_2);
+ gd_sound_play(cave, GD_S_AMOEBA_2_GROWING, O_AMOEBA_2, -1, -1);
+ }
break;
case 2:
// left
if (amoeba_eats(cave, x, y, GD_MV_LEFT))
+ {
store_dir(cave, x, y, GD_MV_LEFT, O_AMOEBA_2);
+ gd_sound_play(cave, GD_S_AMOEBA_2_GROWING, O_AMOEBA_2, -1, -1);
+ }
break;
case 3:
// right
if (amoeba_eats(cave, x, y, GD_MV_RIGHT))
+ {
store_dir(cave, x, y, GD_MV_RIGHT, O_AMOEBA_2);
+ gd_sound_play(cave, GD_S_AMOEBA_2_GROWING, O_AMOEBA_2, -1, -1);
+ }
break;
}
}
// SPECIAL SOUNDS
// cave 3 sounds. precedence is controlled by the sound_play function.
- // but we have to check amoeba&magic together as they had a different gritty sound when mixed
+ // but we have to check amoeba & magic together as they had a different gritty sound when mixed
if (found_water)
gd_sound_play(cave, GD_S_WATER, O_WATER, -1, -1);
magic_sound = (cave->magic_wall_state == GD_MW_ACTIVE &&
cave->magic_wall_sound);
- amoeba_sound = (cave->hatched && cave->amoeba_sound &&
- ((amoeba_count > 0 && cave->amoeba_state == GD_AM_AWAKE) ||
- (amoeba_2_count > 0 && cave->amoeba_2_state == GD_AM_AWAKE)));
+ amoeba_1_sound = (cave->hatched && cave->amoeba_sound &&
+ amoeba_count > 0 && cave->amoeba_state == GD_AM_AWAKE);
- if (amoeba_sound && magic_sound)
+ amoeba_2_sound = (cave->hatched && cave->amoeba_sound &&
+ amoeba_2_count > 0 && cave->amoeba_2_state == GD_AM_AWAKE);
+
+ if (amoeba_1_sound && magic_sound)
{
gd_sound_play(cave, GD_S_AMOEBA_MAGIC, O_AMOEBA, -1, -1);
}
+ else if (amoeba_2_sound && magic_sound)
+ {
+ gd_sound_play(cave, GD_S_AMOEBA_2_MAGIC, O_AMOEBA_2, -1, -1);
+ }
else
{
- if (amoeba_sound)
+ if (amoeba_1_sound)
gd_sound_play(cave, GD_S_AMOEBA, O_AMOEBA, -1, -1);
+ else if (amoeba_2_sound)
+ gd_sound_play(cave, GD_S_AMOEBA_2, O_AMOEBA_2, -1, -1);
else if (magic_sound)
gd_sound_play(cave, GD_S_MAGIC_WALL, O_MAGIC_WALL, -1, -1);
}
if (cave->hatched)
{
- if ((amoeba_count > 0 && cave->amoeba_state == GD_AM_AWAKE) ||
- (amoeba_2_count > 0 && cave->amoeba_2_state == GD_AM_AWAKE))
+ if (amoeba_count > 0 && cave->amoeba_state == GD_AM_AWAKE)
play_sound_of_element(cave, O_AMOEBA, -1, -1);
+ else if (amoeba_2_count > 0 && cave->amoeba_2_state == GD_AM_AWAKE)
+ play_sound_of_element(cave, O_AMOEBA_2, -1, -1);
}
{ GD_S_SWITCH_EXPANDING, 2, 10 },
{ GD_S_SWITCH_CONVEYOR, 2, 10 },
{ GD_S_SWITCH_REPLICATOR, 2, 10 },
+ { GD_S_AMOEBA_GROWING, 2, 10 },
+ { GD_S_AMOEBA_2_GROWING, 2, 10 },
// channel 3 sounds.
{ GD_S_AMOEBA, 3, 30, GD_SP_LOOPED },
+ { GD_S_AMOEBA_2, 3, 30, GD_SP_LOOPED },
{ GD_S_AMOEBA_MAGIC, 3, 40, GD_SP_LOOPED },
+ { GD_S_AMOEBA_2_MAGIC, 3, 40, GD_SP_LOOPED },
{ GD_S_MAGIC_WALL, 3, 35, GD_SP_LOOPED },
{ GD_S_COVERING, 3, 100, GD_SP_LOOPED },
{ GD_S_PNEUMATIC_HAMMER, 3, 50, GD_SP_LOOPED },