X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmsdos.c;h=b64b9fab6ea36349c54a43f72d239d2409c1cad9;hb=6b83db8bee17d70c4e89dc3e3b703b7032aa5f27;hp=6c6c525ca7c42949fea52af7a4a435c403a5303a;hpb=34efaa3925a28cb95ecb05bf2c693c16f6edfe2f;p=rocksndiamonds.git diff --git a/src/msdos.c b/src/msdos.c index 6c6c525c..b64b9fab 100644 --- a/src/msdos.c +++ b/src/msdos.c @@ -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; } @@ -522,7 +525,7 @@ static BITMAP *Read_PCX_to_AllegroBitmap(char *filename) if ((bitmap = Image_to_AllegroBitmap(image)) == NULL) return NULL; - set_pallete(global_colormap); + set_palette(global_colormap); return bitmap; } @@ -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,55 +768,48 @@ KeySym XLookupKeysym(XKeyEvent *key_event, int index) return key_event->state; } -void sound_handler(struct SoundControl snd_ctrl) +int XLookupString(XKeyEvent *key_event, char *buffer, int buffer_size, + KeySym *key, XComposeStatus *compose) { - int i; + *key = key_event->state; + return 0; +} - if (snd_ctrl.fade_sound) - { - if (!playing_sounds) - return; +void XSetForeground(Display *display, GC gc, unsigned long pixel) +{ + XGCValues *gcv = (XGCValues *)gc; - for (i=0; iforeground = pixel; +} + +void XDrawLine(Display *display, Drawable d, GC gc, + int x1, int y1, int x2, int y2) +{ + XGCValues *gcv = (XGCValues *)gc; + boolean mouse_off = FALSE; + + if ((BITMAP *)d == video_bitmap) { - if (!playing_sounds) - return; - SoundServer_StopSound(snd_ctrl.nr); + x1 += display->screens[display->default_screen].x; + y1 += display->screens[display->default_screen].y; + x2 += display->screens[display->default_screen].x; + y2 += display->screens[display->default_screen].y; + freeze_mouse_flag = TRUE; + mouse_off = hide_mouse(display, MIN(x1, x2), MIN(y1, y2), + MAX(x1, x2) - MIN(x1, x2), + MAX(y1, y2) - MIN(y1, y2)); } - for (i=0; iforeground); - 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 (mouse_off) + unhide_mouse(display); - if (snd_ctrl.active) - SoundServer_InsertNewSound(snd_ctrl); + freeze_mouse_flag = FALSE; +} + +void XDestroyImage(XImage *ximage) +{ } void NetworkServer(int port, int serveronly)