- /* 
-  * src/system.c 
-  * 
-  * Copyright (C) 1998-2002 BigOrno (bigorno@bigorno.net). All rights reserved. 
-  * 
-  * The use and distribution terms for this software are contained in the file 
-  * named README, which can be found in the root of this distribution. By 
-  * using this software in any fashion, you are agreeing to be bound by the 
-  * terms of this license. 
-  * 
-  * You must not remove this notice, or any other, from this software. 
-  */ 
-   
- #include <SDL.h> 
-   
- #include <signal.h> 
-   
- #include "system.h" 
- #ifdef WIN32 
- #include "windows.h" 
- char *sys_getbasepath (void) 
- { 
-    static char app_path[1024] = ""; 
-    if (app_path[0] == 0) 
-    { 
-       GetModuleFileName (NULL, app_path, 1024); 
-       if (strrchr (- app_path , '\\') !=-  NULL )
 
-    } 
-    return (app_path); 
- } 
- #else // !WIN32 
- #ifdef __APPLE__ 
- #include <CoreFoundation/CoreFoundation.h> 
- #include <dlfcn.h> 
- void MessageBox (void *handle, char *msg, char *title, int buttons) 
- { 
-    const void *keys[2]; 
-    const void *values[2]; 
-    SInt32 result; 
-   
-    if (title == NULL) 
-       title = ""; 
-   
-    keys[0] = kCFUserNotificationAlertHeaderKey; 
-    values[0] = CFStringCreateWithCString (kCFAllocatorDefault, title, kCFStringEncodingUTF8);; 
-   
-    keys[1] = kCFUserNotificationAlertMessageKey; 
-    values[1] = CFStringCreateWithCString (kCFAllocatorDefault, msg, kCFStringEncodingUTF8); 
-   
-    result = 0; 
-    CFUserNotificationCreate 
-    ( 
-       kCFAllocatorDefault, 
-       0, 
-       kCFUserNotificationPlainAlertLevel, 
-       &result, 
-       CFDictionaryCreate 
-       ( 
-          0, 
-          keys, 
-          values, 
-          sizeof (keys) / sizeof (*keys), 
-          &kCFTypeDictionaryKeyCallBacks, 
-          &kCFTypeDictionaryValueCallBacks 
-       ) 
-    ); 
- } 
- #define MB_OK 0 
- char *sys_getbasepath (void) 
- { 
-    static char app_path[1024] = ""; 
-    if (app_path[0] == 0) 
-    { 
-       Dl_info addr_info; 
-       if (dladdr (sys_getbasepath, &addr_info) == 0) 
-          return ("."); 
-       strcpy_s (app_path, 1024, addr_info.dli_fname); 
-       if (strrchr (- app_path , '/') !=-  NULL )
 
-       if (strrchr (- app_path , '/') !=-  NULL )
 
-       strcat_s (app_path, 1024, "/Resources"); 
-    } 
-    return (app_path); 
- } 
- #else // !__APPLE__ 
- #define MessageBox(handle,msg,title,btns) fprintf (stderr, msg) 
- #define MB_OK 0 
- char *sys_getbasepath (void) 
- { 
-    return ("."); 
- } 
- #endif // __APPLE__ 
- #endif // WIN32 
-   
-   
- /* 
-  * Panic 
-  */ 
- void sys_panic (char *err, ...) 
- { 
-    va_list argptr; 
-    char s[1024]; 
-   
-    /* prepare message */ 
-    vsprintf_s (s, sizeof (s), err, argptr); 
-   
-    /* print message and die */ 
-    MessageBox (NULL, s, NULL, MB_OK); 
- } 
-   
-   
- /* 
-  * Print a message 
-  */ 
- void sys_printf (char *msg, ...) 
- { 
-    va_list argptr; 
-    char s[2048]; 
-   
-    /* prepare message */ 
-    vsprintf_s (s, sizeof (s), msg, argptr); 
-   
-    MessageBox (NULL, s, NULL, MB_OK); 
- } 
-   
-   
- /* 
-  * Return number of microseconds elapsed since first call 
-  */ 
- U32 sys_gettime (void) 
- { 
-    static U32 ticks_base = 0; 
-    U32 ticks; 
-   
-    ticks = SDL_GetTicks (); 
-   
-    if (!ticks_base) 
-       ticks_base = ticks; 
-   
-    return ticks - ticks_base; 
- } 
-   
-   
- /* 
-  * Sleep a number of microseconds 
-  */ 
- void sys_sleep (int s) 
- { 
-    SDL_Delay (s); 
- } 
-   
-   
- /* 
-  * Initialize system 
-  */ 
- void sys_init (int argc, char **argv) 
- { 
-    sysarg_init (argc, argv); 
-    sysvid_init (); 
-    sysjoy_init (); 
-   
-     if (sysarg_args_nosound == 0) 
-       syssnd_init (); 
-   
- } 
-   
-   
- /* 
-  * Shutdown system 
-  */ 
- void sys_shutdown (void) 
- { 
-    syssnd_shutdown (); 
-    sysjoy_shutdown (); 
-    sysvid_shutdown (); 
- } 
-