X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=inline;f=src%2Flibgame%2Fmisc.c;h=c7b8eea400aead264705c4ac9be1b3aa6e678532;hb=e1feae09b7599525167992970fcc1c731214cc97;hp=a13212094599ee5e9197f648423d59d9021a7ec3;hpb=ec50fda335d6dc628abc56320bfd3a42711edd1d;p=rocksndiamonds.git diff --git a/src/libgame/misc.c b/src/libgame/misc.c index a1321209..c7b8eea4 100644 --- a/src/libgame/misc.c +++ b/src/libgame/misc.c @@ -90,8 +90,7 @@ char *i_to_a(unsigned int i) { static char *a = NULL; - if (a != NULL) - free(a); + checked_free(a); if (i > 2147483647) /* yes, this is a kludge */ i = 2147483647; @@ -283,48 +282,6 @@ void WaitUntilDelayReached(unsigned long *counter_var, unsigned long delay) /* random generator functions */ /* ------------------------------------------------------------------------- */ -#if 0 -unsigned int SimpleRND(unsigned int max) -{ - return (random_linux_libc(RND_FREE) % max); -} - -unsigned int InitSimpleRND(long seed) -{ - if (seed == NEW_RANDOMIZE) - { - struct timeval current_time; - - gettimeofday(¤t_time, NULL); - seed = (long)current_time.tv_usec; - } - - srandom_linux_libc(RND_FREE, (unsigned int) seed); - - return (unsigned int) seed; -} - -unsigned int RND(unsigned int max) -{ - return (random_linux_libc(RND_GAME) % max); -} - -unsigned int InitRND(long seed) -{ - if (seed == NEW_RANDOMIZE) - { - struct timeval current_time; - - gettimeofday(¤t_time, NULL); - seed = (long)current_time.tv_usec; - } - - srandom_linux_libc(RND_GAME, (unsigned int) seed); - - return (unsigned int) seed; -} -#endif - unsigned int init_random_number(int nr, long seed) { if (seed == NEW_RANDOMIZE) @@ -344,27 +301,10 @@ unsigned int init_random_number(int nr, long seed) return (unsigned int) seed; } -#if 1 -unsigned int get_random_number(int nr, unsigned int max) +unsigned int get_random_number(int nr, int max) { return (max > 0 ? random_linux_libc(nr) % max : 0); } -#else -unsigned int get_random_number(int nr, unsigned int max) -{ - unsigned int rnd = (max > 0 ? random_linux_libc(nr) % max : 0); - - if (nr == 0 && FrameCounter < 2) - printf("::: %d [%d]\n", rnd, FrameCounter); - -#if 0 - if (nr == 0 && FrameCounter < 2 && rnd == 8) - rnd /= 0; -#endif - - return rnd; -} -#endif /* ------------------------------------------------------------------------- */ @@ -560,8 +500,7 @@ char *getStringToLower(char *s) void setString(char **old_value, char *new_value) { - if (*old_value != NULL) - free(*old_value); + checked_free(*old_value); *old_value = getStringCopy(new_value); } @@ -843,7 +782,7 @@ void Error(int mode, char *format, ...) /* ------------------------------------------------------------------------- */ -/* memory allocation functions */ +/* checked memory allocation and freeing functions */ /* ------------------------------------------------------------------------- */ void *checked_malloc(unsigned long size) @@ -880,6 +819,12 @@ void *checked_realloc(void *ptr, unsigned long size) return ptr; } +void checked_free(void *ptr) +{ + if (ptr != NULL) /* this check should be done by free() anyway */ + free(ptr); +} + /* ------------------------------------------------------------------------- */ /* various helper functions */ @@ -1539,8 +1484,7 @@ boolean fileHasPrefix(char *basename, char *prefix) static char *basename_lower = NULL; int basename_length, prefix_length; - if (basename_lower != NULL) - free(basename_lower); + checked_free(basename_lower); if (basename == NULL || prefix == NULL) return FALSE; @@ -1562,8 +1506,7 @@ boolean fileHasSuffix(char *basename, char *suffix) static char *basename_lower = NULL; int basename_length, suffix_length; - if (basename_lower != NULL) - free(basename_lower); + checked_free(basename_lower); if (basename == NULL || suffix == NULL) return FALSE; @@ -1937,6 +1880,7 @@ static void add_dynamic_file_list_entry(struct FileInfo **list, new_list_entry = &(*list)[*num_list_entries - 1]; new_list_entry->token = getStringCopy(token); + new_list_entry->default_filename = NULL; new_list_entry->filename = NULL; new_list_entry->parameter = checked_calloc(parameter_array_size); @@ -2606,9 +2550,17 @@ void ReloadCustomArtworkList(struct ArtworkListInfo *artwork_info) #endif for (i = 0; i < num_dynamic_file_list_entries; i++) + { LoadArtworkToList(artwork_info, &artwork_info->dynamic_artwork_list[i], dynamic_file_list[i].filename, i); +#if 0 + printf("::: '%s', '0x%08x'\n", + dynamic_file_list[i].filename, + dynamic_file_list[i].default_filename); +#endif + } + #if 0 dumpList(artwork_info->content_list); #endif