X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fmisc.c;h=39a55435f9720611e17fa1b04218f7e4bee349ab;hb=97f03ad86e7458be79933d91363a38c4d2e35deb;hp=38c062dec0724f267527d79649c54c78e8bfb1fc;hpb=8bee1f8bc2232bd6775c402f9f630e92d901593f;p=rocksndiamonds.git diff --git a/src/libgame/misc.c b/src/libgame/misc.c index 38c062de..39a55435 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -223,18 +223,6 @@ boolean getTokenValueFromString(char *string, char **token, char **value) /* counter functions */ /* ------------------------------------------------------------------------- */ -#if defined(PLATFORM_MSDOS) -volatile unsigned int counter = 0; - -void increment_counter() -{ - counter++; -} - -END_OF_FUNCTION(increment_counter); -#endif - - /* maximal allowed length of a command line option */ #define MAX_OPTION_LEN 256 @@ -245,20 +233,7 @@ static unsigned int getCurrentMS() { return SDL_GetTicks(); } - -#else /* !TARGET_SDL */ - -#if defined(PLATFORM_UNIX) -static unsigned int getCurrentMS() -{ - struct timeval current_time; - - gettimeofday(¤t_time, NULL); - - return current_time.tv_sec * 1000 + current_time.tv_usec / 1000; -} -#endif /* PLATFORM_UNIX */ -#endif /* !TARGET_SDL */ +#endif static unsigned int mainCounter(int mode) { @@ -295,50 +270,18 @@ static unsigned int mainCounter(int mode) return counter_ms; /* return milliseconds since last init */ } - -#else /* !TARGET_SDL */ - -#if defined(PLATFORM_UNIX) -static unsigned int mainCounter(int mode) -{ - static struct timeval base_time = { 0, 0 }; - struct timeval current_time; - unsigned int counter_ms; - - gettimeofday(¤t_time, NULL); - - /* reset base time in case of counter initializing or wrap-around */ - if (mode == INIT_COUNTER || current_time.tv_sec < base_time.tv_sec) - base_time = current_time; - - counter_ms = (current_time.tv_sec - base_time.tv_sec) * 1000 - + (current_time.tv_usec - base_time.tv_usec) / 1000; - - return counter_ms; /* return milliseconds since last init */ -} -#endif /* PLATFORM_UNIX */ -#endif /* !TARGET_SDL */ +#endif #endif void InitCounter() /* set counter back to zero */ { -#if !defined(PLATFORM_MSDOS) mainCounter(INIT_COUNTER); -#else - LOCK_VARIABLE(counter); - LOCK_FUNCTION(increment_counter); - install_int_ex(increment_counter, BPS_TO_TIMER(100)); -#endif } unsigned int Counter() /* get milliseconds since last call of InitCounter() */ { -#if !defined(PLATFORM_MSDOS) return mainCounter(READ_COUNTER); -#else - return (counter * 10); -#endif } static void sleep_milliseconds(unsigned int milliseconds_delay) @@ -362,8 +305,6 @@ static void sleep_milliseconds(unsigned int milliseconds_delay) { #if defined(TARGET_SDL) SDL_Delay(milliseconds_delay); -#elif defined(TARGET_ALLEGRO) - rest(milliseconds_delay); #else struct timeval delay; @@ -474,7 +415,7 @@ unsigned int get_random_number(int nr, int max) /* system info functions */ /* ------------------------------------------------------------------------- */ -#if !defined(PLATFORM_MSDOS) && !defined(PLATFORM_ANDROID) +#if !defined(PLATFORM_ANDROID) static char *get_corrected_real_name(char *real_name) { char *real_name_new = checked_malloc(MAX_USERNAME_LEN + 1); @@ -3750,6 +3691,9 @@ void openErrorFile() Error(ERR_WARN, "cannot open file '%s' for writing: %s", program.error_filename, strerror(errno)); } + + /* error output should be unbuffered so it is not truncated in a crash */ + setbuf(program.error_file, NULL); } void closeErrorFile()