X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.c;h=423570ddf4536407ecee19db0cf22e5045236797;hb=d6877ad6d36ea50b9ae41afe3586c5b539aa60e4;hp=5604ad21d818440f5860122d1ac65ced0d307b75;hpb=41e8d55b767c898f20c29a1b0b8d2ef8840be2f5;p=rocksndiamonds.git diff --git a/src/libgame/system.c b/src/libgame/system.c index 5604ad21..423570dd 100644 --- a/src/libgame/system.c +++ b/src/libgame/system.c @@ -23,6 +23,7 @@ #include "system.h" #include "sound.h" #include "setup.h" +#include "joystick.h" #include "misc.h" @@ -35,6 +36,7 @@ struct OptionInfo options; struct VideoSystemInfo video; struct AudioSystemInfo audio; struct GfxInfo gfx; +struct ArtworkInfo artwork; struct JoystickInfo joystick; struct SetupInfo setup; @@ -111,7 +113,9 @@ void ClosePlatformDependantStuff(void) void InitProgramInfo(char *unix_userdata_directory, char *program_title, char *window_title, char *icon_title, char *x11_icon_basename, char *x11_iconmask_basename, - char *msdos_pointer_basename) + char *msdos_pointer_basename, + char *cookie_prefix, char *filename_prefix, + int program_version) { char *x11_icon_filename = getPath2(options.graphics_directory, x11_icon_basename); @@ -132,6 +136,13 @@ void InitProgramInfo(char *unix_userdata_directory, char *program_title, program.x11_icon_filename = x11_icon_filename; program.x11_iconmask_filename = x11_iconmask_filename; program.msdos_pointer_filename = msdos_pointer_filename; + + program.cookie_prefix = cookie_prefix; + program.filename_prefix = filename_prefix; + + program.version_major = VERSION_MAJOR(program_version); + program.version_minor = VERSION_MINOR(program_version); + program.version_patch = VERSION_PATCH(program_version); } void InitGfxFieldInfo(int sx, int sy, int sxsize, int sysize, @@ -582,10 +593,9 @@ inline boolean ChangeVideoModeIfNeeded(boolean fullscreen) return fullscreen; } -Bitmap *LoadImage(char *basename) +Bitmap *LoadImage(char *filename) { Bitmap *new_bitmap; - char *filename = getPath2(options.graphics_directory, basename); #if defined(TARGET_SDL) new_bitmap = SDLLoadImage(filename); @@ -593,8 +603,6 @@ Bitmap *LoadImage(char *basename) new_bitmap = X11LoadImage(filename); #endif - free(filename); - return new_bitmap; } @@ -623,10 +631,10 @@ inline void OpenAudio(void) #if defined(TARGET_SDL) SDLOpenAudio(); -#elif defined(PLATFORM_MSDOS) - MSDOSOpenAudio(); #elif defined(PLATFORM_UNIX) UnixOpenAudio(); +#elif defined(PLATFORM_MSDOS) + MSDOSOpenAudio(); #endif } @@ -634,10 +642,10 @@ inline void CloseAudio(void) { #if defined(TARGET_SDL) SDLCloseAudio(); -#elif defined(PLATFORM_MSDOS) - MSDOSCloseAudio(); #elif defined(PLATFORM_UNIX) UnixCloseAudio(); +#elif defined(PLATFORM_MSDOS) + MSDOSCloseAudio(); #endif audio.sound_enabled = FALSE; @@ -727,9 +735,39 @@ inline boolean CheckCloseWindowEvent(ClientMessageEvent *event) } -inline void dummy(void) +/* ========================================================================= */ +/* joystick functions */ +/* ========================================================================= */ + +inline void InitJoysticks() { -#ifdef TARGET_SDL -#else + int i; + +#ifdef NO_JOYSTICK + return; /* joysticks generally deactivated by compile-time directive */ +#endif + + /* always start with reliable default values */ + joystick.status = JOYSTICK_NOT_AVAILABLE; + for (i=0; i