Add pose changing for Grace
Currently has 3 poses ALSO: Disable music playback in DS(i) version
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 63 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 61 KiB |
After Width: | Height: | Size: 58 KiB |
After Width: | Height: | Size: 33 KiB |
After Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 57 KiB |
4
3ds/assets/gfx_chars/ss4_Grace0_pose1.t3s
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
--atlas -f rgba -z auto
|
||||||
|
"characters/Style Savvy series/Grace/Spring/pose1/zoom0.png"
|
||||||
|
"characters/Style Savvy series/Grace/Spring/pose1/zoom1.png"
|
||||||
|
"characters/Style Savvy series/Grace/Spring/pose1/zoom2.png"
|
4
3ds/assets/gfx_chars/ss4_Grace0_pose2.t3s
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
--atlas -f rgba -z auto
|
||||||
|
"characters/Style Savvy series/Grace/Spring/pose2/zoom0.png"
|
||||||
|
"characters/Style Savvy series/Grace/Spring/pose2/zoom1.png"
|
||||||
|
"characters/Style Savvy series/Grace/Spring/pose2/zoom2.png"
|
4
3ds/assets/gfx_chars/ss4_Grace0_pose3.t3s
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
--atlas -f rgba -z auto
|
||||||
|
"characters/Style Savvy series/Grace/Spring/pose3/zoom0.png"
|
||||||
|
"characters/Style Savvy series/Grace/Spring/pose3/zoom1.png"
|
||||||
|
"characters/Style Savvy series/Grace/Spring/pose3/zoom2.png"
|
@ -483,7 +483,7 @@ void GFX::reloadBgSprite() {
|
|||||||
loadBgSprite();
|
loadBgSprite();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GFX::loadCharSprite(int num, const char* t3xPathAllSeasons, const char* t3xPathOneSeason) {
|
bool GFX::loadCharSprite(int num, const char* t3xPathPose, const char* t3xPathAllSeasons, const char* t3xPathOneSeason) {
|
||||||
if (chracterSpriteLoaded) {
|
if (chracterSpriteLoaded) {
|
||||||
C2D_SpriteSheetFree(chracterSprite);
|
C2D_SpriteSheetFree(chracterSprite);
|
||||||
chracterSpriteLoaded = false;
|
chracterSpriteLoaded = false;
|
||||||
@ -491,7 +491,13 @@ bool GFX::loadCharSprite(int num, const char* t3xPathAllSeasons, const char* t3x
|
|||||||
chracterSpriteFound[num] = false;
|
chracterSpriteFound[num] = false;
|
||||||
bool allSeasons = true;
|
bool allSeasons = true;
|
||||||
bool fileFound = false;
|
bool fileFound = false;
|
||||||
fileFound = (access(t3xPathAllSeasons, F_OK) == 0);
|
bool poseable = false;
|
||||||
|
fileFound = (access(t3xPathPose, F_OK) == 0);
|
||||||
|
if (fileFound) {
|
||||||
|
poseable = true;
|
||||||
|
} else {
|
||||||
|
fileFound = (access(t3xPathAllSeasons, F_OK) == 0);
|
||||||
|
}
|
||||||
if (!fileFound) {
|
if (!fileFound) {
|
||||||
allSeasons = false;
|
allSeasons = false;
|
||||||
fileFound = (access(t3xPathOneSeason, F_OK) == 0);
|
fileFound = (access(t3xPathOneSeason, F_OK) == 0);
|
||||||
@ -501,7 +507,7 @@ bool GFX::loadCharSprite(int num, const char* t3xPathAllSeasons, const char* t3x
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
FILE* charFile = fopen((allSeasons ? t3xPathAllSeasons : t3xPathOneSeason), "rb");
|
FILE* charFile = fopen(poseable ? t3xPathPose : (allSeasons ? t3xPathAllSeasons : t3xPathOneSeason), "rb");
|
||||||
fread((void*)charSpriteMem[num], 1, charSpriteSize, charFile);
|
fread((void*)charSpriteMem[num], 1, charSpriteSize, charFile);
|
||||||
fclose(charFile);
|
fclose(charFile);
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ namespace GFX {
|
|||||||
void unloadGameSelSheets();
|
void unloadGameSelSheets();
|
||||||
|
|
||||||
// Sprite Functions.
|
// Sprite Functions.
|
||||||
bool loadCharSprite(int num, const char* t3xPathAllSeasons, const char* t3xPathOneSeason);
|
bool loadCharSprite(int num, const char* t3xPathPose, const char* t3xPathAllSeasons, const char* t3xPathOneSeason);
|
||||||
#ifdef __3DS__
|
#ifdef __3DS__
|
||||||
void loadCharSpriteMem(int num);
|
void loadCharSpriteMem(int num);
|
||||||
#else
|
#else
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
#define _SAVVY_MANAGER_IMPORT_SS1_CHAR_NAMES_HPP
|
#define _SAVVY_MANAGER_IMPORT_SS1_CHAR_NAMES_HPP
|
||||||
|
|
||||||
extern const char* import_ss1CharacterNames[8];
|
extern const char* import_ss1CharacterNames[8];
|
||||||
|
|
||||||
extern bool import_ss1CharacterGenders[8];
|
extern bool import_ss1CharacterGenders[8];
|
||||||
|
extern int import_ss1CharacterPoses[8];
|
||||||
|
|
||||||
#endif
|
#endif
|
@ -37,6 +37,7 @@ private:
|
|||||||
const char* charGameTitle(void) const;
|
const char* charGameTitle(void) const;
|
||||||
const char* bgmGameTitle(void) const;
|
const char* bgmGameTitle(void) const;
|
||||||
bool charGender(int i) const;
|
bool charGender(int i) const;
|
||||||
|
int charPose(int i) const;
|
||||||
const char* bgName(int i) const;
|
const char* bgName(int i) const;
|
||||||
const char* charName(int i) const;
|
const char* charName(int i) const;
|
||||||
const char* bgmName(int i) const;
|
const char* bgmName(int i) const;
|
||||||
@ -63,13 +64,16 @@ private:
|
|||||||
|
|
||||||
char chrFilePath[256];
|
char chrFilePath[256];
|
||||||
char chrFilePath2[256];
|
char chrFilePath2[256];
|
||||||
|
char chrFilePathPose[256];
|
||||||
char chrCounter[24];
|
char chrCounter[24];
|
||||||
|
char chrPoseCounter[24];
|
||||||
|
|
||||||
bool displayNothing = false;
|
bool displayNothing = false;
|
||||||
bool displayStudioBg = false;
|
bool displayStudioBg = false;
|
||||||
bool showScrollingBg = true;
|
bool showScrollingBg = true;
|
||||||
bool characterPicked[5] = {false};
|
bool characterPicked[5] = {false};
|
||||||
bool characterFlipH[5] = {false};
|
bool characterFlipH[5] = {false};
|
||||||
|
int characterPose[5] = {0};
|
||||||
|
|
||||||
mutable int charFadeAlpha = 0;
|
mutable int charFadeAlpha = 0;
|
||||||
bool previewCharacter = false;
|
bool previewCharacter = false;
|
||||||
@ -101,6 +105,9 @@ private:
|
|||||||
int bgmList_cursorPositionOnScreen = 0;
|
int bgmList_cursorPositionOnScreen = 0;
|
||||||
int bgmShownFirst = 0;
|
int bgmShownFirst = 0;
|
||||||
|
|
||||||
|
int charSettings_cursorPosition = 0;
|
||||||
|
int charSettings_cursorPositionOnScreen = 0;
|
||||||
|
|
||||||
int numberOfSettings = 1;
|
int numberOfSettings = 1;
|
||||||
int settings_cursorPosition = 0;
|
int settings_cursorPosition = 0;
|
||||||
int settings_cursorPositionOnScreen = 0;
|
int settings_cursorPositionOnScreen = 0;
|
||||||
|
@ -792,7 +792,7 @@ void GFX::reloadBgSprite() {
|
|||||||
if (dsiFeatures()) dmaCopyHalfWordsAsynch(1, bmpImageBuffer2[0], bgGetGfxPtr(bg3Main), 0x18000);
|
if (dsiFeatures()) dmaCopyHalfWordsAsynch(1, bmpImageBuffer2[0], bgGetGfxPtr(bg3Main), 0x18000);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GFX::loadCharSprite(int num, const char* t3xPathAllSeasons, const char* t3xPathOneSeason) {
|
bool GFX::loadCharSprite(int num, const char* t3xPathPose, const char* t3xPathAllSeasons, const char* t3xPathOneSeason) {
|
||||||
animateTitle = false;
|
animateTitle = false;
|
||||||
|
|
||||||
if (chracterSpriteLoaded) {
|
if (chracterSpriteLoaded) {
|
||||||
@ -801,7 +801,13 @@ bool GFX::loadCharSprite(int num, const char* t3xPathAllSeasons, const char* t3x
|
|||||||
chracterSpriteFound[num] = false;
|
chracterSpriteFound[num] = false;
|
||||||
bool allSeasons = true;
|
bool allSeasons = true;
|
||||||
bool fileFound = false;
|
bool fileFound = false;
|
||||||
fileFound = (access(t3xPathAllSeasons, F_OK) == 0);
|
bool poseable = false;
|
||||||
|
fileFound = (access(t3xPathPose, F_OK) == 0);
|
||||||
|
if (fileFound) {
|
||||||
|
poseable = true;
|
||||||
|
} else {
|
||||||
|
fileFound = (access(t3xPathAllSeasons, F_OK) == 0);
|
||||||
|
}
|
||||||
if (!fileFound) {
|
if (!fileFound) {
|
||||||
allSeasons = false;
|
allSeasons = false;
|
||||||
fileFound = (access(t3xPathOneSeason, F_OK) == 0);
|
fileFound = (access(t3xPathOneSeason, F_OK) == 0);
|
||||||
@ -813,7 +819,7 @@ bool GFX::loadCharSprite(int num, const char* t3xPathAllSeasons, const char* t3x
|
|||||||
|
|
||||||
std::vector<unsigned char> image;
|
std::vector<unsigned char> image;
|
||||||
unsigned width, height;
|
unsigned width, height;
|
||||||
lodepng::decode(image, width, height, allSeasons ? t3xPathAllSeasons : t3xPathOneSeason);
|
lodepng::decode(image, width, height, poseable ? t3xPathPose : (allSeasons ? t3xPathAllSeasons : t3xPathOneSeason));
|
||||||
bool alternatePixel = false;
|
bool alternatePixel = false;
|
||||||
if (num == 4) {
|
if (num == 4) {
|
||||||
for(unsigned i=0;i<image.size()/4;i++) {
|
for(unsigned i=0;i<image.size()/4;i++) {
|
||||||
|
@ -96,6 +96,8 @@ mm_sfxhand SoundControl::playBack() { return mmEffectEx(&snd_back); }
|
|||||||
mm_sfxhand SoundControl::playHighlight() { return mmEffectEx(&snd_highlight); }
|
mm_sfxhand SoundControl::playHighlight() { return mmEffectEx(&snd_highlight); }
|
||||||
|
|
||||||
void SoundControl::loadStream(const char* path, const char* pathCache, const char* loopPath, const char* loopPathCache, u32 sampleRate, bool stereo, bool loop) {
|
void SoundControl::loadStream(const char* path, const char* pathCache, const char* loopPath, const char* loopPathCache, u32 sampleRate, bool stereo, bool loop) {
|
||||||
|
return; // Temporarily disabled
|
||||||
|
|
||||||
if (stream_source) {
|
if (stream_source) {
|
||||||
stream_is_playing = false;
|
stream_is_playing = false;
|
||||||
mmStreamClose();
|
mmStreamClose();
|
||||||
|
BIN
nds/nitrofiles/graphics/char/ss4_Grace0/1.png
Normal file
After Width: | Height: | Size: 66 KiB |
BIN
nds/nitrofiles/graphics/char/ss4_Grace0/2.png
Normal file
After Width: | Height: | Size: 65 KiB |
BIN
nds/nitrofiles/graphics/char/ss4_Grace0/3.png
Normal file
After Width: | Height: | Size: 61 KiB |
@ -20,4 +20,15 @@ bool import_ss1CharacterGenders[] = {
|
|||||||
false, // Female
|
false, // Female
|
||||||
false, // Female
|
false, // Female
|
||||||
false, // Female
|
false, // Female
|
||||||
|
};
|
||||||
|
|
||||||
|
int import_ss1CharacterPoses[] = {
|
||||||
|
3,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
};
|
};
|
@ -737,6 +737,50 @@ bool PhotoStudio::charGender(int i) const {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int PhotoStudio::charPose(int i) const {
|
||||||
|
switch (charPageOrder[char_highlightedGame[currentCharNum]]) {
|
||||||
|
case 0:
|
||||||
|
return import_ss1CharacterPoses[i];
|
||||||
|
/* case 1:
|
||||||
|
return import_ss2CharacterGenders[i];
|
||||||
|
case 2:
|
||||||
|
return import_ss3CharacterGenders[i];
|
||||||
|
case 3:
|
||||||
|
return import_ss4CharacterGenders[i];
|
||||||
|
case 4:
|
||||||
|
return rocketCharacterGenders[i];
|
||||||
|
case 5:
|
||||||
|
return smCharacterGenders[i];
|
||||||
|
case 6:
|
||||||
|
return sthCharacterGenders[i];
|
||||||
|
case 7:
|
||||||
|
return jfgCharacterGenders[i];
|
||||||
|
case 8:
|
||||||
|
return conkerCharacterGenders[i];
|
||||||
|
case 9:
|
||||||
|
return banjokCharacterGenders[i];
|
||||||
|
case 10:
|
||||||
|
return pacCharacterGenders[i];
|
||||||
|
case 11:
|
||||||
|
return swapCharacterGenders[i];
|
||||||
|
case 12:
|
||||||
|
return metroidCharacterGenders[i];
|
||||||
|
case 13:
|
||||||
|
return sc5CharacterGenders[i];
|
||||||
|
case 14:
|
||||||
|
return vvvvvvCharacterGenders[i];
|
||||||
|
case 15:
|
||||||
|
return kirbyCharacterGenders[i];
|
||||||
|
case 16:
|
||||||
|
return nesCharacterGenders[i];
|
||||||
|
case 17:
|
||||||
|
return nightsCharacterGenders[i];
|
||||||
|
case 0xFF:
|
||||||
|
return getExportedCharacterGender(i); */
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
const char* PhotoStudio::bgmGameTitle(void) const {
|
const char* PhotoStudio::bgmGameTitle(void) const {
|
||||||
switch (bgmPageOrder[bgm_highlightedGame]) {
|
switch (bgmPageOrder[bgm_highlightedGame]) {
|
||||||
case 0:
|
case 0:
|
||||||
@ -930,8 +974,10 @@ void PhotoStudio::loadChrImage(void) {
|
|||||||
previewCharacter = false;
|
previewCharacter = false;
|
||||||
#ifdef NDS
|
#ifdef NDS
|
||||||
ditherlaceOnVBlank = true;
|
ditherlaceOnVBlank = true;
|
||||||
|
const char* nullPath = "nitro:/null.png";
|
||||||
#else
|
#else
|
||||||
gspWaitForVBlank();
|
gspWaitForVBlank();
|
||||||
|
const char* nullPath = "romfs:/null.t3x";
|
||||||
#endif
|
#endif
|
||||||
if (charPageOrder[char_highlightedGame[currentCharNum]] == 0xFF) {
|
if (charPageOrder[char_highlightedGame[currentCharNum]] == 0xFF) {
|
||||||
#ifdef NDS
|
#ifdef NDS
|
||||||
@ -939,7 +985,7 @@ void PhotoStudio::loadChrImage(void) {
|
|||||||
#else
|
#else
|
||||||
sprintf(chrFilePath, "sdmc:/3ds/SuperPhotoStudio/characters/%s.t3x", getExportedCharacterName(importCharacterList_cursorPosition[currentCharNum]));
|
sprintf(chrFilePath, "sdmc:/3ds/SuperPhotoStudio/characters/%s.t3x", getExportedCharacterName(importCharacterList_cursorPosition[currentCharNum]));
|
||||||
#endif
|
#endif
|
||||||
previewCharacterFound[currentCharNum] = GFX::loadCharSprite(currentCharNum, chrFilePath, chrFilePath);
|
previewCharacterFound[currentCharNum] = GFX::loadCharSprite(currentCharNum, nullPath, chrFilePath, nullPath);
|
||||||
} else if (charPageOrder[char_highlightedGame[currentCharNum]] >= 2) {
|
} else if (charPageOrder[char_highlightedGame[currentCharNum]] >= 2) {
|
||||||
/*if (numberOfExportedCharacters > 0) {
|
/*if (numberOfExportedCharacters > 0) {
|
||||||
sprintf(chrFilePath, "sdmc:/3ds/SavvyManager/SS%i/characters/previews/%s.t3x", 4, getExportedCharacterName(importCharacterList_cursorPosition[currentCharNum])); // All Seasons
|
sprintf(chrFilePath, "sdmc:/3ds/SavvyManager/SS%i/characters/previews/%s.t3x", 4, getExportedCharacterName(importCharacterList_cursorPosition[currentCharNum])); // All Seasons
|
||||||
@ -951,16 +997,18 @@ void PhotoStudio::loadChrImage(void) {
|
|||||||
#else
|
#else
|
||||||
sprintf(chrFilePath, "romfs:/gfx/%s.t3x", import_characterFileName());
|
sprintf(chrFilePath, "romfs:/gfx/%s.t3x", import_characterFileName());
|
||||||
#endif
|
#endif
|
||||||
previewCharacterFound[currentCharNum] = GFX::loadCharSprite(currentCharNum, chrFilePath, chrFilePath);
|
previewCharacterFound[currentCharNum] = GFX::loadCharSprite(currentCharNum, nullPath, chrFilePath, chrFilePath);
|
||||||
} else {
|
} else {
|
||||||
#ifdef NDS
|
#ifdef NDS
|
||||||
|
sprintf(chrFilePathPose, "nitro:/graphics/char/ss%i_%s0/%i.png", 4, import_characterName(), characterPose[currentCharNum]+1);
|
||||||
sprintf(chrFilePath, "nitro:/graphics/char/ss%i_%s.png", 4, import_characterName()); // All Seasons
|
sprintf(chrFilePath, "nitro:/graphics/char/ss%i_%s.png", 4, import_characterName()); // All Seasons
|
||||||
sprintf(chrFilePath2, "nitro:/graphics/char/ss%i_%s%i.png", 4, import_characterName(), seasonNo[currentCharNum]); // One Season
|
sprintf(chrFilePath2, "nitro:/graphics/char/ss%i_%s%i.png", 4, import_characterName(), seasonNo[currentCharNum]); // One Season
|
||||||
#else
|
#else
|
||||||
|
sprintf(chrFilePathPose, "romfs:/gfx/ss%i_%s0_pose%i.t3x", 4, import_characterName(), characterPose[currentCharNum]+1);
|
||||||
sprintf(chrFilePath, "romfs:/gfx/ss%i_%s.t3x", 4, import_characterName()); // All Seasons
|
sprintf(chrFilePath, "romfs:/gfx/ss%i_%s.t3x", 4, import_characterName()); // All Seasons
|
||||||
sprintf(chrFilePath2, "romfs:/gfx/ss%i_%s%i.t3x", 4, import_characterName(), seasonNo[currentCharNum]); // One Season
|
sprintf(chrFilePath2, "romfs:/gfx/ss%i_%s%i.t3x", 4, import_characterName(), seasonNo[currentCharNum]); // One Season
|
||||||
#endif
|
#endif
|
||||||
previewCharacterFound[currentCharNum] = GFX::loadCharSprite(currentCharNum, chrFilePath, chrFilePath2);
|
previewCharacterFound[currentCharNum] = GFX::loadCharSprite(currentCharNum, chrFilePathPose, chrFilePath, chrFilePath2);
|
||||||
}
|
}
|
||||||
#ifdef NDS
|
#ifdef NDS
|
||||||
ditherlaceOnVBlank = false;
|
ditherlaceOnVBlank = false;
|
||||||
@ -1008,7 +1056,34 @@ void PhotoStudio::Draw(void) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cursorX = 200;
|
cursorX = 200;
|
||||||
if (subScreenMode == 3) {
|
if (subScreenMode == 4) {
|
||||||
|
cursorY = 52+(40*charSettings_cursorPositionOnScreen);
|
||||||
|
if (redrawText) {
|
||||||
|
printSmall(false, 0, 6, "Character Settings", Alignment::center);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!displayNothing) {
|
||||||
|
int i2 = 40;
|
||||||
|
int i3 = 0;
|
||||||
|
// Reset item button Y positions
|
||||||
|
for (int i = 0; i < 3; i++) {
|
||||||
|
for (int x = 0; x < 4; x++) {
|
||||||
|
oamSub.oamMemory[(2+i)+(x*3)].y = 192;
|
||||||
|
}
|
||||||
|
oamSub.oamMemory[14+i].y = 192;
|
||||||
|
oamSub.oamMemory[17+i].y = 192;
|
||||||
|
}
|
||||||
|
//for (int i = 0; i < 2; i++) {
|
||||||
|
for (int x = 0; x < 4; x++) {
|
||||||
|
oamSub.oamMemory[(2+i3)+(x*3)].y = i2-16;
|
||||||
|
}
|
||||||
|
sprintf((char*)chrPoseCounter, "Pose < %d/%d >", characterPose[currentCharNum]+1, charPose(importCharacterList_cursorPosition[currentCharNum]));
|
||||||
|
if (redrawText) printSmall(false, 26, i2, chrPoseCounter);
|
||||||
|
//i2 += 40;
|
||||||
|
//i3++;
|
||||||
|
//}
|
||||||
|
}
|
||||||
|
} else if (subScreenMode == 3) {
|
||||||
cursorY = 52+(40*bgmList_cursorPositionOnScreen);
|
cursorY = 52+(40*bgmList_cursorPositionOnScreen);
|
||||||
if (redrawText) {
|
if (redrawText) {
|
||||||
printSmall(false, 0, 6, bgmGameTitle(), Alignment::center);
|
printSmall(false, 0, 6, bgmGameTitle(), Alignment::center);
|
||||||
@ -1245,6 +1320,20 @@ void PhotoStudio::Draw(void) const {
|
|||||||
cursorX = 248;
|
cursorX = 248;
|
||||||
if (subScreenMode == 10) {
|
if (subScreenMode == 10) {
|
||||||
SettingsDraw();
|
SettingsDraw();
|
||||||
|
} else if (subScreenMode == 4) {
|
||||||
|
cursorY = 64+(48*charSettings_cursorPositionOnScreen);
|
||||||
|
|
||||||
|
Gui::DrawStringCentered(0, 8, 0.50, WHITE, "Character Settings");
|
||||||
|
|
||||||
|
if (!displayNothing) {
|
||||||
|
int i2 = 48;
|
||||||
|
//for (int i = 0; i < 2; i++) {
|
||||||
|
GFX::DrawSprite(sprites_item_button_idx, 18, i2-20);
|
||||||
|
sprintf((char*)chrPoseCounter, "Pose < %d/%d >", characterPose[currentCharNum]+1, charPose(importCharacterList_cursorPosition[currentCharNum]));
|
||||||
|
Gui::DrawString(32, i2, 0.65, WHITE, chrPoseCounter);
|
||||||
|
//i2 += 48;
|
||||||
|
//}
|
||||||
|
}
|
||||||
} else if (subScreenMode == 3) {
|
} else if (subScreenMode == 3) {
|
||||||
cursorY = 64+(48*bgmList_cursorPositionOnScreen);
|
cursorY = 64+(48*bgmList_cursorPositionOnScreen);
|
||||||
|
|
||||||
@ -1427,6 +1516,113 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
} else if (subScreenMode == 10) {
|
} else if (subScreenMode == 10) {
|
||||||
SettingsLogic(hDown, hHeld, touch);
|
SettingsLogic(hDown, hHeld, touch);
|
||||||
#endif
|
#endif
|
||||||
|
} else if (subScreenMode == 4) {
|
||||||
|
if (hDown & KEY_A) {
|
||||||
|
sndSelect();
|
||||||
|
subScreenMode = 0;
|
||||||
|
#ifdef NDS
|
||||||
|
redrawText = true;
|
||||||
|
Gui::DrawScreen();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hDown & KEY_SELECT) {
|
||||||
|
sndSelect();
|
||||||
|
characterFlipH[currentCharNum] = !characterFlipH[currentCharNum];
|
||||||
|
#ifdef NDS
|
||||||
|
GFX::loadCharSpriteMem(zoomIn, &characterFlipH[0]);
|
||||||
|
#endif
|
||||||
|
renderTop = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (charPose(importCharacterList_cursorPosition[currentCharNum]) > 0) {
|
||||||
|
if (hDown & KEY_DLEFT) {
|
||||||
|
sndHighlight();
|
||||||
|
characterPose[currentCharNum]--;
|
||||||
|
if (characterPose[currentCharNum] < 0) characterPose[currentCharNum] = charPose(importCharacterList_cursorPosition[currentCharNum])-1;
|
||||||
|
getMaxChars();
|
||||||
|
renderTop = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hDown & KEY_DRIGHT) {
|
||||||
|
sndHighlight();
|
||||||
|
characterPose[currentCharNum]++;
|
||||||
|
if (characterPose[currentCharNum] > charPose(importCharacterList_cursorPosition[currentCharNum])-1) characterPose[currentCharNum] = 0;
|
||||||
|
getMaxChars();
|
||||||
|
renderTop = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((hDown & KEY_DLEFT) || (hDown & KEY_DRIGHT)) {
|
||||||
|
if (charPageOrder[char_highlightedGame[currentCharNum]] == 0xFF) {
|
||||||
|
previewCharacter = false;
|
||||||
|
if (!exportedCharListGotten) {
|
||||||
|
displayNothing = true;
|
||||||
|
gspWaitForVBlank();
|
||||||
|
getExportedCharacterContents();
|
||||||
|
exportedCharListGotten = true;
|
||||||
|
displayNothing = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
getMaxChars();
|
||||||
|
#ifdef NDS
|
||||||
|
redrawText = true;
|
||||||
|
Gui::DrawScreen();
|
||||||
|
#endif
|
||||||
|
renderTop = true;
|
||||||
|
loadChrImage();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (charPageOrder[char_highlightedGame[currentCharNum]] != 0xFF) {
|
||||||
|
if ((hDown & KEY_L) || (hDown & KEY_ZL)) {
|
||||||
|
sndHighlight();
|
||||||
|
seasonNo[currentCharNum]--;
|
||||||
|
if (seasonNo[currentCharNum] < 0) seasonNo[currentCharNum] = 3;
|
||||||
|
#ifdef NDS
|
||||||
|
redrawText = true;
|
||||||
|
Gui::DrawScreen();
|
||||||
|
#endif
|
||||||
|
loadChrImage();
|
||||||
|
renderTop = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((hDown & KEY_R) || (hDown & KEY_ZR)) {
|
||||||
|
sndHighlight();
|
||||||
|
seasonNo[currentCharNum]++;
|
||||||
|
if (seasonNo[currentCharNum] > 3) seasonNo[currentCharNum] = 0;
|
||||||
|
#ifdef NDS
|
||||||
|
redrawText = true;
|
||||||
|
Gui::DrawScreen();
|
||||||
|
#endif
|
||||||
|
loadChrImage();
|
||||||
|
renderTop = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hDown & KEY_Y) {
|
||||||
|
int seasonNoBak = seasonNo[currentCharNum];
|
||||||
|
seasonNo[currentCharNum] = 4; // Special outfit
|
||||||
|
if (strcmp(seasonName(), "") != 0) {
|
||||||
|
sndHighlight();
|
||||||
|
#ifdef NDS
|
||||||
|
redrawText = true;
|
||||||
|
Gui::DrawScreen();
|
||||||
|
#endif
|
||||||
|
loadChrImage();
|
||||||
|
renderTop = true;
|
||||||
|
} else {
|
||||||
|
seasonNo[currentCharNum] = seasonNoBak;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((hDown & KEY_B) || ((hDown & KEY_TOUCH) && touchingBackButton())) {
|
||||||
|
sndBack();
|
||||||
|
subScreenMode = 2;
|
||||||
|
#ifdef NDS
|
||||||
|
redrawText = true;
|
||||||
|
Gui::DrawScreen();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
} else if (subScreenMode == 3) {
|
} else if (subScreenMode == 3) {
|
||||||
if (showCursor) {
|
if (showCursor) {
|
||||||
if (hDown & KEY_DUP) {
|
if (hDown & KEY_DUP) {
|
||||||
@ -1542,6 +1738,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
if (seasonNo[currentCharNum] == 4 && strcmp(seasonName(), "") == 0) {
|
if (seasonNo[currentCharNum] == 4 && strcmp(seasonName(), "") == 0) {
|
||||||
seasonNo[currentCharNum] = 0;
|
seasonNo[currentCharNum] = 0;
|
||||||
}
|
}
|
||||||
|
characterPose[currentCharNum] = 0;
|
||||||
#ifdef NDS
|
#ifdef NDS
|
||||||
redrawText = true;
|
redrawText = true;
|
||||||
Gui::DrawScreen();
|
Gui::DrawScreen();
|
||||||
@ -1570,6 +1767,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
if (seasonNo[currentCharNum] == 4 && strcmp(seasonName(), "") == 0) {
|
if (seasonNo[currentCharNum] == 4 && strcmp(seasonName(), "") == 0) {
|
||||||
seasonNo[currentCharNum] = 0;
|
seasonNo[currentCharNum] = 0;
|
||||||
}
|
}
|
||||||
|
characterPose[currentCharNum] = 0;
|
||||||
#ifdef NDS
|
#ifdef NDS
|
||||||
redrawText = true;
|
redrawText = true;
|
||||||
Gui::DrawScreen();
|
Gui::DrawScreen();
|
||||||
@ -1581,7 +1779,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
|
|
||||||
if (hDown & KEY_A) {
|
if (hDown & KEY_A) {
|
||||||
sndSelect();
|
sndSelect();
|
||||||
subScreenMode = 0;
|
subScreenMode = 4;
|
||||||
#ifdef NDS
|
#ifdef NDS
|
||||||
redrawText = true;
|
redrawText = true;
|
||||||
Gui::DrawScreen();
|
Gui::DrawScreen();
|
||||||
@ -1662,6 +1860,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
getMaxChars();
|
getMaxChars();
|
||||||
|
characterPose[currentCharNum] = 0;
|
||||||
#ifdef NDS
|
#ifdef NDS
|
||||||
redrawText = true;
|
redrawText = true;
|
||||||
Gui::DrawScreen();
|
Gui::DrawScreen();
|
||||||
@ -1675,6 +1874,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
sndHighlight();
|
sndHighlight();
|
||||||
seasonNo[currentCharNum]--;
|
seasonNo[currentCharNum]--;
|
||||||
if (seasonNo[currentCharNum] < 0) seasonNo[currentCharNum] = 3;
|
if (seasonNo[currentCharNum] < 0) seasonNo[currentCharNum] = 3;
|
||||||
|
characterPose[currentCharNum] = 0;
|
||||||
#ifdef NDS
|
#ifdef NDS
|
||||||
redrawText = true;
|
redrawText = true;
|
||||||
Gui::DrawScreen();
|
Gui::DrawScreen();
|
||||||
@ -1687,6 +1887,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
sndHighlight();
|
sndHighlight();
|
||||||
seasonNo[currentCharNum]++;
|
seasonNo[currentCharNum]++;
|
||||||
if (seasonNo[currentCharNum] > 3) seasonNo[currentCharNum] = 0;
|
if (seasonNo[currentCharNum] > 3) seasonNo[currentCharNum] = 0;
|
||||||
|
characterPose[currentCharNum] = 0;
|
||||||
#ifdef NDS
|
#ifdef NDS
|
||||||
redrawText = true;
|
redrawText = true;
|
||||||
Gui::DrawScreen();
|
Gui::DrawScreen();
|
||||||
|