improved clearing event queue after fading and after door/envelope requests
[rocksndiamonds.git] / src / tools.c
index db2e193a86e80c45197cc96773c87ce532c51b24..4bd3b8d9196f83518af4bf5d4797a8c1b54c741d 100644 (file)
@@ -982,7 +982,7 @@ static void FadeExt(int fade_mask, int fade_mode, int fade_type)
 
   redraw_mask &= ~fade_mask;
 
-  ClearEventQueue();
+  ClearAutoRepeatKeyEvents();
 }
 
 static void SetScreenStates_BeforeFadingIn()
@@ -2803,7 +2803,7 @@ void AnimateEnvelope(int envelope_nr, int anim_mode, int action)
     SkipUntilDelayReached(&anim_delay, anim_delay_value, &i, last_frame);
   }
 
-  ClearEventQueue();
+  ClearAutoRepeatKeyEvents();
 }
 
 void ShowEnvelope(int envelope_nr)
@@ -3088,7 +3088,7 @@ void AnimateEnvelopeRequest(int anim_mode, int action)
     SkipUntilDelayReached(&anim_delay, anim_delay_value, &i, last_frame);
   }
 
-  ClearEventQueue();
+  ClearAutoRepeatKeyEvents();
 }
 
 void ShowEnvelopeRequest(char *text, unsigned int req_state, int action)
@@ -5429,7 +5429,7 @@ unsigned int MoveDoor(unsigned int door_state)
   DrawMaskedBorder(REDRAW_DOOR_1);
   DrawMaskedBorder(REDRAW_DOOR_2);
 
-  ClearEventQueue();
+  ClearAutoRepeatKeyEvents();
 
   return (door1 | door2);
 }
@@ -9215,7 +9215,10 @@ void PlayMenuMusicExt(int music)
   if (!setup.sound_music)
     return;
 
-  PlayMusic(music);
+  if (IS_LOOP_MUSIC(music))
+    PlayMusicLoop(music);
+  else
+    PlayMusic(music);
 }
 
 void PlayMenuMusic()
@@ -9391,6 +9394,13 @@ void ResetFontStatus()
   SetFontStatus(-1);
 }
 
+void SetLevelSetInfo(char *identifier, int level_nr)
+{
+  setString(&levelset.identifier, identifier);
+
+  levelset.level_nr = level_nr;
+}
+
 boolean CheckIfPlayfieldViewportHasChanged()
 {
   // if game status has not changed, playfield viewport has not changed either