Faster Scene Transitions#2147
Conversation
| #include "m_Do/m_Do_audio.h" | ||
| #include "m_Do/m_Do_graphic.h" | ||
|
|
||
| #include "dusk/logging.h" |
There was a problem hiding this comment.
Remove all logging
|
|
||
| mTimer = 2; | ||
| field_0x11f = dComIfGp_getNextStageWipeSpeed(); | ||
| DuskLog.debug("Wipe speed: {}", field_0x11f); |
|
|
||
| dCam_getBody()->Stop(); | ||
| mDoGph_gInf_c::startFadeOut(XREG_S(3) + (field_0x11f >> 1) + 90); | ||
| mDoGph_gInf_c::startFadeOut((field_0x11f >> 1) + (dusk::getSettings().game.fasterSceneTransitions.getValue() ? 0 : 90)); |
There was a problem hiding this comment.
Replace with:
#if TARGET_PC
int time = 90;
if (dusk::getSettings().game.fasterSceneTransitions) {
time = 0;
}
mDoGph_gInf_c::startFadeOut(XREG_S(3) + (field_0x11f >> 1) + time);
#else
mDoGph_gInf_c::startFadeOut(XREG_S(3) + (field_0x11f >> 1) + 90);
#endif
| #include "d/d_cursor_mng.h" | ||
| #endif | ||
|
|
||
| #include "dusk/logging.h" |
| } | ||
|
|
||
| static int phase_5(dScnPly_c* i_this) { | ||
| DuskLog.debug("dScnPly_c: phase_5"); |
| } | ||
|
|
||
| static int phase_6(dScnPly_c* i_this) { | ||
| DuskLog.debug("dScnPly_c: phase_6"); |
| "Wallet sizes are like in the HD version. (500, 1000, 2000)"); | ||
| addOption("Disable Rupee Cutscenes", getSettings().game.disableRupeeCutscenes, | ||
| "Rupees will not play cutscenes after you have collected them the first time."); | ||
| addOption("Faster Scene Transitions", getSettings().game.fasterSceneTransitions, |
There was a problem hiding this comment.
Replace description with: Reduces how long the transitions take when changing maps.
| Z2GetSeMgr()->seMoveVolumeAll(0.0f, 33); | ||
| Z2GetSeqMgr()->setBattleBgmOff(true); | ||
| load1stWait = 40; | ||
| load1stWait = dusk::getSettings().game.fasterSceneTransitions.getValue() ? 1 : 40; |
There was a problem hiding this comment.
Replace with:
#if TARGET_PC
if (dusk::getSettings().game.fastTransitions) {
load1stWait = 1;
} else {
load1stWait = 40;
}
#else
load1stWait = 40;
#endif
There was a problem hiding this comment.
Using a ternary was fine, just needed the TARGET_PC
There was a problem hiding this comment.
@Irastris Would you like me to go back through and re-add the ternaries? Just removed them for Melon's code snippets in the most recent commits.
There was a problem hiding this comment.
Nah it's chill, was more meant toward Melon, didn't realize these comments would technically start a review of my own. I think the actual approval still lies on Melon though
| OS_REPORT("[Z2SceneMgr::load1stDynamicWave]bgm StopCount = %d\n", 15); | ||
| Z2GetSeqMgr()->bgmStop(15, 0); | ||
| load1stWait = -15; | ||
| load1stWait = dusk::getSettings().game.fasterSceneTransitions.getValue() ? -1 : -15; |
There was a problem hiding this comment.
Replace with:
#if TARGET_PC
if (dusk::getSettings().game.fastTransitions) {
load1stWait = -1;
} else {
load1stWait = -15;
}
#else
load1stWait = -15;
#endif
Addressed your comments :) |
|
side note but the setting in this pr is |
|
Also this affects timing so should be forced off for speedrun mode |
Adds a gameplay QoL setting to remove the hardcoded 3 second delay during scene transitions.
This hasn't been thoroughly tested - I'm putting it up in case others want to try it out, but for what it's worth I don't see this causing any really bad issues. I aim to use this on my current playthrough (which I'm only about 3 hours through in) so I will update this if I find any issues (or if I don't).
Should this be enabled by default in any presets?
Closes #1199 and #1740.