X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Flibgame%2Fsystem.c;h=7cebdb8fa727a1c5e4f8330dbe02568f115e7cc2;hb=fa2a77aa4b53bb786e67f35d6c46f759ebe7823d;hp=0499199253932189b2aea2da1fcf49f3e651c1bf;hpb=884db54d739f5838243315f390d28634cb99a7d9;p=rocksndiamonds.git diff --git a/src/libgame/system.c b/src/libgame/system.c index 04991992..7cebdb8f 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -1,7 +1,7 @@ /*********************************************************** * Artsoft Retro-Game Library * *----------------------------------------------------------* -* (c) 1994-2001 Artsoft Entertainment * +* (c) 1994-2002 Artsoft Entertainment * * Holger Schemel * * Detmolder Strasse 189 * * 33604 Bielefeld * @@ -94,6 +94,9 @@ void InitPlatformDependantStuff(void) #if !defined(PLATFORM_UNIX) program.userdata_directory = "userdata"; +#endif + +#if defined(PLATFORM_MSDOS) initErrorFile(); #endif @@ -105,7 +108,7 @@ void InitPlatformDependantStuff(void) void ClosePlatformDependantStuff(void) { -#if !defined(PLATFORM_UNIX) +#if defined(PLATFORM_MSDOS) dumpErrorFile(); #endif } @@ -354,8 +357,10 @@ inline boolean DrawingDeactivated(int x, int y, int width, int height) { if (gfx.draw_deactivation_mask != REDRAW_NONE) { - if ((gfx.draw_deactivation_mask & REDRAW_FIELD) && - x < gfx.sx + gfx.sxsize) + if (gfx.draw_deactivation_mask & REDRAW_ALL) + return TRUE; + else if ((gfx.draw_deactivation_mask & REDRAW_FIELD) && + x < gfx.sx + gfx.sxsize) return TRUE; else if ((gfx.draw_deactivation_mask & REDRAW_DOORS) && x > gfx.dx) @@ -718,7 +723,8 @@ void ReloadCustomImage(Bitmap *bitmap, char *basename) if (bitmap->width != new_bitmap->width || bitmap->height != new_bitmap->height) { - Error(ERR_WARN, "ReloadCustomImage: new image has wrong dimensions"); + Error(ERR_WARN, "ReloadCustomImage: new image '%s' has wrong dimensions", + filename); FreeBitmap(new_bitmap); return; } @@ -742,13 +748,14 @@ inline void OpenAudio(void) audio.sound_enabled = FALSE; audio.sound_deactivated = FALSE; - audio.soundserver_pipe[0] = audio.soundserver_pipe[1] = 0; - audio.soundserver_pid = -1; + audio.mixer_pipe[0] = audio.mixer_pipe[1] = 0; + audio.mixer_pid = -1; audio.device_name = NULL; - audio.device_fd = 0; + audio.device_fd = -1; - audio.channels = 0; + audio.num_channels = 0; audio.music_channel = 0; + audio.first_sound_channel = 0; #if defined(TARGET_SDL) SDLOpenAudio(); @@ -780,15 +787,6 @@ inline void SetAudioMode(boolean enabled) audio.sound_enabled = enabled; } -#if 0 -inline void SetAudioReloadFunctions(void (*func_reload_sounds)(void), - void (*func_reload_music)(void)) -{ - audio.func_reload_sounds = func_reload_sounds; - audio.func_reload_music = func_reload_music; -} -#endif - /* ========================================================================= */ /* event functions */ @@ -830,7 +828,9 @@ inline Key GetEventKey(KeyEvent *event, boolean with_modifiers) (int)SDL_GetModState()); #endif - if (with_modifiers && event->keysym.unicode != 0) + if (with_modifiers && + event->keysym.unicode > 0x0000 && + event->keysym.unicode < 0x2000) return event->keysym.unicode; else return event->keysym.sym;