Merge pull request #250 from LiquidFenrir/shuffle-fix
make shuffle work on consoles that never used it
This commit is contained in:
@@ -49,8 +49,9 @@ typedef struct {
|
|||||||
u8 _padding1[0x13b8];
|
u8 _padding1[0x13b8];
|
||||||
ThemeEntry_s theme_entry;
|
ThemeEntry_s theme_entry;
|
||||||
ThemeEntry_s shuffle_themes[MAX_SHUFFLE_THEMES];
|
ThemeEntry_s shuffle_themes[MAX_SHUFFLE_THEMES];
|
||||||
u8 _padding2[0xb];
|
u8 shuffle_seedA[0xb];
|
||||||
bool shuffle;
|
u8 shuffle;
|
||||||
|
u8 shuffle_seedB[0xa];
|
||||||
} SaveData_dat_s;
|
} SaveData_dat_s;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@@ -261,18 +261,24 @@ static Result install_theme_internal(Entry_List_s themes, int installmode)
|
|||||||
SaveData_dat_s* savedata = (SaveData_dat_s*)savedata_buf;
|
SaveData_dat_s* savedata = (SaveData_dat_s*)savedata_buf;
|
||||||
|
|
||||||
memset(&savedata->theme_entry, 0, sizeof(ThemeEntry_s));
|
memset(&savedata->theme_entry, 0, sizeof(ThemeEntry_s));
|
||||||
savedata->theme_entry.type = 3;
|
|
||||||
savedata->theme_entry.index = 0xff;
|
|
||||||
|
|
||||||
savedata->shuffle = (installmode & THEME_INSTALL_SHUFFLE);
|
savedata->shuffle = (installmode & THEME_INSTALL_SHUFFLE) ? 1 : 0;
|
||||||
|
memset(savedata->shuffle_themes, 0, sizeof(ThemeEntry_s)*MAX_SHUFFLE_THEMES);
|
||||||
if(installmode & THEME_INSTALL_SHUFFLE)
|
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++)
|
for(int i = 0; i < themes.shuffle_count; i++)
|
||||||
{
|
{
|
||||||
savedata->shuffle_themes[i].type = 3;
|
savedata->shuffle_themes[i].type = 3;
|
||||||
savedata->shuffle_themes[i].index = i;
|
savedata->shuffle_themes[i].index = i;
|
||||||
}
|
}
|
||||||
|
const u8 shuffle_seed[0xB] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
|
||||||
|
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);
|
res = buf_to_file(savedata_size, fsMakePath(PATH_ASCII, "/SaveData.dat"), ArchiveHomeExt, savedata_buf);
|
||||||
|
|||||||
Reference in New Issue
Block a user