mirror of
https://github.com/RocketRobz/SavvyManager.git
synced 2025-06-18 17:15:34 -04:00
Show correct game logo(s) for existing save file(s)
ALSO: Add .ini-only settings to force a specific region for each game
This commit is contained in:
parent
e9aa93e96f
commit
ee9f22fdcb
153
source/main.cpp
153
source/main.cpp
@ -48,6 +48,11 @@ static bool musicPlaying = false;
|
||||
static bool musicLoopPlaying = false;
|
||||
static int musicLoopDelay = 0;
|
||||
|
||||
int ss1Region = -1;
|
||||
static int ss2Region = -1;
|
||||
static int ss3Region = -1;
|
||||
static int ss4Region = -1;
|
||||
|
||||
void loadSettings(void) {
|
||||
CIniFile settingsini(settingsIni);
|
||||
|
||||
@ -55,6 +60,11 @@ void loadSettings(void) {
|
||||
iFps = settingsini.GetInt("SAVVY-MANAGER", "FRAME_RATE", iFps);
|
||||
horiHd = settingsini.GetInt("SAVVY-MANAGER", "HORI_HD", horiHd);
|
||||
|
||||
ss1Region = settingsini.GetInt("SS1", "REGION", ss1Region);
|
||||
ss2Region = settingsini.GetInt("SS2", "REGION", ss2Region);
|
||||
ss3Region = settingsini.GetInt("SS3", "REGION", ss3Region);
|
||||
ss4Region = settingsini.GetInt("SS4", "REGION", ss4Region);
|
||||
|
||||
currentMusicPack = settingsini.GetString("SS2", "CURRENT_MUSIC_PACK", currentMusicPack);
|
||||
}
|
||||
|
||||
@ -120,10 +130,11 @@ int cursorAlpha = 0;
|
||||
|
||||
int ss1Logo = gameSelSprites_title1_idx;
|
||||
int ss2Logo = gameSelSprites_title2_idx;
|
||||
int ss1LogoXpos = 0;
|
||||
int ssLogoXpos = 0;
|
||||
int ss3Logo = gameSelSprites_title3_idx;
|
||||
int ss4Logo = gameSelSprites_title4_idx;
|
||||
int ss1LogoXpos = 0;
|
||||
int ss2LogoXpos = 0;
|
||||
int ss4LogoXpos = 0;
|
||||
|
||||
u32 hDown = 0;
|
||||
u32 hDownRepeat = 0;
|
||||
@ -247,54 +258,88 @@ int main()
|
||||
u32 ss3Id[3] = {0x00196500, 0x0016A100, 0x0012D800};
|
||||
u32 ss4Id[3] = {0x00001C25, 0x00001C26, 0x000019F6};
|
||||
|
||||
switch (sysRegion) {
|
||||
if (ss1Region < 0 || ss1Region >= 6) {
|
||||
ss1Region = sysRegion;
|
||||
}
|
||||
|
||||
switch (ss1Region) {
|
||||
case CFG_REGION_EUR:
|
||||
case CFG_REGION_AUS:
|
||||
ss1Logo = gameSelSprites_title1_E_idx;
|
||||
ss1LogoXpos = 32;
|
||||
break;
|
||||
case CFG_REGION_JPN:
|
||||
ss1Logo = gameSelSprites_title1_J_idx;
|
||||
break;
|
||||
case CFG_REGION_KOR:
|
||||
ss1Logo = gameSelSprites_title1_K_idx;
|
||||
ss1LogoXpos = 64;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (ss2Region < 0 || ss2Region >= 6) {
|
||||
ss2Region = sysRegion;
|
||||
}
|
||||
|
||||
switch (ss2Region) {
|
||||
case CFG_REGION_EUR:
|
||||
case CFG_REGION_AUS:
|
||||
ss2Id[0] = 0x000A9000;
|
||||
ss2Id[1] = 0x000A9100; // Fallback: USA
|
||||
ss3Id[0] = 0x0016A100;
|
||||
ss3Id[1] = 0x00196500; // Fallback: USA
|
||||
ss4Id[0] = 0x00001C26;
|
||||
ss4Id[1] = 0x00001C25; // Fallback: USA
|
||||
ss1Logo = gameSelSprites_title1_E_idx;
|
||||
ss2Logo = gameSelSprites_title2_E_idx;
|
||||
ss3Logo = gameSelSprites_title3_E_idx;
|
||||
ss4Logo = gameSelSprites_title4_E_idx;
|
||||
ss1LogoXpos = 32;
|
||||
ssLogoXpos = 32;
|
||||
break;
|
||||
case CFG_REGION_JPN:
|
||||
ss2Id[0] = 0x0005D100;
|
||||
ss2Id[1] = 0x000C4F00; // Fallback: KOR
|
||||
ss2Id[2] = 0x000A9100; // Fallback: USA
|
||||
ss2Id[3] = 0x000A9000; // Fallback: EUR/AUS
|
||||
ss3Id[0] = 0x0012D800;
|
||||
ss3Id[1] = 0x00196500; // Fallback: USA
|
||||
ss3Id[2] = 0x0016A100; // Fallback: EUR/AUS
|
||||
ss4Id[0] = 0x000019F6;
|
||||
ss4Id[1] = 0x00001C25; // Fallback: USA
|
||||
ss4Id[2] = 0x00001C26; // Fallback: EUR/AUS
|
||||
ss1Logo = gameSelSprites_title1_J_idx;
|
||||
ss2Logo = gameSelSprites_title2_J_idx;
|
||||
ss3Logo = gameSelSprites_title3_J_idx;
|
||||
ss4Logo = gameSelSprites_title4_J_idx;
|
||||
break;
|
||||
case CFG_REGION_KOR:
|
||||
ss2Id[0] = 0x000C4F00;
|
||||
ss2Id[1] = 0x0005D100; // Fallback: JPN
|
||||
ss2Id[2] = 0x000A9100; // Fallback: USA
|
||||
ss2Id[3] = 0x000A9000; // Fallback: EUR/AUS
|
||||
ss3Id[0] = 0x0012D800; // JPN
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (ss3Region < 0 || ss3Region >= 6) {
|
||||
ss3Region = sysRegion;
|
||||
}
|
||||
|
||||
switch (ss3Region) {
|
||||
case CFG_REGION_EUR:
|
||||
case CFG_REGION_AUS:
|
||||
ss3Id[0] = 0x0016A100;
|
||||
ss3Id[1] = 0x00196500; // Fallback: USA
|
||||
break;
|
||||
case CFG_REGION_JPN:
|
||||
case CFG_REGION_KOR:
|
||||
ss3Id[0] = 0x0012D800;
|
||||
ss3Id[1] = 0x00196500; // Fallback: USA
|
||||
ss3Id[2] = 0x0016A100; // Fallback: EUR/AUS
|
||||
ss4Id[0] = 0x000019F6; // JPN
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (ss4Region < 0 || ss4Region >= 6) {
|
||||
ss4Region = sysRegion;
|
||||
}
|
||||
|
||||
switch (ss4Region) {
|
||||
case CFG_REGION_EUR:
|
||||
case CFG_REGION_AUS:
|
||||
ss4Id[0] = 0x00001C26;
|
||||
ss4Id[1] = 0x00001C25; // Fallback: USA
|
||||
break;
|
||||
case CFG_REGION_JPN:
|
||||
case CFG_REGION_KOR:
|
||||
ss4Id[0] = 0x000019F6;
|
||||
ss4Id[1] = 0x00001C25; // Fallback: USA
|
||||
ss4Id[2] = 0x00001C26; // Fallback: EUR/AUS
|
||||
ss1Logo = gameSelSprites_title1_K_idx;
|
||||
ss2Logo = gameSelSprites_title2_K_idx;
|
||||
ss3Logo = gameSelSprites_title3_J_idx;
|
||||
ss4Logo = gameSelSprites_title4_J_idx;
|
||||
ss1LogoXpos = 64;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -450,6 +495,54 @@ int main()
|
||||
|
||||
ss3DLCharactersBackedUp = (access("sdmc:/3ds/SavvyManager/SS3/dlCharacters.bak", F_OK) == 0);
|
||||
|
||||
switch (saveRegion[1]) {
|
||||
case CFG_REGION_EUR:
|
||||
case CFG_REGION_AUS:
|
||||
ss2Logo = gameSelSprites_title2_E_idx;
|
||||
ss2LogoXpos = 32;
|
||||
break;
|
||||
case CFG_REGION_JPN:
|
||||
ss2Logo = gameSelSprites_title2_J_idx;
|
||||
break;
|
||||
case CFG_REGION_KOR:
|
||||
ss2Logo = gameSelSprites_title2_K_idx;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (saveRegion[2]) {
|
||||
case CFG_REGION_EUR:
|
||||
case CFG_REGION_AUS:
|
||||
ss3Logo = gameSelSprites_title3_E_idx;
|
||||
break;
|
||||
case CFG_REGION_JPN:
|
||||
case CFG_REGION_KOR:
|
||||
ss3Logo = gameSelSprites_title3_J_idx;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
switch (saveRegion[3]) {
|
||||
case CFG_REGION_EUR:
|
||||
case CFG_REGION_AUS:
|
||||
ss4Id[0] = 0x00001C26;
|
||||
ss4Id[1] = 0x00001C25; // Fallback: USA
|
||||
ss4Logo = gameSelSprites_title4_E_idx;
|
||||
ss4LogoXpos = 32;
|
||||
break;
|
||||
case CFG_REGION_JPN:
|
||||
case CFG_REGION_KOR:
|
||||
ss4Id[0] = 0x000019F6;
|
||||
ss4Id[1] = 0x00001C25; // Fallback: USA
|
||||
ss4Id[2] = 0x00001C26; // Fallback: EUR/AUS
|
||||
ss4Logo = gameSelSprites_title4_J_idx;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
sprintf(verText, "Ver. %i.%i.%i", VERSION_MAJOR, VERSION_MINOR, VERSION_MICRO);
|
||||
|
||||
C3D_FrameRate(iFps);
|
||||
|
@ -571,7 +571,8 @@ const char* CharacterChange::import_characterNameDisplay(void) const {
|
||||
}
|
||||
|
||||
const char* CharacterChange::ss1Title(void) const {
|
||||
switch (sysRegion) {
|
||||
extern int ss1Region;
|
||||
switch (ss1Region) {
|
||||
default:
|
||||
return "Style Savvy";
|
||||
case CFG_REGION_EUR:
|
||||
@ -585,7 +586,7 @@ const char* CharacterChange::ss1Title(void) const {
|
||||
}
|
||||
|
||||
const char* CharacterChange::ss2Title(void) const {
|
||||
switch (sysRegion) {
|
||||
switch (saveRegion[1]) {
|
||||
default:
|
||||
return "Style Savvy: Trendsetters";
|
||||
case CFG_REGION_EUR:
|
||||
@ -599,7 +600,7 @@ const char* CharacterChange::ss2Title(void) const {
|
||||
}
|
||||
|
||||
const char* CharacterChange::ss3Title(void) const {
|
||||
switch (sysRegion) {
|
||||
switch (saveRegion[2]) {
|
||||
default:
|
||||
return "Style Savvy: Fashion Forward";
|
||||
case CFG_REGION_EUR:
|
||||
@ -613,7 +614,7 @@ const char* CharacterChange::ss3Title(void) const {
|
||||
}
|
||||
|
||||
const char* CharacterChange::ss4Title(void) const {
|
||||
switch (sysRegion) {
|
||||
switch (saveRegion[3]) {
|
||||
default:
|
||||
return "Style Savvy: Styling Star";
|
||||
case CFG_REGION_EUR:
|
||||
|
@ -9,10 +9,11 @@ extern bool exiting;
|
||||
|
||||
extern int ss1Logo;
|
||||
extern int ss2Logo;
|
||||
extern int ss1LogoXpos;
|
||||
extern int ssLogoXpos;
|
||||
extern int ss3Logo;
|
||||
extern int ss4Logo;
|
||||
extern int ss1LogoXpos;
|
||||
extern int ss2LogoXpos;
|
||||
extern int ss4LogoXpos;
|
||||
extern bool ss2SaveFound;
|
||||
extern bool ss3SaveFound;
|
||||
extern bool ss4SaveFound;
|
||||
@ -114,7 +115,7 @@ void GameSelect::Draw(void) const {
|
||||
break;
|
||||
case 1:
|
||||
GFX::DrawGameBgSprite(gameBgSprites_title2_bg_idx, 0, 0);
|
||||
GFX::DrawGameSelSprite(ss2Logo, ssLogoXpos, 56);
|
||||
GFX::DrawGameSelSprite(ss2Logo, ss2LogoXpos, 56);
|
||||
break;
|
||||
case 2:
|
||||
GFX::DrawGameBgSprite(gameBgSprites_title3_bg_idx, 0, 0);
|
||||
@ -122,7 +123,7 @@ void GameSelect::Draw(void) const {
|
||||
break;
|
||||
case 3:
|
||||
GFX::DrawGameBgSprite((sysRegion==CFG_REGION_EUR || sysRegion==CFG_REGION_AUS) ? gameBgSprites_title4_bgE_idx : gameBgSprites_title4_bg_idx, 0, 0);
|
||||
GFX::DrawGameSelSprite(ss4Logo, ssLogoXpos, 56);
|
||||
GFX::DrawGameSelSprite(ss4Logo, ss4LogoXpos, 56);
|
||||
break;
|
||||
}
|
||||
Gui::DrawString(8, 8, 0.50, BLACK, "Select a game to manage its save data.");
|
||||
|
@ -10,10 +10,11 @@
|
||||
extern int ss1Logo;
|
||||
extern int ss2Screenshot;
|
||||
extern int ss2Logo;
|
||||
extern int ss1LogoXpos;
|
||||
extern int ssLogoXpos;
|
||||
extern int ss3Logo;
|
||||
extern int ss4Logo;
|
||||
extern int ss1LogoXpos;
|
||||
extern int ss2LogoXpos;
|
||||
extern int ss4LogoXpos;
|
||||
extern bool ss2SaveFound;
|
||||
extern bool ss3SaveFound;
|
||||
extern bool ss4SaveFound;
|
||||
@ -70,13 +71,13 @@ void WhatToDo::Draw(void) const {
|
||||
GFX::DrawGameSelSprite(ss1Logo, 40+ss1LogoXpos, 56);
|
||||
break;
|
||||
case 1:
|
||||
GFX::DrawGameSelSprite(ss2Logo, 40+ssLogoXpos, 56);
|
||||
GFX::DrawGameSelSprite(ss2Logo, 40+ss2LogoXpos, 56);
|
||||
break;
|
||||
case 2:
|
||||
GFX::DrawGameSelSprite(ss3Logo, 40, 56);
|
||||
break;
|
||||
case 3:
|
||||
GFX::DrawGameSelSprite(ss4Logo, 40+ssLogoXpos, 56);
|
||||
GFX::DrawGameSelSprite(ss4Logo, 40+ss4LogoXpos, 56);
|
||||
break;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user