X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Ftoons.c;h=048696f6cd365fb4322959f5d7da4fcced91bfed;hp=f2684b4034d626e097f77319f2172d2b8d83f9df;hb=7a821f79cb735d048869b503279c402800afa44a;hpb=c42450df0ac6ff7b6db97bf0df12b9c73055c727 diff --git a/src/libgame/toons.c b/src/libgame/toons.c index f2684b40..048696f6 100644 --- a/src/libgame/toons.c +++ b/src/libgame/toons.c @@ -81,17 +81,18 @@ int getAnimationFrame(int num_frames, int delay, int mode, int start_frame, /* toon animation functions */ /* ========================================================================= */ -static int get_toon_direction(char *direction_raw) +static int get_toon_direction(char *direction_string_raw) { - static char *direction = NULL; + char *direction_string = getStringToLower(direction_string_raw); + int direction = (strcmp(direction_string, "left") == 0 ? MV_LEFT : + strcmp(direction_string, "right") == 0 ? MV_RIGHT : + strcmp(direction_string, "up") == 0 ? MV_UP : + strcmp(direction_string, "down") == 0 ? MV_DOWN : + MV_NO_MOVING); - /* !!! MEMORY LEAK HERE! FIX IT! !!! */ - setString(&direction, getStringToLower(direction_raw)); + free(direction_string); - return (strcmp(direction, "left") == 0 ? MV_LEFT : - strcmp(direction, "right") == 0 ? MV_RIGHT : - strcmp(direction, "up") == 0 ? MV_UP : - strcmp(direction, "down") == 0 ? MV_DOWN : MV_NO_MOVING); + return direction; } void InitToonScreen(Bitmap *save_buffer,