mirror of
https://github.com/RocketRobz/SuperAllStarPhotoStudio.git
synced 2025-06-18 17:15:35 -04:00
Add Juno and Vela, from *Jet Force Gemini*
This commit is contained in:
parent
426e7fd2af
commit
a5efadd99a
Binary file not shown.
After Width: | Height: | Size: 70 KiB |
Binary file not shown.
After Width: | Height: | Size: 56 KiB |
Binary file not shown.
After Width: | Height: | Size: 119 KiB |
Binary file not shown.
After Width: | Height: | Size: 127 KiB |
Binary file not shown.
After Width: | Height: | Size: 141 KiB |
Binary file not shown.
After Width: | Height: | Size: 170 KiB |
4
assets/gfx_chars/jfg_Juno.t3s
Normal file
4
assets/gfx_chars/jfg_Juno.t3s
Normal file
@ -0,0 +1,4 @@
|
||||
--atlas -f rgba -z auto
|
||||
"characters/Jet Force Gemini/All Seasons/zoom0/Juno.png"
|
||||
"characters/Jet Force Gemini/All Seasons/zoom1/Juno.png"
|
||||
"characters/Jet Force Gemini/All Seasons/zoom2/Juno.png"
|
4
assets/gfx_chars/jfg_Vela.t3s
Normal file
4
assets/gfx_chars/jfg_Vela.t3s
Normal file
@ -0,0 +1,4 @@
|
||||
--atlas -f rgba -z auto
|
||||
"characters/Jet Force Gemini/All Seasons/zoom0/Vela.png"
|
||||
"characters/Jet Force Gemini/All Seasons/zoom1/Vela.png"
|
||||
"characters/Jet Force Gemini/All Seasons/zoom2/Vela.png"
|
13
include/jfgCharNames.h
Normal file
13
include/jfgCharNames.h
Normal file
@ -0,0 +1,13 @@
|
||||
#ifndef _ROCKET_PHOTO_SHOOT_GEMINI_CHAR_NAMES_HPP
|
||||
#define _ROCKET_PHOTO_SHOOT_GEMINI_CHAR_NAMES_HPP
|
||||
|
||||
extern const char* jfgCharacterNames[];
|
||||
|
||||
extern bool jfgCharacterGenders[];
|
||||
|
||||
extern const char* jfgCharacterFileNamesSpring[];
|
||||
extern const char* jfgCharacterFileNamesSummer[];
|
||||
extern const char* jfgCharacterFileNamesFall[];
|
||||
extern const char* jfgCharacterFileNamesWinter[];
|
||||
|
||||
#endif
|
@ -36,7 +36,7 @@ private:
|
||||
|
||||
mutable int cursorX, cursorY;
|
||||
int photo_highlightedGame = 0;
|
||||
int char_highlightedGame[5] = {4};
|
||||
int char_highlightedGame[5] = {0};
|
||||
int seasonNo[5] = {0};
|
||||
int currentCharNum = 0;
|
||||
int charsShown = 0;
|
||||
|
@ -2,8 +2,10 @@
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
#define charSpriteSize 0x100000
|
||||
|
||||
static char bgSpriteMem[4][0x200000];
|
||||
static char charSpriteMem[5][0x80000];
|
||||
static char charSpriteMem[5][charSpriteSize];
|
||||
|
||||
static C2D_SpriteSheet sprites;
|
||||
static C2D_SpriteSheet bgSprite;
|
||||
@ -355,10 +357,9 @@ bool GFX::loadCharSprite(int num, const char* t3xPathAllSeasons, const char* t3x
|
||||
}
|
||||
|
||||
FILE* charFile = fopen((allSeasons ? t3xPathAllSeasons : t3xPathOneSeason), "rb");
|
||||
fread((void*)charSpriteMem[num], 1, 0x80000, charFile);
|
||||
fread((void*)charSpriteMem[num], 1, charSpriteSize, charFile);
|
||||
fclose(charFile);
|
||||
|
||||
//chracterSprite = C2D_SpriteSheetLoadFromMem(charSpriteMem[num], 0x80000);
|
||||
chracterSpriteFound[num] = true;
|
||||
|
||||
return true;
|
||||
@ -370,7 +371,7 @@ void GFX::loadCharSpriteMem(int num) {
|
||||
}
|
||||
|
||||
if (!chracterSpriteFound[num]) return;
|
||||
chracterSprite = C2D_SpriteSheetLoadFromMem(charSpriteMem[num], 0x80000);
|
||||
chracterSprite = C2D_SpriteSheetLoadFromMem(charSpriteMem[num], charSpriteSize);
|
||||
chracterSpriteLoaded = true;
|
||||
}
|
||||
|
||||
|
30
source/jfgCharNames.c
Normal file
30
source/jfgCharNames.c
Normal file
@ -0,0 +1,30 @@
|
||||
#include <stdbool.h>
|
||||
|
||||
const char* jfgCharacterNames[] = {
|
||||
"Juno",
|
||||
"Vela",
|
||||
"",
|
||||
};
|
||||
|
||||
bool jfgCharacterGenders[] = {
|
||||
true, // Male
|
||||
false, // Female
|
||||
true, // Male
|
||||
};
|
||||
|
||||
const char* jfgCharacterFileNamesSpring[] = {
|
||||
"jfg_Juno",
|
||||
"jfg_Vela",
|
||||
};
|
||||
const char* jfgCharacterFileNamesSummer[] = {
|
||||
"jfg_Juno",
|
||||
"jfg_Vela",
|
||||
};
|
||||
const char* jfgCharacterFileNamesFall[] = {
|
||||
"jfg_Juno",
|
||||
"jfg_Vela",
|
||||
};
|
||||
const char* jfgCharacterFileNamesWinter[] = {
|
||||
"jfg_Juno",
|
||||
"jfg_Vela",
|
||||
};
|
@ -11,6 +11,7 @@
|
||||
#include "rocketcharnames.h"
|
||||
#include "smCharNames.h"
|
||||
#include "sthCharNames.h"
|
||||
#include "jfgCharNames.h"
|
||||
|
||||
#include "import_ss1bgnames.h"
|
||||
#include "import_ss2bgnames.h"
|
||||
@ -20,6 +21,8 @@
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
static int charPageOrder[] = {4, 7, 5, 6, 0, 1, 2, 3};
|
||||
|
||||
static int currentCharacterRendered = 0;
|
||||
extern bool musicPlayStarted;
|
||||
extern bool clearTop;
|
||||
@ -53,19 +56,22 @@ void PhotoStudio::getMaxChars() {
|
||||
}
|
||||
} else {
|
||||
// Characters
|
||||
if (char_highlightedGame[currentCharNum] == 6) {
|
||||
const int highlightedGame = char_highlightedGame[currentCharNum];
|
||||
if (charPageOrder[highlightedGame] == 7) {
|
||||
import_totalCharacters = 1;
|
||||
} else if (charPageOrder[highlightedGame] == 6) {
|
||||
import_totalCharacters = 0;
|
||||
} else if (char_highlightedGame[currentCharNum] == 5) {
|
||||
} else if (charPageOrder[highlightedGame] == 5) {
|
||||
import_totalCharacters = 0;
|
||||
} else if (char_highlightedGame[currentCharNum] == 4) {
|
||||
} else if (charPageOrder[highlightedGame] == 4) {
|
||||
import_totalCharacters = 3;
|
||||
} else if (char_highlightedGame[currentCharNum] == 3) {
|
||||
} else if (charPageOrder[highlightedGame] == 3) {
|
||||
import_totalCharacters = 0xD;
|
||||
} else if (char_highlightedGame[currentCharNum] == 2) {
|
||||
} else if (charPageOrder[highlightedGame] == 2) {
|
||||
import_totalCharacters = 0x10;
|
||||
} else if (char_highlightedGame[currentCharNum] == 1) {
|
||||
} else if (charPageOrder[highlightedGame] == 1) {
|
||||
import_totalCharacters = 0x12;
|
||||
} else if (char_highlightedGame[currentCharNum] == 0) {
|
||||
} else if (charPageOrder[highlightedGame] == 0) {
|
||||
import_totalCharacters = 0x7;
|
||||
}
|
||||
}
|
||||
@ -87,7 +93,7 @@ const char* PhotoStudio::seasonName(void) const {
|
||||
}
|
||||
|
||||
const char* PhotoStudio::import_characterName(void) const {
|
||||
switch (char_highlightedGame[currentCharNum]) {
|
||||
switch (charPageOrder[char_highlightedGame[currentCharNum]]) {
|
||||
case 0:
|
||||
return import_ss1CharacterNames[importCharacterList_cursorPosition[currentCharNum]];
|
||||
case 1:
|
||||
@ -102,12 +108,14 @@ const char* PhotoStudio::import_characterName(void) const {
|
||||
return smCharacterNames[importCharacterList_cursorPosition[currentCharNum]];
|
||||
case 6:
|
||||
return sthCharacterNames[importCharacterList_cursorPosition[currentCharNum]];
|
||||
case 7:
|
||||
return jfgCharacterNames[importCharacterList_cursorPosition[currentCharNum]];
|
||||
}
|
||||
return "null";
|
||||
}
|
||||
|
||||
const char* PhotoStudio::import_characterFileName(void) const {
|
||||
switch (char_highlightedGame[currentCharNum]) {
|
||||
switch (charPageOrder[char_highlightedGame[currentCharNum]]) {
|
||||
case 4:
|
||||
switch (seasonNo[currentCharNum]) {
|
||||
case 0:
|
||||
@ -141,6 +149,17 @@ const char* PhotoStudio::import_characterFileName(void) const {
|
||||
case 3:
|
||||
return sthCharacterFileNamesWinter[importCharacterList_cursorPosition[currentCharNum]];
|
||||
}
|
||||
case 7:
|
||||
switch (seasonNo[currentCharNum]) {
|
||||
case 0:
|
||||
return jfgCharacterFileNamesSpring[importCharacterList_cursorPosition[currentCharNum]];
|
||||
case 1:
|
||||
return jfgCharacterFileNamesSummer[importCharacterList_cursorPosition[currentCharNum]];
|
||||
case 2:
|
||||
return jfgCharacterFileNamesFall[importCharacterList_cursorPosition[currentCharNum]];
|
||||
case 3:
|
||||
return jfgCharacterFileNamesWinter[importCharacterList_cursorPosition[currentCharNum]];
|
||||
}
|
||||
}
|
||||
return "null";
|
||||
}
|
||||
@ -156,7 +175,7 @@ const char* PhotoStudio::import_SS2CharacterNames(int i) const {
|
||||
}
|
||||
|
||||
const char* PhotoStudio::import_characterNameDisplay(void) const {
|
||||
switch (char_highlightedGame[currentCharNum]) {
|
||||
switch (charPageOrder[char_highlightedGame[currentCharNum]]) {
|
||||
case 0:
|
||||
return import_ss1CharacterNames[importCharacterList_cursorPosition[currentCharNum]];
|
||||
case 1:
|
||||
@ -171,6 +190,8 @@ const char* PhotoStudio::import_characterNameDisplay(void) const {
|
||||
return smCharacterNames[importCharacterList_cursorPosition[currentCharNum]];
|
||||
case 6:
|
||||
return sthCharacterNames[importCharacterList_cursorPosition[currentCharNum]];
|
||||
case 7:
|
||||
return jfgCharacterNames[importCharacterList_cursorPosition[currentCharNum]];
|
||||
}
|
||||
return "null";
|
||||
}
|
||||
@ -247,7 +268,7 @@ void PhotoStudio::drawMsg(void) const {
|
||||
void PhotoStudio::loadChrImage(void) {
|
||||
previewCharacter = false;
|
||||
gspWaitForVBlank();
|
||||
if (char_highlightedGame[currentCharNum] >= 4) {
|
||||
if (charPageOrder[char_highlightedGame[currentCharNum]] >= 4) {
|
||||
/*if (numberOfExportedCharacters > 0) {
|
||||
sprintf(chrFilePath, "sdmc:/3ds/SavvyManager/SS%i/characters/previews/%s.t3x", 4, getExportedCharacterName(importCharacterList_cursorPosition[currentCharNum])); // All Seasons
|
||||
} else {
|
||||
@ -296,7 +317,7 @@ void PhotoStudio::Draw(void) const {
|
||||
}
|
||||
GFX::showCharSprite(0, characterFlipH[0], zoomIn, charFadeAlpha, displayStudioBg);
|
||||
} else {
|
||||
Gui::DrawStringCentered(0, 104, 0.65, WHITE, (/*char_highlightedGame[currentCharNum]==4 ? "Preview not found." :*/ "Preview unavailable."));
|
||||
Gui::DrawStringCentered(0, 104, 0.65, WHITE, (/*charPageOrder[char_highlightedGame[currentCharNum]]==4 ? "Preview not found." :*/ "Preview unavailable."));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -335,7 +356,10 @@ void PhotoStudio::Draw(void) const {
|
||||
cursorY = 64+(48*importCharacterList_cursorPositionOnScreen[currentCharNum]);
|
||||
|
||||
// Game name
|
||||
switch (char_highlightedGame[currentCharNum]) {
|
||||
switch (charPageOrder[char_highlightedGame[currentCharNum]]) {
|
||||
case 7:
|
||||
Gui::DrawStringCentered(0, 8, 0.50, WHITE, "Jet Force Gemini");
|
||||
break;
|
||||
case 6:
|
||||
Gui::DrawStringCentered(0, 8, 0.50, WHITE, "Sonic the Hedgehog series");
|
||||
break;
|
||||
@ -365,7 +389,7 @@ void PhotoStudio::Draw(void) const {
|
||||
Gui::DrawString(96, 184, 0.55, WHITE, ": Remove character");
|
||||
}
|
||||
|
||||
//if (char_highlightedGame[currentCharNum] != 4) {
|
||||
//if (charPageOrder[char_highlightedGame[currentCharNum]] != 4) {
|
||||
// Selected season
|
||||
Gui::DrawString(120-36, 208, 0.65, WHITE, "L");
|
||||
Gui::DrawStringCentered(-36, 210, 0.50, WHITE, seasonName());
|
||||
@ -377,33 +401,38 @@ 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] == 6) {
|
||||
if (charPageOrder[char_highlightedGame[currentCharNum]] == 7) {
|
||||
if (i >= 2) break;
|
||||
GFX::DrawSprite(sprites_item_button_idx, 16, i2-20);
|
||||
GFX::DrawSprite((jfgCharacterGenders[i] ? sprites_icon_male_idx : sprites_icon_female_idx), 12, i2-8);
|
||||
Gui::DrawString(64, i2, 0.65, WHITE, jfgCharacterNames[i]);
|
||||
} else if (charPageOrder[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) {
|
||||
} else if (charPageOrder[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) {
|
||||
} else if (charPageOrder[char_highlightedGame[currentCharNum]] == 4) {
|
||||
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]);
|
||||
} else if (char_highlightedGame[currentCharNum] == 3) {
|
||||
} else if (charPageOrder[char_highlightedGame[currentCharNum]] == 3) {
|
||||
GFX::DrawSprite(sprites_item_button_idx, 16, i2-20);
|
||||
GFX::DrawSprite((import_ss4CharacterGenders[i] ? sprites_icon_male_idx : sprites_icon_female_idx), 12, i2-8);
|
||||
Gui::DrawString(64, i2, 0.65, WHITE, import_ss4CharacterNames[i]);
|
||||
} else if (char_highlightedGame[currentCharNum] == 2) {
|
||||
} else if (charPageOrder[char_highlightedGame[currentCharNum]] == 2) {
|
||||
GFX::DrawSprite(sprites_item_button_idx, 16, i2-20);
|
||||
GFX::DrawSprite((import_ss3CharacterGenders[i] ? sprites_icon_male_idx : sprites_icon_female_idx), 12, i2-8);
|
||||
Gui::DrawString(64, i2, 0.65, WHITE, import_ss3CharacterNames[i]);
|
||||
} else if (char_highlightedGame[currentCharNum] == 1) {
|
||||
} else if (charPageOrder[char_highlightedGame[currentCharNum]] == 1) {
|
||||
GFX::DrawSprite(sprites_item_button_idx, 16, i2-20);
|
||||
GFX::DrawSprite((import_ss2CharacterGenders[i] ? sprites_icon_male_idx : sprites_icon_female_idx)/*+import_ss2CharacterTieColors[i]*/, 12, i2-8);
|
||||
Gui::DrawString(64, i2, 0.65, WHITE, import_SS2CharacterNames(i));
|
||||
} else if (char_highlightedGame[currentCharNum] == 0) {
|
||||
} else if (charPageOrder[char_highlightedGame[currentCharNum]] == 0) {
|
||||
GFX::DrawSprite(sprites_item_button_idx, 16, i2-20);
|
||||
GFX::DrawSprite((import_ss1CharacterGenders[i] ? sprites_icon_male_idx : sprites_icon_female_idx), 12, i2-8);
|
||||
Gui::DrawString(64, i2, 0.65, WHITE, import_ss1CharacterNames[i]);
|
||||
@ -631,7 +660,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] = 6;
|
||||
if (char_highlightedGame[currentCharNum] < 0) char_highlightedGame[currentCharNum] = 7;
|
||||
getMaxChars();
|
||||
renderTop = true;
|
||||
}
|
||||
@ -639,7 +668,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
||||
if (hDown & KEY_DRIGHT) {
|
||||
sndHighlight();
|
||||
char_highlightedGame[currentCharNum]++;
|
||||
if (char_highlightedGame[currentCharNum] > 6) char_highlightedGame[currentCharNum] = 0;
|
||||
if (char_highlightedGame[currentCharNum] > 7) char_highlightedGame[currentCharNum] = 0;
|
||||
getMaxChars();
|
||||
renderTop = true;
|
||||
}
|
||||
@ -648,7 +677,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
||||
importCharacterList_cursorPosition[currentCharNum] = 0;
|
||||
importCharacterList_cursorPositionOnScreen[currentCharNum] = 0;
|
||||
import_characterShownFirst[currentCharNum] = 0;
|
||||
/*if (char_highlightedGame[currentCharNum] == 4) {
|
||||
/*if (charPageOrder[char_highlightedGame[currentCharNum]] == 4) {
|
||||
previewCharacter = false;
|
||||
if (!exportedCharListGotten) {
|
||||
displayNothing = true;
|
||||
@ -663,7 +692,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
||||
loadChrImage();
|
||||
}
|
||||
|
||||
//if (char_highlightedGame[currentCharNum] != 4) {
|
||||
//if (charPageOrder[char_highlightedGame[currentCharNum]] != 4) {
|
||||
if ((hDown & KEY_L) || (hDown & KEY_ZL)) {
|
||||
sndHighlight();
|
||||
seasonNo[currentCharNum]--;
|
||||
@ -912,7 +941,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
||||
sndSelect();
|
||||
displayNothing = true;
|
||||
subScreenMode = 2;
|
||||
/*if ((subScreenMode == 2) && (char_highlightedGame[currentCharNum] == 4) && !exportedCharListGotten) {
|
||||
/*if ((subScreenMode == 2) && (charPageOrder[char_highlightedGame[currentCharNum]] == 4) && !exportedCharListGotten) {
|
||||
gspWaitForVBlank();
|
||||
getExportedCharacterContents();
|
||||
exportedCharListGotten = true;
|
||||
|
Loading…
Reference in New Issue
Block a user