diff --git a/assets/gfx_chars/characters/Sonic the Hedgehog/All Seasons/zoom0/Sonic.png b/assets/gfx_chars/characters/Sonic the Hedgehog/All Seasons/zoom0/Sonic.png new file mode 100644 index 0000000..327bc39 Binary files /dev/null and b/assets/gfx_chars/characters/Sonic the Hedgehog/All Seasons/zoom0/Sonic.png differ diff --git a/assets/gfx_chars/characters/Sonic the Hedgehog/All Seasons/zoom1/Sonic.png b/assets/gfx_chars/characters/Sonic the Hedgehog/All Seasons/zoom1/Sonic.png new file mode 100644 index 0000000..55f2483 Binary files /dev/null and b/assets/gfx_chars/characters/Sonic the Hedgehog/All Seasons/zoom1/Sonic.png differ diff --git a/assets/gfx_chars/characters/Sonic the Hedgehog/All Seasons/zoom2/Sonic.png b/assets/gfx_chars/characters/Sonic the Hedgehog/All Seasons/zoom2/Sonic.png new file mode 100644 index 0000000..601a54c Binary files /dev/null and b/assets/gfx_chars/characters/Sonic the Hedgehog/All Seasons/zoom2/Sonic.png differ diff --git a/assets/gfx_chars/sth_Sonic.t3s b/assets/gfx_chars/sth_Sonic.t3s new file mode 100644 index 0000000..d595184 --- /dev/null +++ b/assets/gfx_chars/sth_Sonic.t3s @@ -0,0 +1,4 @@ +--atlas -f rgba -z auto +"characters/Sonic the Hedgehog/All Seasons/zoom0/Sonic.png" +"characters/Sonic the Hedgehog/All Seasons/zoom1/Sonic.png" +"characters/Sonic the Hedgehog/All Seasons/zoom2/Sonic.png" diff --git a/include/sthCharNames.h b/include/sthCharNames.h new file mode 100644 index 0000000..5dece0d --- /dev/null +++ b/include/sthCharNames.h @@ -0,0 +1,13 @@ +#ifndef _ROCKET_PHOTO_SHOOT_SONIC_CHAR_NAMES_HPP +#define _ROCKET_PHOTO_SHOOT_SONIC_CHAR_NAMES_HPP + +extern const char* sthCharacterNames[]; + +extern bool sthCharacterGenders[]; + +extern const char* sthCharacterFileNamesSpring[]; +extern const char* sthCharacterFileNamesSummer[]; +extern const char* sthCharacterFileNamesFall[]; +extern const char* sthCharacterFileNamesWinter[]; + +#endif \ No newline at end of file diff --git a/source/screens/photoStudio.cpp b/source/screens/photoStudio.cpp index 519d39e..f30fc16 100644 --- a/source/screens/photoStudio.cpp +++ b/source/screens/photoStudio.cpp @@ -10,6 +10,7 @@ #include "import_ss4charnames.h" #include "rocketcharnames.h" #include "smCharNames.h" +#include "sthCharNames.h" #include "import_ss1bgnames.h" #include "import_ss2bgnames.h" @@ -47,7 +48,9 @@ void PhotoStudio::getMaxChars() { } } else { // Characters - if (char_highlightedGame[currentCharNum] == 5) { + if (char_highlightedGame[currentCharNum] == 6) { + import_totalCharacters = 0; + } else if (char_highlightedGame[currentCharNum] == 5) { import_totalCharacters = 0; } else if (char_highlightedGame[currentCharNum] == 4) { import_totalCharacters = 3; @@ -92,6 +95,8 @@ const char* PhotoStudio::import_characterName(void) const { return rocketCharacterNames[importCharacterList_cursorPosition[currentCharNum]]; case 5: return smCharacterNames[importCharacterList_cursorPosition[currentCharNum]]; + case 6: + return sthCharacterNames[importCharacterList_cursorPosition[currentCharNum]]; } return "null"; } @@ -120,6 +125,17 @@ const char* PhotoStudio::import_characterFileName(void) const { case 3: return smCharacterFileNamesWinter[importCharacterList_cursorPosition[currentCharNum]]; } + case 6: + switch (seasonNo[currentCharNum]) { + case 0: + return sthCharacterFileNamesSpring[importCharacterList_cursorPosition[currentCharNum]]; + case 1: + return sthCharacterFileNamesSummer[importCharacterList_cursorPosition[currentCharNum]]; + case 2: + return sthCharacterFileNamesFall[importCharacterList_cursorPosition[currentCharNum]]; + case 3: + return sthCharacterFileNamesWinter[importCharacterList_cursorPosition[currentCharNum]]; + } } return "null"; } @@ -148,6 +164,8 @@ const char* PhotoStudio::import_characterNameDisplay(void) const { return rocketCharacterNames[importCharacterList_cursorPosition[currentCharNum]]; case 5: return smCharacterNames[importCharacterList_cursorPosition[currentCharNum]]; + case 6: + return sthCharacterNames[importCharacterList_cursorPosition[currentCharNum]]; } return "null"; } @@ -313,6 +331,9 @@ void PhotoStudio::Draw(void) const { // Game name switch (char_highlightedGame[currentCharNum]) { + case 6: + Gui::DrawStringCentered(0, 8, 0.50, WHITE, "Sonic the Hedgehog series"); + break; case 5: Gui::DrawStringCentered(0, 8, 0.50, WHITE, "Super Mario series"); break; @@ -351,12 +372,17 @@ void PhotoStudio::Draw(void) const { if (!displayNothing) { int i2 = 48; for (int i = import_characterShownFirst[currentCharNum]; i < import_characterShownFirst[currentCharNum]+3; i++) { - if (char_highlightedGame[currentCharNum] == 5) { + if (char_highlightedGame[currentCharNum] == 6) { + if (i >= 1) break; + GFX::DrawSprite(sprites_item_button_idx, 16, i2-20); + GFX::DrawSprite((sthCharacterGenders[i] ? sprites_icon_male_idx : sprites_icon_female_idx), 12, i2-8); + Gui::DrawString(64, i2, 0.65, WHITE, sthCharacterNames[i]); + } else if (char_highlightedGame[currentCharNum] == 5) { + if (i >= 1) break; GFX::DrawSprite(sprites_item_button_idx, 16, i2-20); GFX::DrawSprite((smCharacterGenders[i] ? sprites_icon_male_idx : sprites_icon_female_idx), 12, i2-8); Gui::DrawString(64, i2, 0.65, WHITE, smCharacterNames[i]); } else if (char_highlightedGame[currentCharNum] == 4) { - //if (i >= numberOfExportedCharacters) break; GFX::DrawSprite(sprites_item_button_idx, 16, i2-20); GFX::DrawSprite((rocketCharacterGenders[i] ? sprites_icon_male_idx : sprites_icon_female_idx), 12, i2-8); Gui::DrawString(64, i2, 0.65, WHITE, rocketCharacterNames[i]); @@ -593,7 +619,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) { if (hDown & KEY_DLEFT) { sndHighlight(); char_highlightedGame[currentCharNum]--; - if (char_highlightedGame[currentCharNum] < 0) char_highlightedGame[currentCharNum] = 5; + if (char_highlightedGame[currentCharNum] < 0) char_highlightedGame[currentCharNum] = 6; getMaxChars(); renderTop = true; } @@ -601,7 +627,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) { if (hDown & KEY_DRIGHT) { sndHighlight(); char_highlightedGame[currentCharNum]++; - if (char_highlightedGame[currentCharNum] > 5) char_highlightedGame[currentCharNum] = 0; + if (char_highlightedGame[currentCharNum] > 6) char_highlightedGame[currentCharNum] = 0; getMaxChars(); renderTop = true; } diff --git a/source/smCharNames.c b/source/smCharNames.c index efaf93c..6be0926 100644 --- a/source/smCharNames.c +++ b/source/smCharNames.c @@ -2,8 +2,8 @@ const char* smCharacterNames[] = { "Mario", - "", - "", + "", // TODO: Luigi + "", // TODO: Peach }; bool smCharacterGenders[] = { diff --git a/source/sthCharNames.c b/source/sthCharNames.c new file mode 100644 index 0000000..3a9d481 --- /dev/null +++ b/source/sthCharNames.c @@ -0,0 +1,26 @@ +#include + +const char* sthCharacterNames[] = { + "Sonic", + "", // TODO: Tails + "", // TODO: Knuckles +}; + +bool sthCharacterGenders[] = { + true, // Male + true, // Male + true, // Male +}; + +const char* sthCharacterFileNamesSpring[] = { + "sth_Sonic", +}; +const char* sthCharacterFileNamesSummer[] = { + "sth_Sonic", +}; +const char* sthCharacterFileNamesFall[] = { + "sth_Sonic", +}; +const char* sthCharacterFileNamesWinter[] = { + "sth_Sonic", +}; \ No newline at end of file