From 29233eadfb4e518b0463d029fa612f752b2e381a Mon Sep 17 00:00:00 2001 From: Alex Taber Date: Mon, 10 Jun 2024 11:27:09 -0400 Subject: [PATCH] Progress bar more accurate --- assets/back.png | Bin 656 -> 632 bytes source/badges.c | 17 +++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/assets/back.png b/assets/back.png index 008ffab92688769e5841b2902eb99cd418d51362..6fffd190c4551dbb90c2460dfbe6e61a186f9d75 100644 GIT binary patch delta 165 zcmV;W09yZ$1^5K8x&eQ|000ib0l1NC?EnA(f=NU{R7gwhl|c%CFbo8PzS`&bDxXt# zbqlrhq??1#fgTcJ1}bPwK2u6raW;)!B;Rokt$Z|c;tfF9%84%kSuZD^07N7CYoxuw zY?TwKbL1pdPUv5*N;Zh)T~P&d-b=1vXN^ev1p8q`k3GQGM}8Uhv8zB_BRK)0NX`#u T5)p9%<*C@qQDt^BlWGDc9py!Y delta 189 zcmV;u07C!x1ds)=x&eQ}000ic0Tn1pfB*mhnn^@KR7gwhl|c%_Fbo7`=bt^~7x_$~ z`BYvLoLwOs6M8At-ZCJBb(qCAPVC`tT5Ahxi)Ah$|DcW-dgt|{f2huqtKY&2oLo@*-LNq^|2Q#w^mrd}AM80`ZlTrdExNJ_W diff --git a/source/badges.c b/source/badges.c index 74ef756..2b25373 100644 --- a/source/badges.c +++ b/source/badges.c @@ -38,7 +38,9 @@ char *badgeMngBuffer; u16 *rgb_buf_64x64; u16 *rgb_buf_32x32; u8 *alpha_buf_64x64; -u8 *alpha_buf_32x32; +u8 *alpha_buf_32x32; +u64 progress_finish; +u64 progress_status; Result actInit(void) { @@ -180,11 +182,13 @@ typedef struct { u32 zip_callback(char *file_buf, u64 file_size, const char *name, void *userdata) { + progress_finish += 1; zip_userdata *data = (zip_userdata *) userdata; u16 *utf16_name = calloc(strlen(name), sizeof(u16)); utf8_to_utf16(utf16_name, (u8 *) name, strlen(name)); data->installed += install_badge_generic(file_buf, file_size, utf16_name, data->badge_count, data->set_id); free(utf16_name); + progress_status += 1; return 0; } @@ -221,6 +225,7 @@ int install_badge_dir(FS_DirectoryEntry set_dir, int *badge_count, int set_id) u32 entries_read; res = FSDIR_Read(folder, &entries_read, 1024, badge_files); int badges_in_set = 0; + progress_finish += entries_read; for (u32 i = 0; i < entries_read && *badge_count < 1000; ++i) { if (!strcmp(badge_files[i].shortExt, "PNG")) @@ -246,6 +251,8 @@ int install_badge_dir(FS_DirectoryEntry set_dir, int *badge_count, int set_id) strucat(path, badge_files[i].name); badges_in_set += install_badge_zip(path, badge_count, set_id); } + progress_status += 1; + draw_loading_bar(progress_status, progress_finish, INSTALL_BADGES); } if (!badges_in_set) @@ -467,7 +474,9 @@ Result install_badges(void) int default_set_count = 0; int default_idx = 0; - draw_loading_bar(6, entries_read + 12, INSTALL_BADGES); + progress_finish = entries_read + 12; + progress_status = 12; + draw_loading_bar(progress_status, progress_finish, INSTALL_BADGES); for (u32 i = 0; i < entries_read && badge_count < 1000; ++i) { if (!strcmp(badge_files[i].shortExt, "PNG")) @@ -501,7 +510,8 @@ Result install_badges(void) if (count == 0) set_count -= 1; } - draw_loading_bar(i + 7, entries_read + 12, INSTALL_BADGES); + progress_status += 1; + draw_loading_bar(progress_status, progress_finish, INSTALL_BADGES); } DEBUG("Badges installed - doing metadata\n"); @@ -540,7 +550,6 @@ Result install_badges(void) } FSFILE_Flush(badgeDataHandle); - draw_loading_bar(entries_read + 9, entries_read + 12, INSTALL_BADGES); u32 total_badges = 0xFFFF * badge_count; // Quantity * unique badges?