From 590e21c739d9ece004f455b69913d2ff544526ac Mon Sep 17 00:00:00 2001 From: VerstreuteSeele Date: Fri, 23 Dec 2022 21:31:14 +0100 Subject: [PATCH] Update dolphin_state.c --- .../services/dolphin/helpers/dolphin_state.c | 227 +++--------------- 1 file changed, 27 insertions(+), 200 deletions(-) diff --git a/applications/services/dolphin/helpers/dolphin_state.c b/applications/services/dolphin/helpers/dolphin_state.c index 91c5347f8..078a2c4f1 100644 --- a/applications/services/dolphin/helpers/dolphin_state.c +++ b/applications/services/dolphin/helpers/dolphin_state.c @@ -14,6 +14,7 @@ #define DOLPHIN_STATE_PATH INT_PATH(DOLPHIN_STATE_FILE_NAME) #define DOLPHIN_STATE_HEADER_MAGIC 0xD0 #define DOLPHIN_STATE_HEADER_VERSION 0x01 +int level_array[] = {100, 200, 300, 450, 600, 750, 950, 1150, 1350, 1600, 1850, 2100, 2400, 2700, 3000, 3350, 3700, 4050, 4450, 4850, 5250, 5700, 6150, 6600, 7100, 7600, 8100, 8650, 9200}; #define LEVEL2_THRESHOLD 100 #define LEVEL3_THRESHOLD 200 #define LEVEL4_THRESHOLD 300 @@ -107,217 +108,43 @@ uint64_t dolphin_state_timestamp() { } bool dolphin_state_is_levelup(uint32_t icounter) { - return (icounter == LEVEL2_THRESHOLD) || (icounter == LEVEL3_THRESHOLD) || - (icounter == LEVEL4_THRESHOLD) || (icounter == LEVEL5_THRESHOLD) || - (icounter == LEVEL6_THRESHOLD) || (icounter == LEVEL7_THRESHOLD) || - (icounter == LEVEL8_THRESHOLD) || (icounter == LEVEL9_THRESHOLD) || - (icounter == LEVEL10_THRESHOLD) || (icounter == LEVEL11_THRESHOLD) || - (icounter == LEVEL12_THRESHOLD) || (icounter == LEVEL13_THRESHOLD) || - (icounter == LEVEL14_THRESHOLD) || (icounter == LEVEL15_THRESHOLD) || - (icounter == LEVEL16_THRESHOLD) || (icounter == LEVEL17_THRESHOLD) || - (icounter == LEVEL18_THRESHOLD) || (icounter == LEVEL19_THRESHOLD) || - (icounter == LEVEL20_THRESHOLD) || (icounter == LEVEL21_THRESHOLD) || - (icounter == LEVEL22_THRESHOLD) || (icounter == LEVEL23_THRESHOLD) || - (icounter == LEVEL24_THRESHOLD) || (icounter == LEVEL25_THRESHOLD) || - (icounter == LEVEL26_THRESHOLD) || (icounter == LEVEL27_THRESHOLD) || - (icounter == LEVEL28_THRESHOLD) || (icounter == LEVEL29_THRESHOLD) || - (icounter == LEVEL30_THRESHOLD); + for (int i = 0; i < 29; ++i) { + if ((icounter == level_array[i])) { + return true; + } + }; + return false; } uint8_t dolphin_get_level(uint32_t icounter) { - if(icounter <= LEVEL2_THRESHOLD) { - return 1; - } else if(icounter <= LEVEL3_THRESHOLD) { - return 2; - } else if(icounter <= LEVEL4_THRESHOLD) { - return 3; - } else if(icounter <= LEVEL5_THRESHOLD) { - return 4; - } else if(icounter <= LEVEL6_THRESHOLD) { - return 5; - } else if(icounter <= LEVEL7_THRESHOLD) { - return 6; - } else if(icounter <= LEVEL8_THRESHOLD) { - return 7; - } else if(icounter <= LEVEL9_THRESHOLD) { - return 8; - } else if(icounter <= LEVEL10_THRESHOLD) { - return 9; - } else if(icounter <= LEVEL11_THRESHOLD) { - return 10; - } else if(icounter <= LEVEL12_THRESHOLD) { - return 11; - } else if(icounter <= LEVEL13_THRESHOLD) { - return 12; - } else if(icounter <= LEVEL14_THRESHOLD) { - return 13; - } else if(icounter <= LEVEL15_THRESHOLD) { - return 14; - } else if(icounter <= LEVEL16_THRESHOLD) { - return 15; - } else if(icounter <= LEVEL17_THRESHOLD) { - return 16; - } else if(icounter <= LEVEL18_THRESHOLD) { - return 16; - } else if(icounter <= LEVEL19_THRESHOLD) { - return 18; - } else if(icounter <= LEVEL20_THRESHOLD) { - return 19; - } else if(icounter <= LEVEL21_THRESHOLD) { - return 20; - } else if(icounter <= LEVEL22_THRESHOLD) { - return 21; - } else if(icounter <= LEVEL23_THRESHOLD) { - return 22; - } else if(icounter <= LEVEL24_THRESHOLD) { - return 23; - } else if(icounter <= LEVEL25_THRESHOLD) { - return 24; - } else if(icounter <= LEVEL26_THRESHOLD) { - return 25; - } else if(icounter <= LEVEL27_THRESHOLD) { - return 26; - } else if(icounter <= LEVEL28_THRESHOLD) { - return 27; - } else if(icounter <= LEVEL29_THRESHOLD) { - return 28; - } else if(icounter <= LEVEL30_THRESHOLD) { - return 29; - } else { - return 30; - } + uint32_t threshold = 0; + for (int i = 0; i < 29; ++i) { + if (icounter <= level_array[i]) { + return i; + } + }; + return 30; } uint32_t dolphin_state_xp_above_last_levelup(uint32_t icounter) { - uint32_t threshold = 0; - if(icounter <= LEVEL2_THRESHOLD) { - threshold = 0; - } else if(icounter <= LEVEL3_THRESHOLD) { - threshold = LEVEL2_THRESHOLD + 1; - } else if(icounter <= LEVEL4_THRESHOLD) { - threshold = LEVEL3_THRESHOLD + 1; - } else if(icounter <= LEVEL5_THRESHOLD) { - threshold = LEVEL4_THRESHOLD + 1; - } else if(icounter <= LEVEL6_THRESHOLD) { - threshold = LEVEL5_THRESHOLD + 1; - } else if(icounter <= LEVEL7_THRESHOLD) { - threshold = LEVEL6_THRESHOLD + 1; - } else if(icounter <= LEVEL8_THRESHOLD) { - threshold = LEVEL7_THRESHOLD + 1; - } else if(icounter <= LEVEL9_THRESHOLD) { - threshold = LEVEL8_THRESHOLD + 1; - } else if(icounter <= LEVEL10_THRESHOLD) { - threshold = LEVEL9_THRESHOLD + 1; - } else if(icounter <= LEVEL11_THRESHOLD) { - threshold = LEVEL10_THRESHOLD + 1; - } else if(icounter <= LEVEL12_THRESHOLD) { - threshold = LEVEL11_THRESHOLD + 1; - } else if(icounter <= LEVEL13_THRESHOLD) { - threshold = LEVEL12_THRESHOLD + 1; - } else if(icounter <= LEVEL14_THRESHOLD) { - threshold = LEVEL13_THRESHOLD + 1; - } else if(icounter <= LEVEL15_THRESHOLD) { - threshold = LEVEL14_THRESHOLD + 1; - } else if(icounter <= LEVEL16_THRESHOLD) { - threshold = LEVEL15_THRESHOLD + 1; - } else if(icounter <= LEVEL17_THRESHOLD) { - threshold = LEVEL16_THRESHOLD + 1; - } else if(icounter <= LEVEL18_THRESHOLD) { - threshold = LEVEL17_THRESHOLD + 1; - } else if(icounter <= LEVEL19_THRESHOLD) { - threshold = LEVEL18_THRESHOLD + 1; - } else if(icounter <= LEVEL20_THRESHOLD) { - threshold = LEVEL19_THRESHOLD + 1; - } else if(icounter <= LEVEL21_THRESHOLD) { - threshold = LEVEL20_THRESHOLD + 1; - } else if(icounter <= LEVEL22_THRESHOLD) { - threshold = LEVEL21_THRESHOLD + 1; - } else if(icounter <= LEVEL23_THRESHOLD) { - threshold = LEVEL22_THRESHOLD + 1; - } else if(icounter <= LEVEL24_THRESHOLD) { - threshold = LEVEL23_THRESHOLD + 1; - } else if(icounter <= LEVEL25_THRESHOLD) { - threshold = LEVEL24_THRESHOLD + 1; - } else if(icounter <= LEVEL26_THRESHOLD) { - threshold = LEVEL25_THRESHOLD + 1; - } else if(icounter <= LEVEL27_THRESHOLD) { - threshold = LEVEL26_THRESHOLD + 1; - } else if(icounter <= LEVEL28_THRESHOLD) { - threshold = LEVEL27_THRESHOLD + 1; - } else if(icounter <= LEVEL29_THRESHOLD) { - threshold = LEVEL28_THRESHOLD + 1; - } else if(icounter <= LEVEL30_THRESHOLD) { - threshold = LEVEL29_THRESHOLD + 1; - } else { - threshold = LEVEL30_THRESHOLD + 1; +if (level_array[0] <= icounter){ + return icounter; +}else{ + for (int i = 1; i < 29; ++i) { + if (icounter <= level_array[i]) { + return level_array[i] - icounter + 1; + } } - return icounter - threshold; +} } uint32_t dolphin_state_xp_to_levelup(uint32_t icounter) { - uint32_t threshold = 0; - if(icounter <= LEVEL2_THRESHOLD) { - threshold = LEVEL2_THRESHOLD; - } else if(icounter <= LEVEL3_THRESHOLD) { - threshold = LEVEL3_THRESHOLD; - } else if(icounter <= LEVEL4_THRESHOLD) { - threshold = LEVEL4_THRESHOLD; - } else if(icounter <= LEVEL5_THRESHOLD) { - threshold = LEVEL5_THRESHOLD; - } else if(icounter <= LEVEL6_THRESHOLD) { - threshold = LEVEL6_THRESHOLD; - } else if(icounter <= LEVEL7_THRESHOLD) { - threshold = LEVEL7_THRESHOLD; - } else if(icounter <= LEVEL8_THRESHOLD) { - threshold = LEVEL8_THRESHOLD; - } else if(icounter <= LEVEL9_THRESHOLD) { - threshold = LEVEL9_THRESHOLD; - } else if(icounter <= LEVEL10_THRESHOLD) { - threshold = LEVEL10_THRESHOLD; - } else if(icounter <= LEVEL11_THRESHOLD) { - threshold = LEVEL11_THRESHOLD; - } else if(icounter <= LEVEL12_THRESHOLD) { - threshold = LEVEL12_THRESHOLD; - } else if(icounter <= LEVEL13_THRESHOLD) { - threshold = LEVEL13_THRESHOLD; - } else if(icounter <= LEVEL14_THRESHOLD) { - threshold = LEVEL14_THRESHOLD; - } else if(icounter <= LEVEL15_THRESHOLD) { - threshold = LEVEL15_THRESHOLD; - } else if(icounter <= LEVEL16_THRESHOLD) { - threshold = LEVEL16_THRESHOLD; - } else if(icounter <= LEVEL17_THRESHOLD) { - threshold = LEVEL17_THRESHOLD; - } else if(icounter <= LEVEL18_THRESHOLD) { - threshold = LEVEL18_THRESHOLD; - } else if(icounter <= LEVEL19_THRESHOLD) { - threshold = LEVEL19_THRESHOLD; - } else if(icounter <= LEVEL20_THRESHOLD) { - threshold = LEVEL20_THRESHOLD; - } else if(icounter <= LEVEL21_THRESHOLD) { - threshold = LEVEL21_THRESHOLD; - } else if(icounter <= LEVEL22_THRESHOLD) { - threshold = LEVEL22_THRESHOLD; - } else if(icounter <= LEVEL23_THRESHOLD) { - threshold = LEVEL23_THRESHOLD; - } else if(icounter <= LEVEL24_THRESHOLD) { - threshold = LEVEL24_THRESHOLD; - } else if(icounter <= LEVEL25_THRESHOLD) { - threshold = LEVEL25_THRESHOLD; - } else if(icounter <= LEVEL26_THRESHOLD) { - threshold = LEVEL26_THRESHOLD; - } else if(icounter <= LEVEL27_THRESHOLD) { - threshold = LEVEL27_THRESHOLD; - } else if(icounter <= LEVEL28_THRESHOLD) { - threshold = LEVEL28_THRESHOLD; - } else if(icounter <= LEVEL29_THRESHOLD) { - threshold = LEVEL29_THRESHOLD; - } else if(icounter <= LEVEL30_THRESHOLD) { - threshold = LEVEL30_THRESHOLD; - } else { - threshold = (uint32_t)-1; +for (int i = 0; i < 29; ++i) { + if (icounter <= level_array[i]) { + return level_array[i] - icounter; } - return threshold - icounter; +} +return (uint32_t)-1 - icounter; } void dolphin_state_on_deed(DolphinState* dolphin_state, DolphinDeed deed) {