diff --git a/applications/main/xtreme_app/scenes/xtreme_app_scene_interface_graphics.c b/applications/main/xtreme_app/scenes/xtreme_app_scene_interface_graphics.c index c3600ec43..905445a3c 100644 --- a/applications/main/xtreme_app/scenes/xtreme_app_scene_interface_graphics.c +++ b/applications/main/xtreme_app/scenes/xtreme_app_scene_interface_graphics.c @@ -113,14 +113,6 @@ static void xtreme_app_scene_interface_graphics_unlock_anims_changed(VariableIte app->save_settings = true; } -static void xtreme_app_scene_interface_graphics_fallback_anim_changed(VariableItem* item) { - XtremeApp* app = variable_item_get_context(item); - bool value = variable_item_get_current_value_index(item); - variable_item_set_current_value_text(item, value ? "ON" : "OFF"); - xtreme_settings.fallback_anim = value; - app->save_settings = true; -} - void xtreme_app_scene_interface_graphics_on_enter(void* context) { XtremeApp* app = context; VariableItemList* var_item_list = app->var_item_list; @@ -171,15 +163,6 @@ void xtreme_app_scene_interface_graphics_on_enter(void* context) { variable_item_set_current_value_index(item, xtreme_settings.unlock_anims); variable_item_set_current_value_text(item, xtreme_settings.unlock_anims ? "ON" : "OFF"); - item = variable_item_list_add( - var_item_list, - "Credits Anim", - 2, - xtreme_app_scene_interface_graphics_fallback_anim_changed, - app); - variable_item_set_current_value_index(item, xtreme_settings.fallback_anim); - variable_item_set_current_value_text(item, xtreme_settings.fallback_anim ? "ON" : "OFF"); - variable_item_list_set_enter_callback( var_item_list, xtreme_app_scene_interface_graphics_var_item_list_callback, app); diff --git a/applications/services/desktop/animations/animation_manager.c b/applications/services/desktop/animations/animation_manager.c index 042afb7d5..b46078931 100644 --- a/applications/services/desktop/animations/animation_manager.c +++ b/applications/services/desktop/animations/animation_manager.c @@ -17,7 +17,7 @@ #define TAG "AnimationManager" -#define HARDCODED_ANIMATION_NAME "thank_you_128x64" +#define HARDCODED_ANIMATION_NAME "L1_AnimationError_128x64" #define NO_SD_ANIMATION_NAME "L1_NoSd_128x49" #define BAD_BATTERY_ANIMATION_NAME "L1_BadBattery_128x47" @@ -388,21 +388,15 @@ static StorageAnimation* uint32_t whole_weight = 0; // Filter valid animations - bool fallback = xtreme_settings.fallback_anim; bool unlock = xtreme_settings.unlock_anims; StorageAnimationList_it_t it; for(StorageAnimationList_it(it, animation_list); !StorageAnimationList_end_p(it);) { StorageAnimation* storage_animation = *StorageAnimationList_ref(it); const StorageAnimationManifestInfo* manifest_info = animation_storage_get_meta(storage_animation); - bool valid = animation_manager_is_valid_idle_animation(manifest_info, &stats, unlock); - if(strcmp(manifest_info->name, HARDCODED_ANIMATION_NAME) == 0 && !fallback) { - // Skip fallback animation - valid = false; - } - - if(valid) { + if(animation_manager_is_valid_idle_animation(manifest_info, &stats, unlock) && + strcmp(manifest_info->name, HARDCODED_ANIMATION_NAME)) { // Dont pick error anim randomly StorageAnimationList_next(it); } else { animation_storage_free_storage_animation(&storage_animation); @@ -543,7 +537,8 @@ void animation_manager_load_and_continue_animation(AnimationManager* animation_m animation_storage_get_meta(restore_animation); bool valid = animation_manager_is_valid_idle_animation( manifest_info, &stats, xtreme_settings.unlock_anims); - if(valid) { + // Restore only if anim is valid and not the error anim + if(valid && strcmp(manifest_info->name, HARDCODED_ANIMATION_NAME) != 0) { animation_manager_replace_current_animation( animation_manager, restore_animation); animation_manager->state = AnimationManagerStateIdle; diff --git a/assets/dolphin/external/manifest.txt b/assets/dolphin/external/manifest.txt index 4921c5523..e2cc24b52 100644 --- a/assets/dolphin/external/manifest.txt +++ b/assets/dolphin/external/manifest.txt @@ -175,3 +175,10 @@ Max butthurt: 14 Min level: 22 Max level: 30 Weight: 4 + +Name: thank_you_128x64 +Min butthurt: 0 +Max butthurt: 14 +Min level: 6 +Max level: 30 +Weight: 1 diff --git a/assets/dolphin/internal/thank_you_128x64/frame_0.png b/assets/dolphin/external/thank_you_128x64/frame_0.png similarity index 100% rename from assets/dolphin/internal/thank_you_128x64/frame_0.png rename to assets/dolphin/external/thank_you_128x64/frame_0.png diff --git a/assets/dolphin/internal/thank_you_128x64/frame_1.png b/assets/dolphin/external/thank_you_128x64/frame_1.png similarity index 100% rename from assets/dolphin/internal/thank_you_128x64/frame_1.png rename to assets/dolphin/external/thank_you_128x64/frame_1.png diff --git a/assets/dolphin/internal/thank_you_128x64/frame_2.png b/assets/dolphin/external/thank_you_128x64/frame_2.png similarity index 100% rename from assets/dolphin/internal/thank_you_128x64/frame_2.png rename to assets/dolphin/external/thank_you_128x64/frame_2.png diff --git a/assets/dolphin/internal/thank_you_128x64/frame_3.png b/assets/dolphin/external/thank_you_128x64/frame_3.png similarity index 100% rename from assets/dolphin/internal/thank_you_128x64/frame_3.png rename to assets/dolphin/external/thank_you_128x64/frame_3.png diff --git a/assets/dolphin/internal/thank_you_128x64/frame_4.png b/assets/dolphin/external/thank_you_128x64/frame_4.png similarity index 100% rename from assets/dolphin/internal/thank_you_128x64/frame_4.png rename to assets/dolphin/external/thank_you_128x64/frame_4.png diff --git a/assets/dolphin/internal/thank_you_128x64/frame_5.png b/assets/dolphin/external/thank_you_128x64/frame_5.png similarity index 100% rename from assets/dolphin/internal/thank_you_128x64/frame_5.png rename to assets/dolphin/external/thank_you_128x64/frame_5.png diff --git a/assets/dolphin/internal/thank_you_128x64/meta.txt b/assets/dolphin/external/thank_you_128x64/meta.txt similarity index 100% rename from assets/dolphin/internal/thank_you_128x64/meta.txt rename to assets/dolphin/external/thank_you_128x64/meta.txt diff --git a/assets/dolphin/internal/L1_AnimationError_128x64/frame_0.png b/assets/dolphin/internal/L1_AnimationError_128x64/frame_0.png new file mode 100644 index 000000000..5133056c2 Binary files /dev/null and b/assets/dolphin/internal/L1_AnimationError_128x64/frame_0.png differ diff --git a/assets/dolphin/internal/L1_AnimationError_128x64/meta.txt b/assets/dolphin/internal/L1_AnimationError_128x64/meta.txt new file mode 100644 index 000000000..bfac2e1fa --- /dev/null +++ b/assets/dolphin/internal/L1_AnimationError_128x64/meta.txt @@ -0,0 +1,14 @@ +Filetype: Flipper Animation +Version: 1 + +Width: 128 +Height: 64 +Passive frames: 1 +Active frames: 0 +Frames order: 0 +Active cycles: 0 +Frame rate: 1 +Duration: 30 +Active cooldown: 0 + +Bubble slots: 0 diff --git a/assets/dolphin/internal/manifest.txt b/assets/dolphin/internal/manifest.txt index 48dc597a8..e85c199eb 100644 --- a/assets/dolphin/internal/manifest.txt +++ b/assets/dolphin/internal/manifest.txt @@ -2,7 +2,7 @@ Filetype: Flipper Animation Manifest Version: 1 # Animation 1 -Name: thank_you_128x64 +Name: L1_AnimationError_128x64 Min butthurt: 0 Max butthurt: 14 Min level: 1 diff --git a/lib/xtreme/settings.c b/lib/xtreme/settings.c index d178fae48..743eb12d2 100644 --- a/lib/xtreme/settings.c +++ b/lib/xtreme/settings.c @@ -10,7 +10,6 @@ XtremeSettings xtreme_settings = { .anim_speed = 100, // 100% .cycle_anims = 0, // Meta.txt .unlock_anims = false, // OFF - .fallback_anim = true, // ON .menu_style = MenuStyleWii, // Wii .lock_on_boot = false, // OFF .bad_pins_format = false, // OFF @@ -69,10 +68,6 @@ void XTREME_SETTINGS_LOAD() { x->unlock_anims = b; } flipper_format_rewind(file); - if(flipper_format_read_bool(file, "fallback_anim", &b, 1)) { - x->fallback_anim = b; - } - flipper_format_rewind(file); if(flipper_format_read_uint32(file, "menu_style", &u, 1)) { x->menu_style = CLAMP(u, MenuStyleCount - 1U, 0U); } @@ -209,7 +204,6 @@ void XTREME_SETTINGS_SAVE() { flipper_format_write_uint32(file, "anim_speed", &x->anim_speed, 1); flipper_format_write_int32(file, "cycle_anims", &x->cycle_anims, 1); flipper_format_write_bool(file, "unlock_anims", &x->unlock_anims, 1); - flipper_format_write_bool(file, "fallback_anim", &x->fallback_anim, 1); e = x->menu_style; flipper_format_write_uint32(file, "menu_style", &e, 1); flipper_format_write_bool(file, "bad_pins_format", &x->bad_pins_format, 1); diff --git a/lib/xtreme/xtreme.h b/lib/xtreme/xtreme.h index 47760797d..1c3977dbe 100644 --- a/lib/xtreme/xtreme.h +++ b/lib/xtreme/xtreme.h @@ -57,7 +57,6 @@ typedef struct { uint32_t anim_speed; int32_t cycle_anims; bool unlock_anims; - bool fallback_anim; MenuStyle menu_style; bool lock_on_boot; bool bad_pins_format;