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
@@ -113,14 +113,6 @@ static void xtreme_app_scene_interface_graphics_unlock_anims_changed(VariableIte
|
|||||||
app->save_settings = true;
|
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) {
|
void xtreme_app_scene_interface_graphics_on_enter(void* context) {
|
||||||
XtremeApp* app = context;
|
XtremeApp* app = context;
|
||||||
VariableItemList* var_item_list = app->var_item_list;
|
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_index(item, xtreme_settings.unlock_anims);
|
||||||
variable_item_set_current_value_text(item, xtreme_settings.unlock_anims ? "ON" : "OFF");
|
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(
|
variable_item_list_set_enter_callback(
|
||||||
var_item_list, xtreme_app_scene_interface_graphics_var_item_list_callback, app);
|
var_item_list, xtreme_app_scene_interface_graphics_var_item_list_callback, app);
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#define TAG "AnimationManager"
|
#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 NO_SD_ANIMATION_NAME "L1_NoSd_128x49"
|
||||||
#define BAD_BATTERY_ANIMATION_NAME "L1_BadBattery_128x47"
|
#define BAD_BATTERY_ANIMATION_NAME "L1_BadBattery_128x47"
|
||||||
|
|
||||||
@@ -388,21 +388,15 @@ static StorageAnimation*
|
|||||||
uint32_t whole_weight = 0;
|
uint32_t whole_weight = 0;
|
||||||
|
|
||||||
// Filter valid animations
|
// Filter valid animations
|
||||||
bool fallback = xtreme_settings.fallback_anim;
|
|
||||||
bool unlock = xtreme_settings.unlock_anims;
|
bool unlock = xtreme_settings.unlock_anims;
|
||||||
StorageAnimationList_it_t it;
|
StorageAnimationList_it_t it;
|
||||||
for(StorageAnimationList_it(it, animation_list); !StorageAnimationList_end_p(it);) {
|
for(StorageAnimationList_it(it, animation_list); !StorageAnimationList_end_p(it);) {
|
||||||
StorageAnimation* storage_animation = *StorageAnimationList_ref(it);
|
StorageAnimation* storage_animation = *StorageAnimationList_ref(it);
|
||||||
const StorageAnimationManifestInfo* manifest_info =
|
const StorageAnimationManifestInfo* manifest_info =
|
||||||
animation_storage_get_meta(storage_animation);
|
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) {
|
if(animation_manager_is_valid_idle_animation(manifest_info, &stats, unlock) &&
|
||||||
// Skip fallback animation
|
strcmp(manifest_info->name, HARDCODED_ANIMATION_NAME)) { // Dont pick error anim randomly
|
||||||
valid = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(valid) {
|
|
||||||
StorageAnimationList_next(it);
|
StorageAnimationList_next(it);
|
||||||
} else {
|
} else {
|
||||||
animation_storage_free_storage_animation(&storage_animation);
|
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);
|
animation_storage_get_meta(restore_animation);
|
||||||
bool valid = animation_manager_is_valid_idle_animation(
|
bool valid = animation_manager_is_valid_idle_animation(
|
||||||
manifest_info, &stats, xtreme_settings.unlock_anims);
|
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_replace_current_animation(
|
||||||
animation_manager, restore_animation);
|
animation_manager, restore_animation);
|
||||||
animation_manager->state = AnimationManagerStateIdle;
|
animation_manager->state = AnimationManagerStateIdle;
|
||||||
|
|||||||
7
assets/dolphin/external/manifest.txt
vendored
@@ -175,3 +175,10 @@ Max butthurt: 14
|
|||||||
Min level: 22
|
Min level: 22
|
||||||
Max level: 30
|
Max level: 30
|
||||||
Weight: 4
|
Weight: 4
|
||||||
|
|
||||||
|
Name: thank_you_128x64
|
||||||
|
Min butthurt: 0
|
||||||
|
Max butthurt: 14
|
||||||
|
Min level: 6
|
||||||
|
Max level: 30
|
||||||
|
Weight: 1
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 5.0 KiB After Width: | Height: | Size: 5.0 KiB |
BIN
assets/dolphin/internal/L1_AnimationError_128x64/frame_0.png
Normal file
|
After Width: | Height: | Size: 4.9 KiB |
14
assets/dolphin/internal/L1_AnimationError_128x64/meta.txt
Normal file
@@ -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
|
||||||
@@ -2,7 +2,7 @@ Filetype: Flipper Animation Manifest
|
|||||||
Version: 1
|
Version: 1
|
||||||
|
|
||||||
# Animation 1
|
# Animation 1
|
||||||
Name: thank_you_128x64
|
Name: L1_AnimationError_128x64
|
||||||
Min butthurt: 0
|
Min butthurt: 0
|
||||||
Max butthurt: 14
|
Max butthurt: 14
|
||||||
Min level: 1
|
Min level: 1
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ XtremeSettings xtreme_settings = {
|
|||||||
.anim_speed = 100, // 100%
|
.anim_speed = 100, // 100%
|
||||||
.cycle_anims = 0, // Meta.txt
|
.cycle_anims = 0, // Meta.txt
|
||||||
.unlock_anims = false, // OFF
|
.unlock_anims = false, // OFF
|
||||||
.fallback_anim = true, // ON
|
|
||||||
.menu_style = MenuStyleWii, // Wii
|
.menu_style = MenuStyleWii, // Wii
|
||||||
.lock_on_boot = false, // OFF
|
.lock_on_boot = false, // OFF
|
||||||
.bad_pins_format = false, // OFF
|
.bad_pins_format = false, // OFF
|
||||||
@@ -69,10 +68,6 @@ void XTREME_SETTINGS_LOAD() {
|
|||||||
x->unlock_anims = b;
|
x->unlock_anims = b;
|
||||||
}
|
}
|
||||||
flipper_format_rewind(file);
|
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)) {
|
if(flipper_format_read_uint32(file, "menu_style", &u, 1)) {
|
||||||
x->menu_style = CLAMP(u, MenuStyleCount - 1U, 0U);
|
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_uint32(file, "anim_speed", &x->anim_speed, 1);
|
||||||
flipper_format_write_int32(file, "cycle_anims", &x->cycle_anims, 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, "unlock_anims", &x->unlock_anims, 1);
|
||||||
flipper_format_write_bool(file, "fallback_anim", &x->fallback_anim, 1);
|
|
||||||
e = x->menu_style;
|
e = x->menu_style;
|
||||||
flipper_format_write_uint32(file, "menu_style", &e, 1);
|
flipper_format_write_uint32(file, "menu_style", &e, 1);
|
||||||
flipper_format_write_bool(file, "bad_pins_format", &x->bad_pins_format, 1);
|
flipper_format_write_bool(file, "bad_pins_format", &x->bad_pins_format, 1);
|
||||||
|
|||||||
@@ -57,7 +57,6 @@ typedef struct {
|
|||||||
uint32_t anim_speed;
|
uint32_t anim_speed;
|
||||||
int32_t cycle_anims;
|
int32_t cycle_anims;
|
||||||
bool unlock_anims;
|
bool unlock_anims;
|
||||||
bool fallback_anim;
|
|
||||||
MenuStyle menu_style;
|
MenuStyle menu_style;
|
||||||
bool lock_on_boot;
|
bool lock_on_boot;
|
||||||
bool bad_pins_format;
|
bool bad_pins_format;
|
||||||
|
|||||||