mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-04-24 03:29:57 -07:00
Fix animation pathing
This commit is contained in:
@@ -14,14 +14,16 @@
|
||||
#include "../../../settings/xtreme_settings/xtreme_settings.h"
|
||||
#include "../../../settings/xtreme_settings/xtreme_assets.h"
|
||||
#define ANIMATION_META_FILE "meta.txt"
|
||||
#define ANIMATION_DIR EXT_PATH("dolphin")
|
||||
#define BASE_ANIMATION_DIR EXT_PATH("dolphin")
|
||||
#define TAG "AnimationStorage"
|
||||
/* Unused old code, for safe-keeping
|
||||
|
||||
#define ANIMATION_MANIFEST_FILE ANIMATION_DIR "/manifest.txt"
|
||||
|
||||
*/
|
||||
// 66 Max length = strlen("/ext/dolphin_custom//Anims/manifest.txt") + MAX_PACK_NAME_LEN + 1 (Null terminator)
|
||||
// 59 Max length = strlen("/ext/dolphin_custom//Anims") + MAX_PACK_NAME_LEN + 1 (Null terminator)
|
||||
char ANIMATION_DIR[59];
|
||||
// 72 Max length = ANIMATION_DIR + strlen("/manifest.txt")
|
||||
char ANIMATION_MANIFEST_FILE[72];
|
||||
|
||||
static void animation_storage_free_bubbles(BubbleAnimation* animation);
|
||||
@@ -32,22 +34,22 @@ static BubbleAnimation* animation_storage_load_animation(const char* name);
|
||||
void animation_handler_select_manifest() {
|
||||
XtremeSettings* xtreme_settings = XTREME_SETTINGS();
|
||||
if (xtreme_settings->asset_pack[0] != '\0') {
|
||||
snprintf(ANIMATION_MANIFEST_FILE, sizeof(PACKS_DIR), "%s", PACKS_DIR);
|
||||
snprintf(ANIMATION_DIR, sizeof(PACKS_DIR), "%s", PACKS_DIR);
|
||||
FURI_LOG_I(TAG, "Custom Manifest selected");
|
||||
strcat(ANIMATION_MANIFEST_FILE, "/");
|
||||
strcat(ANIMATION_MANIFEST_FILE, xtreme_settings->asset_pack);
|
||||
strcat(ANIMATION_MANIFEST_FILE, "/Anims");
|
||||
strcat(ANIMATION_DIR, "/");
|
||||
strcat(ANIMATION_DIR, xtreme_settings->asset_pack);
|
||||
strcat(ANIMATION_DIR, "/Anims");
|
||||
} else {
|
||||
snprintf(ANIMATION_MANIFEST_FILE, sizeof(ANIMATION_DIR), "%s", ANIMATION_DIR);
|
||||
snprintf(ANIMATION_DIR, sizeof(BASE_ANIMATION_DIR), "%s", BASE_ANIMATION_DIR);
|
||||
if(xtreme_settings->sfw_mode) {
|
||||
FURI_LOG_I(TAG, "SFW Manifest selected");
|
||||
strcat(ANIMATION_MANIFEST_FILE, "/sfw");
|
||||
strcat(ANIMATION_DIR, "/sfw");
|
||||
} else {
|
||||
FURI_LOG_I(TAG, "NSFW Manifest selected");
|
||||
strcat(ANIMATION_MANIFEST_FILE, "/nsfw");
|
||||
strcat(ANIMATION_DIR, "/nsfw");
|
||||
}
|
||||
}
|
||||
strcat(ANIMATION_MANIFEST_FILE, "/manifest.txt");
|
||||
snprintf(ANIMATION_MANIFEST_FILE, sizeof(ANIMATION_MANIFEST_FILE), "%s/manifest.txt", ANIMATION_DIR);
|
||||
}
|
||||
|
||||
static bool animation_storage_load_single_manifest_info(
|
||||
@@ -326,7 +328,7 @@ static bool animation_storage_load_frames(
|
||||
|
||||
for(int i = 0; i < icon->frame_count; ++i) {
|
||||
frames_ok = false;
|
||||
furi_string_printf(filename, ANIMATION_DIR "/%s/frame_%d.bm", name, i);
|
||||
furi_string_printf(filename, "%s/%s/frame_%d.bm", ANIMATION_DIR, name, i);
|
||||
|
||||
if(storage_common_stat(storage, furi_string_get_cstr(filename), &file_info) != FSE_OK)
|
||||
break;
|
||||
@@ -478,7 +480,7 @@ static BubbleAnimation* animation_storage_load_animation(const char* name) {
|
||||
|
||||
if(FSE_OK != storage_sd_status(storage)) break;
|
||||
|
||||
furi_string_printf(str, ANIMATION_DIR "/%s/" ANIMATION_META_FILE, name);
|
||||
furi_string_printf(str, "%s/%s/" ANIMATION_META_FILE, ANIMATION_DIR, name);
|
||||
if(!flipper_format_file_open_existing(ff, furi_string_get_cstr(str))) break;
|
||||
if(!flipper_format_read_header(ff, str, &u32value)) break;
|
||||
if(furi_string_cmp_str(str, "Flipper Animation")) break;
|
||||
|
||||
64
assets/dolphin/external/nsfw/manifest.txt
vendored
64
assets/dolphin/external/nsfw/manifest.txt
vendored
@@ -1,219 +1,219 @@
|
||||
Filetype: Flipper Animation Manifest
|
||||
Version: 1
|
||||
|
||||
Name: nsfw/lvl_1
|
||||
Name: lvl_1
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_2
|
||||
Name: lvl_2
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 2
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_3
|
||||
Name: lvl_3
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 3
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_4
|
||||
Name: lvl_4
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 4
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_5
|
||||
Name: lvl_5
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 5
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_6
|
||||
Name: lvl_6
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 6
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_7
|
||||
Name: lvl_7
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 7
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_8
|
||||
Name: lvl_8
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 8
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_9
|
||||
Name: lvl_9
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 9
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_10
|
||||
Name: lvl_10
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 10
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_11
|
||||
Name: lvl_11
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 11
|
||||
Max level: 30
|
||||
Weight: 9
|
||||
|
||||
Name: nsfw/PaxGod_TikTok_Marketing
|
||||
Name: PaxGod_TikTok_Marketing
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 11
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: nsfw/lvl_12
|
||||
Name: lvl_12
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 12
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_13
|
||||
Name: lvl_13
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 13
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_14
|
||||
Name: lvl_14
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 14
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_15
|
||||
Name: lvl_15
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 15
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_16
|
||||
Name: lvl_16
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 16
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_17
|
||||
Name: lvl_17
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 17
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_18
|
||||
Name: lvl_18
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 18
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_19
|
||||
Name: lvl_19
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 19
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_20
|
||||
Name: lvl_20
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 20
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_21
|
||||
Name: lvl_21
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 21
|
||||
Max level: 30
|
||||
Weight: 9
|
||||
|
||||
Name: nsfw/lvl_22
|
||||
Name: lvl_22
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 22
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_23
|
||||
Name: lvl_23
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 23
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_24
|
||||
Name: lvl_24
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 24
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_25
|
||||
Name: lvl_25
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 25
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_26
|
||||
Name: lvl_26
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 26
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_27
|
||||
Name: lvl_27
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 27
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_28
|
||||
Name: lvl_28
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 28
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_29
|
||||
Name: lvl_29
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 29
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_30
|
||||
Name: lvl_30
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 30
|
||||
Max level: 30
|
||||
Weight: 9
|
||||
Weight: 9
|
||||
|
||||
44
assets/dolphin/external/sfw/manifest.txt
vendored
44
assets/dolphin/external/sfw/manifest.txt
vendored
@@ -1,149 +1,149 @@
|
||||
Filetype: Flipper Animation Manifest
|
||||
Version: 1
|
||||
|
||||
Name: sfw/L1_Waves_128x50
|
||||
Name: L1_Waves_128x50
|
||||
Min butthurt: 0
|
||||
Max butthurt: 5
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Laptop_128x51
|
||||
Name: L1_Laptop_128x51
|
||||
Min butthurt: 0
|
||||
Max butthurt: 7
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Sleep_128x64
|
||||
Name: L1_Sleep_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 10
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Recording_128x51
|
||||
Name: L1_Recording_128x51
|
||||
Min butthurt: 0
|
||||
Max butthurt: 8
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Furippa1_128x64
|
||||
Name: L1_Furippa1_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 6
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Happy_holidays_128x64
|
||||
Name: L1_Happy_holidays_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 4
|
||||
|
||||
Name: sfw/L1_Read_books_128x64
|
||||
Name: L1_Read_books_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 8
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Cry_128x64
|
||||
Name: L1_Cry_128x64
|
||||
Min butthurt: 8
|
||||
Max butthurt: 13
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Boxing_128x64
|
||||
Name: L1_Boxing_128x64
|
||||
Min butthurt: 10
|
||||
Max butthurt: 13
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Mad_fist_128x64
|
||||
Name: L1_Mad_fist_128x64
|
||||
Min butthurt: 9
|
||||
Max butthurt: 13
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Mods_128x64
|
||||
Name: L1_Mods_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 9
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 4
|
||||
|
||||
Name: sfw/L1_Painting_128x64
|
||||
Name: L1_Painting_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 7
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Leaving_sad_128x64
|
||||
Name: L1_Leaving_sad_128x64
|
||||
Min butthurt: 14
|
||||
Max butthurt: 14
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L2_Wake_up_128x64
|
||||
Name: L2_Wake_up_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 12
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 4
|
||||
|
||||
Name: sfw/L2_Furippa2_128x64
|
||||
Name: L2_Furippa2_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 6
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L2_Hacking_pc_128x64
|
||||
Name: L2_Hacking_pc_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 8
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L2_Soldering_128x64
|
||||
Name: L2_Soldering_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 10
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L3_Furippa3_128x64
|
||||
Name: L3_Furippa3_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 6
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L3_Hijack_radio_128x64
|
||||
Name: L3_Hijack_radio_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 8
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L3_Lab_research_128x54
|
||||
Name: L3_Lab_research_128x54
|
||||
Min butthurt: 0
|
||||
Max butthurt: 10
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Sleigh_ride_128x64
|
||||
Name: L1_Sleigh_ride_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 4
|
||||
Weight: 4
|
||||
|
||||
@@ -1,219 +1,219 @@
|
||||
Filetype: Flipper Animation Manifest
|
||||
Version: 1
|
||||
|
||||
Name: nsfw/lvl_1
|
||||
Name: lvl_1
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_2
|
||||
Name: lvl_2
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 2
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_3
|
||||
Name: lvl_3
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 3
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_4
|
||||
Name: lvl_4
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 4
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_5
|
||||
Name: lvl_5
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 5
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_6
|
||||
Name: lvl_6
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 6
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_7
|
||||
Name: lvl_7
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 7
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_8
|
||||
Name: lvl_8
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 8
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_9
|
||||
Name: lvl_9
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 9
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_10
|
||||
Name: lvl_10
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 10
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_11
|
||||
Name: lvl_11
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 11
|
||||
Max level: 30
|
||||
Weight: 9
|
||||
|
||||
Name: nsfw/PaxGod_TikTok_Marketing
|
||||
Name: PaxGod_TikTok_Marketing
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 11
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: nsfw/lvl_12
|
||||
Name: lvl_12
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 12
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_13
|
||||
Name: lvl_13
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 13
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_14
|
||||
Name: lvl_14
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 14
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_15
|
||||
Name: lvl_15
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 15
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_16
|
||||
Name: lvl_16
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 16
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_17
|
||||
Name: lvl_17
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 17
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_18
|
||||
Name: lvl_18
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 18
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_19
|
||||
Name: lvl_19
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 19
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_20
|
||||
Name: lvl_20
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 20
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_21
|
||||
Name: lvl_21
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 21
|
||||
Max level: 30
|
||||
Weight: 9
|
||||
|
||||
Name: nsfw/lvl_22
|
||||
Name: lvl_22
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 22
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_23
|
||||
Name: lvl_23
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 23
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_24
|
||||
Name: lvl_24
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 24
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_25
|
||||
Name: lvl_25
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 25
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_26
|
||||
Name: lvl_26
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 26
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_27
|
||||
Name: lvl_27
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 27
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_28
|
||||
Name: lvl_28
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 28
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_29
|
||||
Name: lvl_29
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 29
|
||||
Max level: 30
|
||||
Weight: 7
|
||||
|
||||
Name: nsfw/lvl_30
|
||||
Name: lvl_30
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 30
|
||||
Max level: 30
|
||||
Weight: 9
|
||||
Weight: 9
|
||||
|
||||
@@ -1,149 +1,149 @@
|
||||
Filetype: Flipper Animation Manifest
|
||||
Version: 1
|
||||
|
||||
Name: sfw/L1_Waves_128x50
|
||||
Name: L1_Waves_128x50
|
||||
Min butthurt: 0
|
||||
Max butthurt: 5
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Laptop_128x51
|
||||
Name: L1_Laptop_128x51
|
||||
Min butthurt: 0
|
||||
Max butthurt: 7
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Sleep_128x64
|
||||
Name: L1_Sleep_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 10
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Recording_128x51
|
||||
Name: L1_Recording_128x51
|
||||
Min butthurt: 0
|
||||
Max butthurt: 8
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Furippa1_128x64
|
||||
Name: L1_Furippa1_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 6
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Happy_holidays_128x64
|
||||
Name: L1_Happy_holidays_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 4
|
||||
|
||||
Name: sfw/L1_Read_books_128x64
|
||||
Name: L1_Read_books_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 8
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Cry_128x64
|
||||
Name: L1_Cry_128x64
|
||||
Min butthurt: 8
|
||||
Max butthurt: 13
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Boxing_128x64
|
||||
Name: L1_Boxing_128x64
|
||||
Min butthurt: 10
|
||||
Max butthurt: 13
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Mad_fist_128x64
|
||||
Name: L1_Mad_fist_128x64
|
||||
Min butthurt: 9
|
||||
Max butthurt: 13
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Mods_128x64
|
||||
Name: L1_Mods_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 9
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 4
|
||||
|
||||
Name: sfw/L1_Painting_128x64
|
||||
Name: L1_Painting_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 7
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Leaving_sad_128x64
|
||||
Name: L1_Leaving_sad_128x64
|
||||
Min butthurt: 14
|
||||
Max butthurt: 14
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L2_Wake_up_128x64
|
||||
Name: L2_Wake_up_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 12
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 4
|
||||
|
||||
Name: sfw/L2_Furippa2_128x64
|
||||
Name: L2_Furippa2_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 6
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L2_Hacking_pc_128x64
|
||||
Name: L2_Hacking_pc_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 8
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L2_Soldering_128x64
|
||||
Name: L2_Soldering_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 10
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L3_Furippa3_128x64
|
||||
Name: L3_Furippa3_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 6
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L3_Hijack_radio_128x64
|
||||
Name: L3_Hijack_radio_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 8
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L3_Lab_research_128x54
|
||||
Name: L3_Lab_research_128x54
|
||||
Min butthurt: 0
|
||||
Max butthurt: 10
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 3
|
||||
|
||||
Name: sfw/L1_Sleigh_ride_128x64
|
||||
Name: L1_Sleigh_ride_128x64
|
||||
Min butthurt: 0
|
||||
Max butthurt: 14
|
||||
Min level: 1
|
||||
Max level: 30
|
||||
Weight: 4
|
||||
Weight: 4
|
||||
|
||||
@@ -260,6 +260,7 @@ class Main(App):
|
||||
# This will not stay, dont worry! This is temp code until we got time to rewrite this all
|
||||
global valid_dirs # access our global variable
|
||||
for valid_dir in valid_dirs: # We can copy the manifest for all of the valid dirs!
|
||||
(root_dir / f"assets/resources/dolphin/{valid_dir.name}").mkdir(parents=True, exist_ok=True)
|
||||
shutil.copyfile(valid_dir / "manifest.txt", root_dir / f"assets/resources/dolphin/{valid_dir.name}/manifest.txt")
|
||||
(root_dir / "assets/resources/dolphin/manifest.txt").unlink()
|
||||
|
||||
@@ -291,10 +292,10 @@ class Main(App):
|
||||
self.logger.info(f"Processing Dolphin sources")
|
||||
dolphin = Dolphin()
|
||||
self.logger.info(f"Loading data")
|
||||
if not f"dolphin{os.sep}external" in str(self.args.input_directory): # AHEM... oopsie. This script apparently just loads all assets, not only external assets, lol.
|
||||
dolphin.load([self.args.input_directory])
|
||||
if f"dolphin{os.sep}external" in str(self.args.input_directory): # AHEM... oopsie. This script apparently just loads all assets, not only external assets, lol.
|
||||
dolphin.load(self.args.input_directory, valid_dirs)
|
||||
else:
|
||||
dolphin.load(valid_dirs)
|
||||
dolphin.load(self.args.input_directory)
|
||||
self.logger.info(f"Packing")
|
||||
dolphin.pack(self.args.output_directory, self.args.symbol_name)
|
||||
self.logger.info(f"Complete")
|
||||
|
||||
@@ -3,6 +3,7 @@ import logging
|
||||
import os
|
||||
import sys
|
||||
import shutil
|
||||
import pathlib
|
||||
from collections import Counter
|
||||
|
||||
from flipper.utils.fff import *
|
||||
@@ -34,6 +35,7 @@ class DolphinBubbleAnimation:
|
||||
min_level: int,
|
||||
max_level: int,
|
||||
weight: int,
|
||||
subpath: str = None
|
||||
):
|
||||
# Manifest
|
||||
self.name = name
|
||||
@@ -42,6 +44,7 @@ class DolphinBubbleAnimation:
|
||||
self.min_level = min_level
|
||||
self.max_level = max_level
|
||||
self.weight = weight
|
||||
self.subpath = subpath
|
||||
# Meta and data
|
||||
self.meta = {}
|
||||
self.frames = []
|
||||
@@ -184,7 +187,10 @@ class DolphinBubbleAnimation:
|
||||
bubble["_NextBubbleIndex"] = bubble_index + 1
|
||||
|
||||
def save(self, output_directory: str):
|
||||
animation_directory = os.path.join(output_directory, self.name)
|
||||
if self.subpath:
|
||||
animation_directory = os.path.join(output_directory, self.subpath, self.name)
|
||||
else:
|
||||
animation_directory = os.path.join(output_directory, self.name)
|
||||
os.makedirs(animation_directory, exist_ok=True)
|
||||
meta_filename = os.path.join(animation_directory, "meta.txt")
|
||||
|
||||
@@ -257,7 +263,7 @@ class DolphinManifest:
|
||||
self.animations = []
|
||||
self.logger = logging.getLogger("DolphinManifest")
|
||||
|
||||
def load(self, loc: str):
|
||||
def load(self, loc: str, subpath: str = None):
|
||||
manifest_filename = os.path.join(loc, "manifest.txt")
|
||||
|
||||
file = FlipperFormatFile()
|
||||
@@ -288,19 +294,11 @@ class DolphinManifest:
|
||||
|
||||
# Initialize animation
|
||||
animation = DolphinBubbleAnimation(
|
||||
name, min_butthurt, max_butthurt, min_level, max_level, weight
|
||||
name, min_butthurt, max_butthurt, min_level, max_level, weight, subpath
|
||||
)
|
||||
|
||||
# Load Animation meta and frames
|
||||
|
||||
# handle both slash types bc we can
|
||||
newname = name.split("\\")
|
||||
if len(newname) < 2:
|
||||
newname = name.split("/")
|
||||
|
||||
newname = str(newname[-1])
|
||||
|
||||
animation.load(os.path.join(loc, newname))
|
||||
animation.load(os.path.join(loc, name))
|
||||
|
||||
# Add to array
|
||||
self.animations.append(animation)
|
||||
@@ -369,12 +367,20 @@ class Dolphin:
|
||||
self.manifest = DolphinManifest()
|
||||
self.logger = logging.getLogger("Dolphin")
|
||||
|
||||
def load(self, valid_dirs: list):
|
||||
for path in valid_dirs:
|
||||
assert os.path.isdir(path)
|
||||
def load(self, input_directory, dirs: list = None):
|
||||
if dirs:
|
||||
input = str(pathlib.Path(input_directory).absolute())
|
||||
for path in dirs:
|
||||
path = str(pathlib.Path(path).absolute())
|
||||
assert os.path.isdir(path)
|
||||
# Load Manifest
|
||||
self.logger.info(f"Loading directory {path}")
|
||||
self.manifest.load(path, subpath=path.removeprefix(input + os.sep))
|
||||
else:
|
||||
assert os.path.isdir(input_directory)
|
||||
# Load Manifest
|
||||
self.logger.info(f"Loading directory {path}")
|
||||
self.manifest.load(path)
|
||||
self.logger.info(f"Loading directory {input_directory}")
|
||||
self.manifest.load(input_directory)
|
||||
|
||||
def pack(self, output_directory: str, symbol_name: str = None):
|
||||
self.manifest.save(output_directory, symbol_name)
|
||||
|
||||
Reference in New Issue
Block a user