From 6161874d074ad768cbe9a8030531f4ce5814a9c7 Mon Sep 17 00:00:00 2001 From: LiquidFenrir Date: Sat, 3 Apr 2021 21:55:52 +0200 Subject: [PATCH] fix a shuffle weirdness (10 - N official ones) from anemone, when setting a N theme shuffle, then a single theme you could only set 10 - N official themes on shuffle afterwards (and even then, it would fail and reset the theme stuff, leaving you able to set however many official themes on shuffle you wanted) this skips the failing step --- source/themes.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/themes.c b/source/themes.c index 229378c..fb2eaf4 100644 --- a/source/themes.c +++ b/source/themes.c @@ -261,13 +261,11 @@ static Result install_theme_internal(Entry_List_s themes, int installmode) SaveData_dat_s* savedata = (SaveData_dat_s*)savedata_buf; memset(&savedata->theme_entry, 0, sizeof(ThemeEntry_s)); - savedata->theme_entry.type = 3; - savedata->theme_entry.index = 0xff; savedata->shuffle = (installmode & THEME_INSTALL_SHUFFLE) ? 1 : 0; + memset(savedata->shuffle_themes, 0, sizeof(ThemeEntry_s)*MAX_SHUFFLE_THEMES); if(installmode & THEME_INSTALL_SHUFFLE) { - memset(savedata->shuffle_themes, 0, sizeof(ThemeEntry_s)*MAX_SHUFFLE_THEMES); for(int i = 0; i < themes.shuffle_count; i++) { savedata->shuffle_themes[i].type = 3; @@ -277,6 +275,11 @@ static Result install_theme_internal(Entry_List_s themes, int installmode) memcpy(savedata->shuffle_seedA, shuffle_seed, 0xB); memcpy(savedata->shuffle_seedB, shuffle_seed, 0xA); } + else + { + savedata->theme_entry.type = 3; + savedata->theme_entry.index = 0xff; + } res = buf_to_file(savedata_size, fsMakePath(PATH_ASCII, "/SaveData.dat"), ArchiveHomeExt, savedata_buf); free(savedata_buf);