@@ -32,11 +32,14 @@ bl getStageDataHolder__2MRFv
3232mr r4, r31
3333bl getStageDataHolderFromZoneId__15StageDataHolderFi
3434
35+ cmpwi r3, 0
36+ beq .StageDataHolder_GetListJMapInfo_Return
37+
3538addi r4, r3, 0xF8
3639mr r5, r30
3740bl findJmpInfoFromArray__15StageDataHolderCFPCQ22MR26AssignableArray<8JMapInfo> PCc
3841#Returns 0 if BCSV is not found
39-
42+ .StageDataHolder_GetListJMapInfo_Return:
4043lwz r31, 0x0C (r1)
4144lwz r30, 0x08 (r1)
4245lwz r0, 0x14 (r1)
@@ -45,7 +48,8 @@ addi r1, r1, 0x10
4548blr
4649
4750
48-
51+ .GLE PRINTMESSAGE == GLE::RequestMoveStageFromJMapInfo ==
52+ .GLE PRINTADDRESS
4953#Note for Aurum or someone with symbol map access, address 0x8004C860 is the wrong function. It should be "getValue_Ul___8JMapInfoCFiPCcPl_Cb"
5054.MR_RequestMoveStageFromJMapInfo:
5155#Reads a BCSV Entry and warps the player there
@@ -154,6 +158,8 @@ mtlr r0
154158addi r1, r1, 0x60
155159blr
156160
161+ .GLE PRINTMESSAGE == GLE::RequestMoveStage ==
162+ .GLE PRINTADDRESS
157163.MR_RequestMoveStage:
158164#Makes the game start the level change process
159165#r3 = Destination Stage Name
@@ -174,6 +180,7 @@ mr r30, r4
174180mr r29, r5
175181mr r28, r6
176182mr r24, r8
183+ li r23, 0
177184
178185#Always check for changing players
179186mr r3, r7
@@ -193,9 +200,7 @@ bne .MR_RequestMoveStage_NotScenarioSelect
193200#specifically to the ScenarioSelect of the galaxy
194201
195202#2022-02-22: Oh wow you somehow listened before I even put this on github
196- mr r3, r31
197- bl requestChangeScenarioSelect__20GameSequenceFunctionFPCc
198- b .MR_RequestMoveStage_Return
203+ li r23, 1
199204
200205
201206.MR_RequestMoveStage_NotScenarioSelect:
@@ -218,6 +223,25 @@ addi r3, r1, 0x0C
218223mr r4, r28
219224bl __ct__10JMapIdInfoFll
220225
226+ addi r3, r1, 0x0C
227+ bl setRestartMarioNo__2MRFRC10JMapIdInfo
228+
229+ lwz r3, sInstance__29SingletonHolder_10GameSystem_ - STATIC_R13(r13)
230+ lwz r3, 0x24 (r3)
231+ addi r3, r3, 0x8C
232+ lwz r3, 0x88 (r3)
233+ addi r4, r1, 0x0C
234+ bl __as__10JMapIdInfoFRC10JMapIdInfo
235+
236+ cmpwi r23, 0
237+ beq .MR_RequestMoveStage_NoPleaseDont
238+
239+ mr r3, r31
240+ bl requestChangeScenarioSelect__20GameSequenceFunctionFPCc
241+ b .MR_RequestMoveStage_Return
242+
243+ .MR_RequestMoveStage_NoPleaseDont:
244+
221245#Make corrections for hidden/seeker stars
222246li r23, -1
223247
@@ -619,6 +643,9 @@ lwz r3, 0x08(r1)
619643
620644cmpwi r3, -1
621645bne .CheckNotDefault
646+ #do not save the default if it has already been saved
647+ cmpwi r27, -1
648+ bne .CheckNotDefault
622649mr r27, r28 #Save the default
623650
624651.CheckNotDefault:
@@ -1990,7 +2017,8 @@ nop
19902017.ResetForGameOver:
19912018
19922019bl forceCloseSystemWipeFade__2MRFv
1993- bl resetPlayResultInStageHolder__2MRFv
2020+ #THIS IS NO LONGER NEEDED due to the Restart Syncing that MoveStage does.
2021+ #bl resetPlayResultInStageHolder__2MRFv
19942022
19952023lis r3, PlayerLeft_Setting@ha
19962024addi r3, r3, PlayerLeft_Setting@l
0 commit comments