fixed playing sounds at wrap-around BD cave positions
authorHolger Schemel <holger.schemel@virtion.de>
Sun, 8 Dec 2024 17:18:03 +0000 (18:18 +0100)
committerHolger Schemel <holger.schemel@virtion.de>
Sun, 8 Dec 2024 17:18:19 +0000 (18:18 +0100)
This change completes commit daf84901, which only fixed sounds at
wrap-around BD cave positions when using the non-native sound engine.

src/game_bd/bd_sound.c

index 9aaddd0ed4a77b5785e5caec6b6045aa97804a36..55654f2c7dd296fb3a6099a051e82143a41613d8 100644 (file)
@@ -478,6 +478,10 @@ static void gd_sound_info_to_play(int channel, int x, int y, int element, int so
 // plays sound in a cave
 void gd_sound_play(GdCave *cave, GdSound sound, GdElement element, int x, int y)
 {
+  // fix wrap-around cave positions
+  x = (x + cave->w) % cave->w;
+  y = (y + cave->h) % cave->h;
+
   if (sound == GD_S_NONE)
     return;
 
@@ -495,10 +499,6 @@ void gd_sound_play(GdCave *cave, GdSound sound, GdElement element, int x, int y)
 
   if (!game.use_native_bd_sound_engine)
   {
-    // fix wrap-around cave positions for non-native sound engine
-    x = (x + cave->w) % cave->w;
-    y = (y + cave->h) % cave->h;
-
     // when not using native sound engine, just play the sound
     PlayLevelSound_BD(x, y, element, sound);