diff --git a/menu/menu_animation.c b/menu/menu_animation.c index 3194ad2072..3ce834dc8a 100644 --- a/menu/menu_animation.c +++ b/menu/menu_animation.c @@ -18,32 +18,35 @@ #include "../driver.h" #include -static void tween_free(tween_t *tw) +static void tween_free(tween_t *tween) { - if (tw) - free(tw); - tw = NULL; + if (tween) + free(tween); + tween = NULL; } -void add_tween(float duration, float target_value, float* subject, +bool add_tween(float duration, float target_value, float* subject, easingFunc easing, tweenCallback callback) { - tween_t *tween = NULL; - tween_t *temp_tweens = (tween_t*) - realloc(driver.menu->tweens, - (driver.menu->numtweens + 1) * sizeof(tween_t)); + tween_t *tween = NULL, *temp_tweens = NULL; + + if (!driver.menu) + return false; + + temp_tweens = (tween_t*)realloc(driver.menu->tweens, + (driver.menu->numtweens + 1) * sizeof(tween_t)); if (!temp_tweens) { tween_free(driver.menu->tweens); - return; + return false; } driver.menu->tweens = temp_tweens; tween = (tween_t*)&driver.menu->tweens[driver.menu->numtweens]; if (!tween) - return; + return false; tween->alive = 1; tween->duration = duration; @@ -55,6 +58,8 @@ void add_tween(float duration, float target_value, float* subject, tween->callback = callback; driver.menu->numtweens++; + + return true; } void update_tweens(float dt) diff --git a/menu/menu_animation.h b/menu/menu_animation.h index bc5defe92f..e1c36af6c7 100644 --- a/menu/menu_animation.h +++ b/menu/menu_animation.h @@ -19,6 +19,7 @@ #include #include +#include #ifdef __cplusplus extern "C" { @@ -39,7 +40,7 @@ typedef struct tweenCallback callback; } tween_t; -void add_tween(float duration, float target_value, float* subject, +bool add_tween(float duration, float target_value, float* subject, easingFunc easing, tweenCallback callback); void update_tweens(float dt); diff --git a/menu/menu_driver.h b/menu/menu_driver.h index 7eed6f91e7..ca1ad60701 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -141,7 +141,7 @@ typedef struct rarch_setting_t *list_settings; tween_t* tweens; - int numtweens; + unsigned numtweens; } menu_handle_t; typedef struct menu_file_list_cbs