Fixed B_TRANSITION_SHRED_SPLIT from softlocking the game (#4919)

* Added B_ENABLE_SHRED_SPLIT
Created preproc define to remove ShredSplit_BrokenCheck

* Removed config per https://github.com/rh-hideout/pokeemerald-expansion/pull/4919\#issuecomment-2211690039
This commit is contained in:
psf 2024-07-08 01:08:07 -07:00 committed by GitHub
parent fcdc9ed65a
commit 805a6300c7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -212,7 +212,6 @@ static bool8 AngledWipes_TryEnd(struct Task *);
static bool8 AngledWipes_StartNext(struct Task *);
static bool8 ShredSplit_Init(struct Task *);
static bool8 ShredSplit_Main(struct Task *);
static bool8 ShredSplit_BrokenCheck(struct Task *);
static bool8 ShredSplit_End(struct Task *);
static bool8 Blackhole_Init(struct Task *);
static bool8 Blackhole_Vibrate(struct Task *);
@ -561,7 +560,6 @@ static const TransitionStateFunc sShredSplit_Funcs[] =
{
ShredSplit_Init,
ShredSplit_Main,
ShredSplit_BrokenCheck,
ShredSplit_End
};
@ -2928,29 +2926,6 @@ static bool8 ShredSplit_Main(struct Task *task)
return FALSE;
}
// This function never increments the state counter, because the loop condition
// is always false, resulting in the game being stuck in an infinite loop.
// It's possible this transition is only partially
// done and the second part was left out.
// In any case removing or bypassing this state allows the transition to finish.
static bool8 ShredSplit_BrokenCheck(struct Task *task)
{
u16 i;
bool32 done = TRUE;
u16 checkVar2 = 0xFF10;
for (i = 0; i < DISPLAY_HEIGHT; i++)
{
if (gScanlineEffectRegBuffers[1][i] != DISPLAY_WIDTH && gScanlineEffectRegBuffers[1][i] != checkVar2)
done = FALSE;
}
if (done == TRUE)
task->tState++;
return FALSE;
}
static bool8 ShredSplit_End(struct Task *task)
{
DmaStop(0);