mirror of
https://github.com/RocketRobz/SuperAllStarPhotoStudio.git
synced 2025-06-19 09:35:35 -04:00
Add option for showing a 2nd character
This commit is contained in:
parent
9b678a375c
commit
581680c9ee
@ -28,19 +28,21 @@ extern bool shiftBySubPixel;
|
|||||||
|
|
||||||
namespace GFX {
|
namespace GFX {
|
||||||
// Load & Unload default sheets.
|
// Load & Unload default sheets.
|
||||||
|
void resetCharStatus(void);
|
||||||
Result loadSheets();
|
Result loadSheets();
|
||||||
Result unloadSheets();
|
Result unloadSheets();
|
||||||
void loadGameSelSheets();
|
void loadGameSelSheets();
|
||||||
void unloadGameSelSheets();
|
void unloadGameSelSheets();
|
||||||
|
|
||||||
// Sprite Functions.
|
// Sprite Functions.
|
||||||
bool loadCharSprite(const char* t3xPathAllSeasons, const char* t3xPathOneSeason);
|
bool loadCharSprite(int num, const char* t3xPathAllSeasons, const char* t3xPathOneSeason);
|
||||||
|
void loadCharSpriteMem(int num);
|
||||||
void loadBgSprite(void);
|
void loadBgSprite(void);
|
||||||
void unloadBgSprite(void);
|
void unloadBgSprite(void);
|
||||||
void reloadBgSprite(void);
|
void reloadBgSprite(void);
|
||||||
void showBgSprite(int zoomIn);
|
void showBgSprite(int zoomIn);
|
||||||
void animateBgSprite(void);
|
void animateBgSprite(void);
|
||||||
void showCharSprite(int zoomIn, int fadeAlpha, bool lightingEffects = false);
|
void showCharSprite(int num, int zoomIn, int fadeAlpha, bool lightingEffects = false);
|
||||||
void DrawSprite(int img, int x, int y, float ScaleX = 1, float ScaleY = 1, GPU_TEXTURE_FILTER_PARAM filter = GPU_NEAREST);
|
void DrawSprite(int img, int x, int y, float ScaleX = 1, float ScaleY = 1, GPU_TEXTURE_FILTER_PARAM filter = GPU_NEAREST);
|
||||||
void DrawSpriteBlend(int img, float x, float y, u32 color, float ScaleX = 1, float ScaleY = 1, GPU_TEXTURE_FILTER_PARAM filter = GPU_NEAREST);
|
void DrawSpriteBlend(int img, float x, float y, u32 color, float ScaleX = 1, float ScaleY = 1, GPU_TEXTURE_FILTER_PARAM filter = GPU_NEAREST);
|
||||||
|
|
||||||
|
@ -37,6 +37,7 @@ private:
|
|||||||
int photo_highlightedGame = 0;
|
int photo_highlightedGame = 0;
|
||||||
int char_highlightedGame = 0;
|
int char_highlightedGame = 0;
|
||||||
int seasonNo = 0;
|
int seasonNo = 0;
|
||||||
|
int currentCharNum = 0;
|
||||||
|
|
||||||
char chrFilePath[256];
|
char chrFilePath[256];
|
||||||
char chrFilePath2[256];
|
char chrFilePath2[256];
|
||||||
@ -44,11 +45,11 @@ private:
|
|||||||
bool displayNothing = false;
|
bool displayNothing = false;
|
||||||
bool displayStudioBg = false;
|
bool displayStudioBg = false;
|
||||||
bool showScrollingBg = true;
|
bool showScrollingBg = true;
|
||||||
bool characterPicked = false;
|
bool characterPicked[2] = {false};
|
||||||
|
|
||||||
mutable int charFadeAlpha = 0;
|
mutable int charFadeAlpha = 0;
|
||||||
bool previewCharacter = false;
|
bool previewCharacter = false;
|
||||||
bool previewCharacterFound = false;
|
bool previewCharacterFound[2] = {false};
|
||||||
|
|
||||||
bool showMessage = false;
|
bool showMessage = false;
|
||||||
int messageNo = 0;
|
int messageNo = 0;
|
||||||
|
@ -4,8 +4,6 @@
|
|||||||
// List all common screen variables here.
|
// List all common screen variables here.
|
||||||
extern u8 sysRegion;
|
extern u8 sysRegion;
|
||||||
extern bool showCursor;
|
extern bool showCursor;
|
||||||
extern float bg_xPos;
|
|
||||||
extern float bg_yPos;
|
|
||||||
extern int cursorAlpha;
|
extern int cursorAlpha;
|
||||||
extern int studioBg;
|
extern int studioBg;
|
||||||
extern bool cinemaWide;
|
extern bool cinemaWide;
|
||||||
|
@ -3,11 +3,13 @@
|
|||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
static char bgSpriteMem[4][0x200000];
|
static char bgSpriteMem[4][0x200000];
|
||||||
|
static char charSpriteMem[2][0x80000];
|
||||||
|
|
||||||
static C2D_SpriteSheet sprites;
|
static C2D_SpriteSheet sprites;
|
||||||
static C2D_SpriteSheet bgSprite;
|
static C2D_SpriteSheet bgSprite;
|
||||||
static C2D_SpriteSheet chracterSprite;
|
static C2D_SpriteSheet chracterSprite;
|
||||||
static bool chracterSpriteLoaded = false;
|
static bool chracterSpriteLoaded = false;
|
||||||
|
static bool chracterSpriteFound[2] = {false};
|
||||||
static bool bgSpriteLoaded = false;
|
static bool bgSpriteLoaded = false;
|
||||||
|
|
||||||
extern int studioBg;
|
extern int studioBg;
|
||||||
@ -31,6 +33,11 @@ static int timeOutside = 0; // 0 == Day, 1 == Sunset, 2 == Night
|
|||||||
|
|
||||||
bool shiftBySubPixel = false;
|
bool shiftBySubPixel = false;
|
||||||
|
|
||||||
|
void GFX::resetCharStatus(void) {
|
||||||
|
chracterSpriteFound[0] = false;
|
||||||
|
chracterSpriteFound[1] = false;
|
||||||
|
}
|
||||||
|
|
||||||
Result GFX::loadSheets() {
|
Result GFX::loadSheets() {
|
||||||
sprites = C2D_SpriteSheetLoad("romfs:/gfx/sprites.t3x");
|
sprites = C2D_SpriteSheetLoad("romfs:/gfx/sprites.t3x");
|
||||||
GFX::loadBgSprite();
|
GFX::loadBgSprite();
|
||||||
@ -317,28 +324,47 @@ void GFX::reloadBgSprite() {
|
|||||||
loadBgSprite();
|
loadBgSprite();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool GFX::loadCharSprite(const char* t3xPathAllSeasons, const char* t3xPathOneSeason) {
|
bool GFX::loadCharSprite(int num, const char* t3xPathAllSeasons, const char* t3xPathOneSeason) {
|
||||||
if (chracterSpriteLoaded) {
|
if (chracterSpriteLoaded) {
|
||||||
C2D_SpriteSheetFree(chracterSprite);
|
C2D_SpriteSheetFree(chracterSprite);
|
||||||
}
|
|
||||||
if (access(t3xPathAllSeasons, F_OK) == 0) {
|
|
||||||
chracterSprite = C2D_SpriteSheetLoad(t3xPathAllSeasons);
|
|
||||||
chracterSpriteLoaded = true;
|
|
||||||
return true;
|
|
||||||
} else {
|
|
||||||
chracterSpriteLoaded = false;
|
chracterSpriteLoaded = false;
|
||||||
}
|
}
|
||||||
if (access(t3xPathOneSeason, F_OK) == 0) {
|
chracterSpriteFound[num] = false;
|
||||||
chracterSprite = C2D_SpriteSheetLoad(t3xPathOneSeason);
|
bool allSeasons = true;
|
||||||
chracterSpriteLoaded = true;
|
bool fileFound = false;
|
||||||
return true;
|
fileFound = (access(t3xPathAllSeasons, F_OK) == 0);
|
||||||
} else {
|
if (!fileFound) {
|
||||||
chracterSpriteLoaded = false;
|
allSeasons = false;
|
||||||
|
fileFound = (access(t3xPathOneSeason, F_OK) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!fileFound) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FILE* charFile = fopen((allSeasons ? t3xPathAllSeasons : t3xPathOneSeason), "rb");
|
||||||
|
fread((void*)charSpriteMem[num], 1, 0x80000, charFile);
|
||||||
|
fclose(charFile);
|
||||||
|
|
||||||
|
//chracterSprite = C2D_SpriteSheetLoadFromMem(charSpriteMem[num], 0x80000);
|
||||||
|
chracterSpriteFound[num] = true;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void GFX::loadCharSpriteMem(int num) {
|
||||||
|
if (chracterSpriteLoaded) {
|
||||||
|
C2D_SpriteSheetFree(chracterSprite);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!chracterSpriteFound[num]) return;
|
||||||
|
chracterSprite = C2D_SpriteSheetLoadFromMem(charSpriteMem[num], 0x80000);
|
||||||
|
chracterSpriteLoaded = true;
|
||||||
|
}
|
||||||
|
|
||||||
void GFX::showBgSprite(int zoomIn) {
|
void GFX::showBgSprite(int zoomIn) {
|
||||||
|
if (!bgSpriteLoaded) return;
|
||||||
|
|
||||||
int yPos = -(240*zoomIn);
|
int yPos = -(240*zoomIn);
|
||||||
if (cinemaWide==true) yPos -= 16;
|
if (cinemaWide==true) yPos -= 16;
|
||||||
|
|
||||||
@ -368,7 +394,31 @@ void GFX::animateBgSprite(void) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GFX::showCharSprite(int zoomIn, int fadeAlpha, bool lightingEffects) {
|
void GFX::showCharSprite(int num, int zoomIn, int fadeAlpha, bool lightingEffects) {
|
||||||
|
if (!chracterSpriteLoaded) return;
|
||||||
|
|
||||||
|
int xPos = (cinemaWide==true ? 60 : 0);
|
||||||
|
if (chracterSpriteFound[0] && chracterSpriteFound[1]) {
|
||||||
|
if (zoomIn == 1) {
|
||||||
|
switch (num) {
|
||||||
|
case 0:
|
||||||
|
xPos -= 80;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
xPos += 80;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
switch (num) {
|
||||||
|
case 0:
|
||||||
|
xPos -= 32;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
xPos += 32;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
int yPos = -((cinemaWide==true ? 168 : 240)*zoomIn);
|
int yPos = -((cinemaWide==true ? 168 : 240)*zoomIn);
|
||||||
if (cinemaWide==true) yPos += 36;
|
if (cinemaWide==true) yPos += 36;
|
||||||
|
|
||||||
@ -406,10 +456,10 @@ void GFX::showCharSprite(int zoomIn, int fadeAlpha, bool lightingEffects) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
C2D_DrawImageAt(image, (cinemaWide==true ? 60 : 0), yPos-(shiftBySubPixel ? 0.5f : 0), 0.5f, &tint, (cinemaWide==true ? 0.35f : 0.5), (cinemaWide==true ? 0.7f : 1));
|
C2D_DrawImageAt(image, xPos, yPos-(shiftBySubPixel ? 0.5f : 0), 0.5f, &tint, (cinemaWide==true ? 0.35f : 0.5), (cinemaWide==true ? 0.7f : 1));
|
||||||
} else {
|
} else {
|
||||||
C2D_PlainImageTint(&tint, C2D_Color32(255, 255, 255, fadeAlpha), 1);
|
C2D_PlainImageTint(&tint, C2D_Color32(255, 255, 255, fadeAlpha), 1);
|
||||||
C2D_DrawImageAt(image, (cinemaWide==true ? 60 : 0), yPos-(shiftBySubPixel ? 0.5f : 0), 0.5f, &tint, (cinemaWide==true ? 0.35f : 0.5), (cinemaWide==true ? 0.7f : 1));
|
C2D_DrawImageAt(image, xPos, yPos-(shiftBySubPixel ? 0.5f : 0), 0.5f, &tint, (cinemaWide==true ? 0.35f : 0.5), (cinemaWide==true ? 0.7f : 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -47,6 +47,8 @@ static bool musicLoopPlaying = false;
|
|||||||
static int musicLoopDelay = 0;
|
static int musicLoopDelay = 0;
|
||||||
static bool screenoff_ran = false;
|
static bool screenoff_ran = false;
|
||||||
static bool screenon_ran = true;
|
static bool screenon_ran = true;
|
||||||
|
bool clearTop = true; // Disable in order to render a second character
|
||||||
|
bool renderTop = true; // Disable to prevent second character from flickering
|
||||||
|
|
||||||
void loadSettings(void) {
|
void loadSettings(void) {
|
||||||
CIniFile settingsini(settingsIni);
|
CIniFile settingsini(settingsIni);
|
||||||
@ -131,8 +133,6 @@ void screenon(void)
|
|||||||
u8 sysRegion = CFG_REGION_USA;
|
u8 sysRegion = CFG_REGION_USA;
|
||||||
u64 appID = 0;
|
u64 appID = 0;
|
||||||
|
|
||||||
float bg_xPos = 0.0f;
|
|
||||||
float bg_yPos = 0.0f;
|
|
||||||
bool showCursor = false;
|
bool showCursor = false;
|
||||||
int cursorAlpha = 0;
|
int cursorAlpha = 0;
|
||||||
|
|
||||||
@ -190,6 +190,7 @@ int main()
|
|||||||
loadSettings();
|
loadSettings();
|
||||||
|
|
||||||
Gui::init();
|
Gui::init();
|
||||||
|
osSetSpeedupEnable(true); // Enable speed-up for New 3DS users
|
||||||
GFX::loadSheets();
|
GFX::loadSheets();
|
||||||
fadein = true;
|
fadein = true;
|
||||||
fadealpha = 0;
|
fadealpha = 0;
|
||||||
@ -261,7 +262,9 @@ int main()
|
|||||||
|
|
||||||
// Here we draw the actual screen.
|
// Here we draw the actual screen.
|
||||||
C3D_FrameBegin(C3D_FRAME_SYNCDRAW);
|
C3D_FrameBegin(C3D_FRAME_SYNCDRAW);
|
||||||
|
if (clearTop) {
|
||||||
C2D_TargetClear(Top, TRANSPARENT);
|
C2D_TargetClear(Top, TRANSPARENT);
|
||||||
|
}
|
||||||
C2D_TargetClear(Bottom, TRANSPARENT);
|
C2D_TargetClear(Bottom, TRANSPARENT);
|
||||||
Gui::clearTextBufs();
|
Gui::clearTextBufs();
|
||||||
Gui::DrawScreen();
|
Gui::DrawScreen();
|
||||||
@ -291,25 +294,6 @@ int main()
|
|||||||
Screenshot_Capture();
|
Screenshot_Capture();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Scroll background
|
|
||||||
switch (iFps) {
|
|
||||||
default:
|
|
||||||
bg_xPos += 0.3;
|
|
||||||
bg_yPos -= 0.3;
|
|
||||||
break;
|
|
||||||
case 30:
|
|
||||||
bg_xPos += 0.6;
|
|
||||||
bg_yPos -= 0.6;
|
|
||||||
break;
|
|
||||||
case 24:
|
|
||||||
bg_xPos += 0.9;
|
|
||||||
bg_yPos -= 0.9;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bg_xPos >= 72) bg_xPos = 0.0f;
|
|
||||||
if (bg_yPos <= -136) bg_yPos = 0.0f;
|
|
||||||
|
|
||||||
if (hDown) {
|
if (hDown) {
|
||||||
svcSignalEvent(threadRequest);
|
svcSignalEvent(threadRequest);
|
||||||
}
|
}
|
||||||
|
@ -16,9 +16,14 @@
|
|||||||
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
|
static int currentCharacterRendered = 0;
|
||||||
extern bool musicPlayStarted;
|
extern bool musicPlayStarted;
|
||||||
|
extern bool clearTop;
|
||||||
|
extern bool renderTop;
|
||||||
|
|
||||||
PhotoStudio::PhotoStudio() {
|
PhotoStudio::PhotoStudio() {
|
||||||
|
currentCharacterRendered = 0;
|
||||||
|
GFX::resetCharStatus();
|
||||||
this->getList();
|
this->getList();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -182,11 +187,14 @@ void PhotoStudio::loadChrImage(bool Robz) {
|
|||||||
} else {
|
} else {
|
||||||
sprintf(this->chrFilePath, "romfs:/gfx/null.t3x"); // All Seasons
|
sprintf(this->chrFilePath, "romfs:/gfx/null.t3x"); // All Seasons
|
||||||
}
|
}
|
||||||
this->previewCharacterFound = GFX::loadCharSprite(this->chrFilePath, this->chrFilePath);
|
this->previewCharacterFound[currentCharNum] = GFX::loadCharSprite(currentCharNum, this->chrFilePath, this->chrFilePath);
|
||||||
} else {
|
} else {
|
||||||
sprintf(this->chrFilePath, "romfs:/gfx/ss%i_%s.t3x", 4, (Robz ? "Robz" : import_characterName())); // All Seasons
|
sprintf(this->chrFilePath, "romfs:/gfx/ss%i_%s.t3x", 4, (Robz ? "Robz" : import_characterName())); // All Seasons
|
||||||
sprintf(this->chrFilePath2, "romfs:/gfx/ss%i_%s%i.t3x", 4, (Robz ? "Robz" : import_characterName()), this->seasonNo); // One Season
|
sprintf(this->chrFilePath2, "romfs:/gfx/ss%i_%s%i.t3x", 4, (Robz ? "Robz" : import_characterName()), this->seasonNo); // One Season
|
||||||
this->previewCharacterFound = GFX::loadCharSprite(this->chrFilePath, this->chrFilePath2);
|
this->previewCharacterFound[currentCharNum] = GFX::loadCharSprite(currentCharNum, this->chrFilePath, this->chrFilePath2);
|
||||||
|
}
|
||||||
|
if (previewCharacterFound[0] && !characterPicked[1]) {
|
||||||
|
GFX::loadCharSpriteMem(0);
|
||||||
}
|
}
|
||||||
this->previewCharacter = true;
|
this->previewCharacter = true;
|
||||||
}
|
}
|
||||||
@ -201,8 +209,12 @@ void PhotoStudio::Draw(void) const {
|
|||||||
musicPlayStarted = true;
|
musicPlayStarted = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (renderTop) {
|
||||||
Gui::ScreenDraw(Top);
|
Gui::ScreenDraw(Top);
|
||||||
|
|
||||||
|
this->preview();
|
||||||
|
|
||||||
|
if (currentCharacterRendered == 0) {
|
||||||
if (this->displayStudioBg) {
|
if (this->displayStudioBg) {
|
||||||
GFX::showBgSprite(zoomIn);
|
GFX::showBgSprite(zoomIn);
|
||||||
} else if (this->showScrollingBg) {
|
} else if (this->showScrollingBg) {
|
||||||
@ -211,16 +223,33 @@ void PhotoStudio::Draw(void) const {
|
|||||||
Gui::Draw_Rect(0, 0, 400, 240, WHITE);
|
Gui::Draw_Rect(0, 0, 400, 240, WHITE);
|
||||||
}
|
}
|
||||||
if (this->previewCharacter) {
|
if (this->previewCharacter) {
|
||||||
if (this->previewCharacterFound) {
|
if (this->previewCharacterFound[0]) {
|
||||||
GFX::showCharSprite(this->zoomIn, this->charFadeAlpha, this->displayStudioBg);
|
if (characterPicked[1]) {
|
||||||
|
GFX::loadCharSpriteMem(0);
|
||||||
|
}
|
||||||
|
GFX::showCharSprite(0, this->zoomIn, this->charFadeAlpha, this->displayStudioBg);
|
||||||
} else {
|
} else {
|
||||||
Gui::DrawStringCentered(0, 104, 0.65, WHITE, (this->char_highlightedGame==4 ? "Preview not found." : "Preview unavailable."));
|
Gui::DrawStringCentered(0, 104, 0.65, WHITE, (this->char_highlightedGame==4 ? "Preview not found." : "Preview unavailable."));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else if (currentCharacterRendered == 1) {
|
||||||
|
if (characterPicked[1] && this->previewCharacterFound[1]) {
|
||||||
|
GFX::loadCharSpriteMem(1);
|
||||||
|
GFX::showCharSprite(1, this->zoomIn, this->charFadeAlpha, this->displayStudioBg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
this->preview();
|
if (renderTop && subScreenMode!=1 && previewCharacter && previewCharacterFound[0] && previewCharacterFound[1]) {
|
||||||
|
currentCharacterRendered++;
|
||||||
|
if (currentCharacterRendered > 1) {
|
||||||
|
currentCharacterRendered = 0;
|
||||||
|
renderTop = false;
|
||||||
|
}
|
||||||
|
clearTop = (currentCharacterRendered == 0);
|
||||||
|
}
|
||||||
|
|
||||||
if (fadealpha > 0) Gui::Draw_Rect(0, 0, 400, 240, C2D_Color32(fadecolor, fadecolor, fadecolor, fadealpha)); // Fade in/out effect
|
if (fadealpha > 0) Gui::Draw_Rect(0, 0, 400, 240, C2D_Color32(fadecolor, fadecolor, fadecolor, fadealpha)); // Fade in/out effect
|
||||||
|
}
|
||||||
|
|
||||||
if (cinemaWide) {
|
if (cinemaWide) {
|
||||||
Gui::Draw_Rect(0, 0, 400, 36, C2D_Color32(0, 0, 0, 255));
|
Gui::Draw_Rect(0, 0, 400, 36, C2D_Color32(0, 0, 0, 255));
|
||||||
@ -359,7 +388,11 @@ void PhotoStudio::Draw(void) const {
|
|||||||
Gui::DrawString(32, i2, 0.65, WHITE, "Change location");
|
Gui::DrawString(32, i2, 0.65, WHITE, "Change location");
|
||||||
i2 += 48;
|
i2 += 48;
|
||||||
GFX::DrawSprite(sprites_item_button_idx, 16, i2-20);
|
GFX::DrawSprite(sprites_item_button_idx, 16, i2-20);
|
||||||
Gui::DrawString(32, i2, 0.65, WHITE, "Change character");
|
if (currentCharNum==1) {
|
||||||
|
Gui::DrawString(32, i2, 0.65, WHITE, "Change character < 2 >");
|
||||||
|
} else {
|
||||||
|
Gui::DrawString(32, i2, 0.65, WHITE, "Change character < 1 >");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->subScreenMode != 0) {
|
if (this->subScreenMode != 0) {
|
||||||
@ -379,7 +412,9 @@ void PhotoStudio::Draw(void) const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void PhotoStudio::preview() const {
|
void PhotoStudio::preview() const {
|
||||||
if (this->previewCharacter) {
|
if (characterPicked[1]) {
|
||||||
|
this->charFadeAlpha = 255;
|
||||||
|
} else if (this->previewCharacter) {
|
||||||
switch (iFps) {
|
switch (iFps) {
|
||||||
default:
|
default:
|
||||||
this->charFadeAlpha += 20;
|
this->charFadeAlpha += 20;
|
||||||
@ -400,14 +435,23 @@ void PhotoStudio::preview() const {
|
|||||||
|
|
||||||
|
|
||||||
void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
||||||
if (this->subScreenMode==0 || this->subScreenMode==2) {
|
if ((this->subScreenMode==0 || this->subScreenMode==2)) {
|
||||||
|
int zoomLimit = characterPicked[1] ? 1 : 2;
|
||||||
if (hDown & KEY_CPAD_UP) {
|
if (hDown & KEY_CPAD_UP) {
|
||||||
this->zoomIn++;
|
this->zoomIn++;
|
||||||
if (this->zoomIn > 2) this->zoomIn = 2;
|
if (this->zoomIn > zoomLimit) {
|
||||||
|
this->zoomIn = zoomLimit;
|
||||||
|
} else {
|
||||||
|
renderTop = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (hDown & KEY_CPAD_DOWN) {
|
if (hDown & KEY_CPAD_DOWN) {
|
||||||
this->zoomIn--;
|
this->zoomIn--;
|
||||||
if (this->zoomIn < 0) this->zoomIn = 0;
|
if (this->zoomIn < 0) {
|
||||||
|
this->zoomIn = 0;
|
||||||
|
} else {
|
||||||
|
renderTop = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -431,6 +475,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
if (this->importCharacterList_cursorPositionOnScreen < 0) {
|
if (this->importCharacterList_cursorPositionOnScreen < 0) {
|
||||||
this->importCharacterList_cursorPositionOnScreen = 0;
|
this->importCharacterList_cursorPositionOnScreen = 0;
|
||||||
}
|
}
|
||||||
|
renderTop = true;
|
||||||
this->loadChrImage(false);
|
this->loadChrImage(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -451,6 +496,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
if (this->importCharacterList_cursorPositionOnScreen > 2) {
|
if (this->importCharacterList_cursorPositionOnScreen > 2) {
|
||||||
this->importCharacterList_cursorPositionOnScreen = 2;
|
this->importCharacterList_cursorPositionOnScreen = 2;
|
||||||
}
|
}
|
||||||
|
renderTop = true;
|
||||||
this->loadChrImage(false);
|
this->loadChrImage(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -461,6 +507,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
} else if (hDown & KEY_SELECT) {
|
} else if (hDown & KEY_SELECT) {
|
||||||
sndSelect();
|
sndSelect();
|
||||||
this->subScreenMode = 0;
|
this->subScreenMode = 0;
|
||||||
|
renderTop = true;
|
||||||
this->loadChrImage(true); // Load Robz
|
this->loadChrImage(true); // Load Robz
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -469,6 +516,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
this->char_highlightedGame--;
|
this->char_highlightedGame--;
|
||||||
if (this->char_highlightedGame < 0) this->char_highlightedGame = 4;
|
if (this->char_highlightedGame < 0) this->char_highlightedGame = 4;
|
||||||
this->getMaxChars();
|
this->getMaxChars();
|
||||||
|
renderTop = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hDown & KEY_DRIGHT) {
|
if (hDown & KEY_DRIGHT) {
|
||||||
@ -476,6 +524,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
this->char_highlightedGame++;
|
this->char_highlightedGame++;
|
||||||
if (this->char_highlightedGame > 4) this->char_highlightedGame = 0;
|
if (this->char_highlightedGame > 4) this->char_highlightedGame = 0;
|
||||||
this->getMaxChars();
|
this->getMaxChars();
|
||||||
|
renderTop = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((hDown & KEY_DLEFT) || (hDown & KEY_DRIGHT)) {
|
if ((hDown & KEY_DLEFT) || (hDown & KEY_DRIGHT)) {
|
||||||
@ -493,6 +542,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
this->getMaxChars();
|
this->getMaxChars();
|
||||||
|
renderTop = true;
|
||||||
this->loadChrImage(false);
|
this->loadChrImage(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -502,6 +552,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
this->seasonNo--;
|
this->seasonNo--;
|
||||||
if (this->seasonNo < 0) this->seasonNo = 3;
|
if (this->seasonNo < 0) this->seasonNo = 3;
|
||||||
this->loadChrImage(false);
|
this->loadChrImage(false);
|
||||||
|
renderTop = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((hDown & KEY_R) || (hDown & KEY_ZR)) {
|
if ((hDown & KEY_R) || (hDown & KEY_ZR)) {
|
||||||
@ -509,6 +560,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
this->seasonNo++;
|
this->seasonNo++;
|
||||||
if (this->seasonNo > 3) this->seasonNo = 0;
|
if (this->seasonNo > 3) this->seasonNo = 0;
|
||||||
this->loadChrImage(false);
|
this->loadChrImage(false);
|
||||||
|
renderTop = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -593,7 +645,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
if (hDown & KEY_A) {
|
if (hDown & KEY_A) {
|
||||||
sndSelect();
|
sndSelect();
|
||||||
this->subScreenMode = 0;
|
this->subScreenMode = 0;
|
||||||
this->previewCharacter = this->characterPicked;
|
this->previewCharacter = this->characterPicked[currentCharNum];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hDown & KEY_DLEFT) {
|
if (hDown & KEY_DLEFT) {
|
||||||
@ -638,7 +690,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
if ((hDown & KEY_B) || ((hDown & KEY_TOUCH) && touchingBackButton())) {
|
if ((hDown & KEY_B) || ((hDown & KEY_TOUCH) && touchingBackButton())) {
|
||||||
sndBack();
|
sndBack();
|
||||||
this->subScreenMode = 0;
|
this->subScreenMode = 0;
|
||||||
this->previewCharacter = this->characterPicked;
|
this->previewCharacter = this->characterPicked[currentCharNum];
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -666,6 +718,23 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
this->characterChangeMenu_cursorPositionOnScreen = 1;
|
this->characterChangeMenu_cursorPositionOnScreen = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->characterChangeMenu_cursorPosition == 1) {
|
||||||
|
if (hDown & KEY_DLEFT) {
|
||||||
|
sndHighlight();
|
||||||
|
currentCharNum--;
|
||||||
|
if (currentCharNum < 0) {
|
||||||
|
currentCharNum = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (hDown & KEY_DRIGHT) {
|
||||||
|
sndHighlight();
|
||||||
|
currentCharNum++;
|
||||||
|
if (currentCharNum > 1) {
|
||||||
|
currentCharNum = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hDown & KEY_A) {
|
if (hDown & KEY_A) {
|
||||||
@ -698,6 +767,7 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
this->displayStudioBg = true;
|
this->displayStudioBg = true;
|
||||||
//}
|
//}
|
||||||
this->zoomIn = 0;
|
this->zoomIn = 0;
|
||||||
|
renderTop = true;
|
||||||
} else if (this->characterChangeMenu_cursorPosition == 1) {
|
} else if (this->characterChangeMenu_cursorPosition == 1) {
|
||||||
sndSelect();
|
sndSelect();
|
||||||
this->displayNothing = true;
|
this->displayNothing = true;
|
||||||
@ -709,8 +779,12 @@ void PhotoStudio::Logic(u32 hDown, u32 hHeld, touchPosition touch) {
|
|||||||
}
|
}
|
||||||
this->getMaxChars();
|
this->getMaxChars();
|
||||||
this->displayNothing = false;
|
this->displayNothing = false;
|
||||||
|
this->characterPicked[currentCharNum] = true;
|
||||||
|
if (characterPicked[0] && characterPicked[1] && this->zoomIn > 1) {
|
||||||
|
this->zoomIn = 1;
|
||||||
|
}
|
||||||
|
renderTop = true;
|
||||||
this->loadChrImage(false);
|
this->loadChrImage(false);
|
||||||
this->characterPicked = true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,10 +2,15 @@
|
|||||||
#include "settings.hpp"
|
#include "settings.hpp"
|
||||||
#include "screenvars.h"
|
#include "screenvars.h"
|
||||||
|
|
||||||
|
extern bool clearTop;
|
||||||
|
extern bool renderTop;
|
||||||
|
|
||||||
char txt_cinemaWide[24];
|
char txt_cinemaWide[24];
|
||||||
char txt_frameRate[24];
|
char txt_frameRate[24];
|
||||||
|
|
||||||
void Settings::Draw(void) const {
|
void Settings::Draw(void) const {
|
||||||
|
clearTop = true;
|
||||||
|
renderTop = true;
|
||||||
Gui::ScreenDraw(Top);
|
Gui::ScreenDraw(Top);
|
||||||
|
|
||||||
GFX::DrawSprite(sprites_title_idx, 0, 0, 0.5);
|
GFX::DrawSprite(sprites_title_idx, 0, 0, 0.5);
|
||||||
|
Loading…
Reference in New Issue
Block a user