- if (action == SND_MOVING)
- {
- if (element == EL_KAEFER)
- PlaySoundLevel(x, y, SND_BUG_MOVING);
- else if (element == EL_FLIEGER)
- PlaySoundLevel(x, y, SND_SPACESHIP_MOVING);
- else if (element == EL_BUTTERFLY)
- PlaySoundLevel(x, y, SND_BD_BUTTERFLY_MOVING);
- else if (element == EL_FIREFLY)
- PlaySoundLevel(x, y, SND_BD_FIREFLY_MOVING);
- else if (element == EL_SP_SNIKSNAK)
- PlaySoundLevel(x, y, SND_SP_SNIKSNAK_MOVING);
- else if (element == EL_SP_ELECTRON)
- PlaySoundLevel(x, y, SND_SP_ELECTRON_MOVING);
- else if (element == EL_MAMPFER)
- PlaySoundLevel(x, y, SND_YAMYAM_MOVING);
- else if (element == EL_MAMPFER2)
- PlaySoundLevel(x, y, SND_DARK_YAMYAM_MOVING);
- else if (element == EL_BALLOON)
- PlaySoundLevel(x, y, SND_BALLOON_MOVING);
- else if (element == EL_SPRING_MOVING)
- PlaySoundLevel(x, y, SND_SPRING_MOVING);
- else if (element == EL_MOLE)
- PlaySoundLevel(x, y, SND_MOLE_MOVING);
- else if (element == EL_SONDE)
- PlaySoundLevel(x, y, SND_SATELLITE_MOVING);
- else if (element == EL_PACMAN)
- PlaySoundLevel(x, y, SND_PACMAN_MOVING);
- else if (element == EL_PINGUIN)
- PlaySoundLevel(x, y, SND_PENGUIN_MOVING);
- else if (element == EL_SCHWEIN)
- PlaySoundLevel(x, y, SND_PIG_MOVING);
- else if (element == EL_DRACHE)
- PlaySoundLevel(x, y, SND_DRAGON_MOVING);
- else if (element == EL_ROBOT)
- PlaySoundLevel(x, y, SND_ROBOT_STEPPING);
- }
- else if (action == SND_WAITING)
- {
- if (element == EL_KAEFER)
- PlaySoundLevel(x, y, SND_BUG_WAITING);
- else if (element == EL_FLIEGER)
- PlaySoundLevel(x, y, SND_SPACESHIP_WAITING);
- else if (element == EL_BUTTERFLY)
- PlaySoundLevel(x, y, SND_BD_BUTTERFLY_WAITING);
- else if (element == EL_FIREFLY)
- PlaySoundLevel(x, y, SND_BD_FIREFLY_WAITING);
- else if (element == EL_SP_SNIKSNAK)
- PlaySoundLevel(x, y, SND_SP_SNIKSNAK_WAITING);
- else if (element == EL_SP_ELECTRON)
- PlaySoundLevel(x, y, SND_SP_ELECTRON_WAITING);
- else if (element == EL_MAMPFER)
- PlaySoundLevel(x, y, SND_YAMYAM_WAITING);
- else if (element == EL_MAMPFER2)
- PlaySoundLevel(x, y, SND_DARK_YAMYAM_WAITING);
- else if (element == EL_BALLOON)
- PlaySoundLevel(x, y, SND_BALLOON_WAITING);
- else if (element == EL_MOLE)
- PlaySoundLevel(x, y, SND_MOLE_WAITING);
- else if (element == EL_SONDE)
- PlaySoundLevel(x, y, SND_SATELLITE_WAITING);
- else if (element == EL_PACMAN)
- PlaySoundLevel(x, y, SND_PACMAN_WAITING);
- else if (element == EL_PINGUIN)
- PlaySoundLevel(x, y, SND_PENGUIN_WAITING);
- else if (element == EL_SCHWEIN)
- PlaySoundLevel(x, y, SND_PIG_WAITING);
- else if (element == EL_DRACHE)
- PlaySoundLevel(x, y, SND_DRAGON_WAITING);
- else if (element == EL_ROBOT)
- PlaySoundLevel(x, y, SND_ROBOT_WAITING);
- }
+static void PlaySoundLevelAction(int x, int y, int action)
+{
+ PlaySoundLevelElementAction(x, y, Feld[x][y], action);
+}
+
+static void PlaySoundLevelElementAction(int x, int y, int element, int action)
+{
+ int sound_effect = element_info[element].sound[action];
+
+ if (sound_effect != SND_UNDEFINED)
+ PlaySoundLevel(x, y, sound_effect);
+}
+
+static void PlaySoundLevelActionIfLoop(int x, int y, int action)
+{
+ int sound_effect = element_info[Feld[x][y]].sound[action];
+
+ if (sound_effect != SND_UNDEFINED && IS_LOOP_SOUND(sound_effect))
+ PlaySoundLevel(x, y, sound_effect);
+}
+
+static void StopSoundLevelActionIfLoop(int x, int y, int action)
+{
+ int sound_effect = element_info[Feld[x][y]].sound[action];
+
+ if (sound_effect != SND_UNDEFINED && IS_LOOP_SOUND(sound_effect))
+ StopSoundExt(sound_effect, SND_CTRL_STOP_SOUND);