From 76a16af4236440d05ab5ab509793e9ee8078a0d7 Mon Sep 17 00:00:00 2001 From: Willy-JL <49810075+Willy-JL@users.noreply.github.com> Date: Tue, 28 Nov 2023 03:13:03 +0000 Subject: [PATCH] Show anim errors, move credits to default pack Remove fallback anim setting Retry when anim manager resumes error anim Always skip error anim when manager picks new anim --- .../xtreme_app_scene_interface_graphics.c | 17 ----------------- .../desktop/animations/animation_manager.c | 15 +++++---------- assets/dolphin/external/manifest.txt | 7 +++++++ .../thank_you_128x64/frame_0.png | Bin .../thank_you_128x64/frame_1.png | Bin .../thank_you_128x64/frame_2.png | Bin .../thank_you_128x64/frame_3.png | Bin .../thank_you_128x64/frame_4.png | Bin .../thank_you_128x64/frame_5.png | Bin .../thank_you_128x64/meta.txt | 0 .../L1_AnimationError_128x64/frame_0.png | Bin 0 -> 4975 bytes .../internal/L1_AnimationError_128x64/meta.txt | 14 ++++++++++++++ assets/dolphin/internal/manifest.txt | 2 +- lib/xtreme/settings.c | 6 ------ lib/xtreme/xtreme.h | 1 - 15 files changed, 27 insertions(+), 35 deletions(-) rename assets/dolphin/{internal => external}/thank_you_128x64/frame_0.png (100%) rename assets/dolphin/{internal => external}/thank_you_128x64/frame_1.png (100%) rename assets/dolphin/{internal => external}/thank_you_128x64/frame_2.png (100%) rename assets/dolphin/{internal => external}/thank_you_128x64/frame_3.png (100%) rename assets/dolphin/{internal => external}/thank_you_128x64/frame_4.png (100%) rename assets/dolphin/{internal => external}/thank_you_128x64/frame_5.png (100%) rename assets/dolphin/{internal => external}/thank_you_128x64/meta.txt (100%) create mode 100644 assets/dolphin/internal/L1_AnimationError_128x64/frame_0.png create mode 100644 assets/dolphin/internal/L1_AnimationError_128x64/meta.txt 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 0000000000000000000000000000000000000000..5133056c2c2158e949c92f295d56e1a6e7f6af78 GIT binary patch literal 4975 zcmeHLc~nzZ8h-&)#KN&H)&;3CprZJ)2a-q>N+Jn1z_80G`ttGu53-pA2vh_&#L3t;905X%xpi^0Fu%6Cj@fi$0lS`&E_-r2jqXKni1 zGW%1XCNIw!WdQz`TGbUuNk;U8Z3&|lRywKuuP+O=lc3*L)-$!zB>KVI*7;m~`a#-d^G;nv#u zn|6dRkGt4ZS)h!mI#|UBxwCYGDX~Czzo#H1wjj>`*Kf668zOu7=UoEBZ&IAo0|LCK zgtUko3lGW`diP2e3|@SkW6Ili&SG^&qSABwlV2(ayZe>rd#bMG*!x*@(lTB$EOx|i zRdjBu$aFlDXkm47t84kwu4w4a$=rMG5l^h=v`nQIwjaGTZQV1-+doZtyU;#&k^P>V zZ{{WkeLSaZN>W()H&^O6{Q}AH&_@p4-80j3Tt2Jo?G${We{=N==f(nFt#03mv_UVB zgGM|!+z>APl#gmuR79?kVN|0^OKceAvC61L&{)hsmSIu2T0nVTdV@m7t6O<6-0j02O9H$VQb?t>+sB6f-U#$iy&>LN==yVg;0N zkVoDc9Y$tT*;G0#GUD+}%1Rruhfc2G2MSjYLx3j%CE8%n@@ce$gam2=i>lE@(HJ}) zk49(Gm`oUG!1_eB0WrdAy%Pa3gdxQAs1DZ}aE+QwU?MV2oIyaLfO+zWe=4n1Its7W z53>OHpcxS@jX|Z;R4Ur|6?%gx9)Jux^t&tc!HHUo7KrIJaXJ(e#bauN(|8Et1dSpP zAw}UTtvM(_-UMTEbW~3pr&F4B8^xcX zJrcWF8E8qRe4z%7BaBLf0t(?TU#>xMIe$oGaosqmoC~8Eiv_dYIqopR=3p>afiPuE zI^xE{xZ|KCYP|tbqZk1Nz^ORE;qWjS%3w2Kg~E*ovoSUcMwnbS?C#E!F_;`V8$rfH z`0H?xm56e@R|J$CK*_jFg*zAF0rMO;n2mB|Fv67qZ@4n1Oo6c66fD&24Y3b=uKz|J`@)LC)LPtMdJU`CJqnT1L%V-7vp+hKhZoi zbfSW=O+!yZk4oHpl*nZBq2MFvPzZV?9+R8>1Xx2;Xf&dZ!a(&HPS=rf{C84;t&qzV z?sNrA=b;>!EyoxzkH^4ZIghPiGTkwZ%|j-l>op2P0;0pbq5zM8E0CV%|4?KX^A0YZ zsGSgv5!(X@gBc8%$^9*1wBdkhM9mn9*n{?8oOqZO#uXW`ZfFb?FHj33BQ1Xib%^@e!J@T+o1bDe(qix>mea4?%WSL?az?wQ~T2(+m=+Xj<=#`K0CS;=1#x z5M=qDMCcW4YDe%8^nhw7LhkCOII{LX)ifs>+uoo zE64&|=*h&Zgx?6SW9Em=UH0&KE#B3yeJk#))vsRFzxRGr{n71`sz%+Gpotnp1Z#-`ME;4Vt&5 zuQ1JS-|^+N(8jjQe%I_Rg>N3UmQlzZ?$n(t=eca133;Ywm`Z=$W9{7fWTAt{tJigR zOUf&f6lrYEjOaSe?v{Ip&*AvSkoyB1P`(;=3GHqn=6WyCvWU&xo}JIudd?qf*FS&xL1Bl zO}*A#X_c<@Kaf(Zj6Is7DneQvlTGZTy>aWZo;9R>kZw0j?R!m7sAR_Jp8Du^xZ$5| zwZ2C(Pk8ytZu?$4z3Ti+y6f#5%WboA>$91$jrSc>)@-R4=dT^$I*DT6Hs<~qJ(zum z)aNC-U6ym9nV0g)WZxPC;yc&maJs*zpj~>m40g1NxK;gr7-hOkSl6kBbf1$w^^r~+ zF1kaHZ!Y2&HJvi8FS@lp?1!9m(wD!UEp(M!YLXng{LrVpzbrq0^ZcSO9-%d5nc6Ah z%GsiU4OcBaUQ~A-itvj=pFj;$1L;;KQUBb;=4Ca$rX$gB3QhmcI96UBpRr;w9yfj9 z^k!pkhoe(V@55J4;=r8Pl01i!h$Q^`y2!KVBxR8cSXVdubgfn|PA&P|C$}SeL(5MF zQcX$jLSfkMg!ql$7iD*Tgmc?wMN_(R6J{4zW}z{zttny=I{MGT1Yo(`?f8dn8T^P-P3HVPe%r2E+$@@ OK@yRlu<(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;