rnd-19981205-2
[rocksndiamonds.git] / src / msdos.c
index 6c6c525ca7c42949fea52af7a4a435c403a5303a..efcd80205918fd491e3524139bab1884c4fd071f 100644 (file)
@@ -21,6 +21,7 @@
 #include "files.h"
 #include "joystick.h"
 #include "image.h"
+#include "pcx.h"
 
 /* allegro driver declarations */
 DECLARE_GFX_DRIVER_LIST(GFX_DRIVER_VBEAF GFX_DRIVER_VESA2L GFX_DRIVER_VESA1)
@@ -51,9 +52,11 @@ static int global_colormap_entries_used = 0;
 
 boolean wait_for_vsync;
 
+/*
 extern int playing_sounds;
 extern struct SoundControl playlist[MAX_SOUNDS_PLAYING];
 extern struct SoundControl emptySoundControl;
+*/
 
 static BITMAP *Read_PCX_to_AllegroBitmap(char *);
 
@@ -85,7 +88,7 @@ static void allegro_drivers()
   joystick_event = FALSE;
 
   reserve_voices(MAX_SOUNDS_PLAYING, 0);
-  if (install_sound(DIGI_AUTODETECT, MIDI_NONE, "ROCKS.SND") == -1)
+  if (install_sound(DIGI_AUTODETECT, MIDI_NONE, NULL) == -1)
     if (install_sound(DIGI_SB, MIDI_NONE, NULL) == -1)
       sound_status = SOUND_OFF;
 }
@@ -738,14 +741,18 @@ int XPending(Display *display)
   /* mouse button event */
   if (mouse_b != last_mouse_b)
   {
-    for (i=1; i<4; i<<=1)
+    for (i=0; i<3; i++)                /* check all three mouse buttons */
     {
-      if ((last_mouse_b & i) != (mouse_b & i))
+      int bitmask = (1 << i);
+
+      if ((last_mouse_b & bitmask) != (mouse_b & bitmask))
       {
+       int mapping[3] = { 1, 3, 2 };
+
        pending_events++;
         xbutton = (XButtonEvent *)&event_buffer[pending_events];
-        xbutton->type = (mouse_b & i ? ButtonPress : ButtonRelease);
-        xbutton->button = i;
+        xbutton->type = (mouse_b & bitmask ? ButtonPress : ButtonRelease);
+        xbutton->button = mapping[i];
        xbutton->x = mouse_x - display->screens[display->default_screen].x;
        xbutton->y = mouse_y - display->screens[display->default_screen].y;
       }
@@ -761,57 +768,6 @@ KeySym XLookupKeysym(XKeyEvent *key_event, int index)
   return key_event->state;
 }
 
-void sound_handler(struct SoundControl snd_ctrl)
-{
-  int i;
-
-  if (snd_ctrl.fade_sound)
-  {
-    if (!playing_sounds)
-      return;
-
-    for (i=0; i<MAX_SOUNDS_PLAYING; i++)
-      if ((snd_ctrl.stop_all_sounds || playlist[i].nr == snd_ctrl.nr) &&
-         !playlist[i].fade_sound)
-      {
-       playlist[i].fade_sound = TRUE;
-       if (voice_check(playlist[i].voice))
-         voice_ramp_volume(playlist[i].voice, 1000, 0);
-       playlist[i].loop = PSND_NO_LOOP;
-      }
-  }
-  else if (snd_ctrl.stop_all_sounds)
-  {
-    if (!playing_sounds)
-      return;
-    SoundServer_StopAllSounds();
-  }
-  else if (snd_ctrl.stop_sound)
-  {
-    if (!playing_sounds)
-      return;
-    SoundServer_StopSound(snd_ctrl.nr);
-  }
-
-  for (i=0; i<MAX_SOUNDS_PLAYING; i++)
-  {
-    if (!playlist[i].active || playlist[i].loop)
-      continue;
-
-    playlist[i].playingpos = voice_get_position(playlist[i].voice);
-    playlist[i].volume = voice_get_volume(playlist[i].voice);
-    if (playlist[i].playingpos == -1 || !playlist[i].volume)
-    {
-      deallocate_voice(playlist[i].voice);
-      playlist[i] = emptySoundControl;
-      playing_sounds--;
-    }
-  }
-
-  if (snd_ctrl.active)
-    SoundServer_InsertNewSound(snd_ctrl);
-}
-
 void NetworkServer(int port, int serveronly)
 {
   Error(ERR_WARN, "networking not supported in DOS version");