mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-03-21 17:55:13 -05:00
541 lines
10 KiB
ArmAsm
541 lines
10 KiB
ArmAsm
#include "macros/scrcmd.inc"
|
|
#include "res/text/bank/battle_castle.h"
|
|
#include "constants/battle_frontier.h"
|
|
|
|
|
|
ScriptEntry _0059
|
|
ScriptEntry _06A4
|
|
ScriptEntry _06DD
|
|
ScriptEntry _06EC
|
|
ScriptEntry _0760
|
|
ScriptEntry _0075
|
|
ScriptEntry _0788
|
|
ScriptEntry _079B
|
|
ScriptEntry _07AE
|
|
ScriptEntry _07C1
|
|
ScriptEntry _07D4
|
|
ScriptEntry _07E7
|
|
ScriptEntry _07FA
|
|
ScriptEntry _003A
|
|
ScriptEntryEnd
|
|
|
|
_003A:
|
|
CheckTVInterviewEligible TV_PROGRAM_SEGMENT_BATTLE_FRONTIER_FRONTLINE_NEWS_MULTI, VAR_MAP_LOCAL_0
|
|
GoToIfEq VAR_MAP_LOCAL_0, 0, _0053
|
|
ClearFlag FLAG_UNK_0x02C3
|
|
End
|
|
|
|
_0053:
|
|
SetFlag FLAG_UNK_0x02C3
|
|
End
|
|
|
|
_0059:
|
|
PlayFanfare SEQ_SE_CONFIRM
|
|
LockAll
|
|
FacePlayer
|
|
SetVar VAR_MAP_LOCAL_3, 0
|
|
SetVar VAR_MAP_LOCAL_4, 0
|
|
GoTo _0091
|
|
End
|
|
|
|
_0075:
|
|
PlayFanfare SEQ_SE_CONFIRM
|
|
LockAll
|
|
FacePlayer
|
|
SetVar VAR_MAP_LOCAL_3, 0
|
|
SetVar VAR_MAP_LOCAL_4, 1
|
|
GoTo _0091
|
|
End
|
|
|
|
_0091:
|
|
RecordHeapMemory
|
|
CallIfEq VAR_MAP_LOCAL_4, 0, _0664
|
|
CallIfEq VAR_MAP_LOCAL_4, 1, _0669
|
|
GoTo _00B7
|
|
End
|
|
|
|
_00B7:
|
|
CallIfEq VAR_MAP_LOCAL_4, 0, _066E
|
|
CallIfEq VAR_MAP_LOCAL_4, 1, _0686
|
|
AddMenuEntryImm 41, 2
|
|
AddMenuEntryImm 42, 3
|
|
ShowMenu
|
|
GoToIfEq VAR_RESULT, 0, _0152
|
|
GoToIfEq VAR_RESULT, 1, _017F
|
|
GoToIfEq VAR_RESULT, 2, _0117
|
|
GoToIfEq VAR_RESULT, 4, _01AC
|
|
GoTo _0139
|
|
End
|
|
|
|
_0117:
|
|
CallIfEq VAR_MAP_LOCAL_4, 0, _069A
|
|
CallIfEq VAR_MAP_LOCAL_4, 1, _069F
|
|
GoTo _00B7
|
|
End
|
|
|
|
_0139:
|
|
GoTo _0141
|
|
End
|
|
|
|
_0141:
|
|
SetVar VAR_UNK_0x40BC, 0
|
|
Message 6
|
|
WaitABXPadPress
|
|
CloseMessage
|
|
ReleaseAll
|
|
End
|
|
|
|
_0152:
|
|
SetVar VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_SINGLE
|
|
ScrCmd_2D2 0, 3, VAR_RESULT
|
|
BufferNumber 0, 3
|
|
BufferNumber 1, 3
|
|
GoToIfEq VAR_RESULT, 0, _01D9
|
|
GoTo _01FF
|
|
End
|
|
|
|
_017F:
|
|
SetVar VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_DOUBLE
|
|
ScrCmd_2D2 0, 3, VAR_RESULT
|
|
BufferNumber 0, 3
|
|
BufferNumber 1, 3
|
|
GoToIfEq VAR_RESULT, 0, _01D9
|
|
GoTo _01FF
|
|
End
|
|
|
|
_01AC:
|
|
SetVar VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_MULTI
|
|
ScrCmd_2D2 0, 2, VAR_RESULT
|
|
BufferNumber 0, 2
|
|
BufferNumber 1, 2
|
|
GoToIfEq VAR_RESULT, 0, _01EC
|
|
GoTo _01FF
|
|
End
|
|
|
|
_01D9:
|
|
Message 8
|
|
MessageSeenBanlistSpecies 9, 3
|
|
GoTo _0139
|
|
End
|
|
|
|
_01EC:
|
|
Message 8
|
|
MessageSeenBanlistSpecies 9, 2
|
|
GoTo _0139
|
|
End
|
|
|
|
_01FF:
|
|
Message 7
|
|
CloseMessage
|
|
FadeScreenOut
|
|
WaitFadeScreen
|
|
ScrCmd_2D2 4, VAR_BATTLE_CASTLE_CHALLENGE_TYPE, VAR_RESULT
|
|
ScrCmd_2D4 VAR_MAP_LOCAL_2, VAR_MAP_LOCAL_5, VAR_MAP_LOCAL_6
|
|
ReturnToField
|
|
FadeScreenIn
|
|
WaitFadeScreen
|
|
GoToIfEq VAR_MAP_LOCAL_2, 0xFF, _0139
|
|
TryRevertPokemonForm VAR_MAP_LOCAL_2, VAR_RESULT
|
|
GoToIfEq VAR_RESULT, 0xFF, _05D5
|
|
TryRevertPokemonForm VAR_MAP_LOCAL_5, VAR_RESULT
|
|
GoToIfEq VAR_RESULT, 0xFF, _05D5
|
|
TryRevertPokemonForm VAR_MAP_LOCAL_6, VAR_RESULT
|
|
GoToIfEq VAR_RESULT, 0xFF, _05D5
|
|
GetPartyMonSpecies VAR_MAP_LOCAL_2, VAR_MAP_LOCAL_1
|
|
GoToIfEq VAR_MAP_LOCAL_1, 0, _0139
|
|
GoTo _028F
|
|
End
|
|
|
|
_028F:
|
|
GoTo _0297
|
|
End
|
|
|
|
_0297:
|
|
CallIfEq VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_SINGLE, _043C
|
|
CallIfEq VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_DOUBLE, _043C
|
|
SetVar VAR_MAP_LOCAL_0, 0
|
|
HealParty
|
|
Common_SaveGame
|
|
SetVar VAR_RESULT, VAR_MAP_LOCAL_0
|
|
GoToIfEq VAR_RESULT, 0, _0139
|
|
GoToIfEq VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_MULTI, _02E5
|
|
GoTo _049D
|
|
End
|
|
|
|
_02E5:
|
|
Message 43
|
|
InitGlobalTextMenu 30, 1, 0, VAR_RESULT
|
|
SetMenuXOriginToRight
|
|
AddMenuEntryImm 13, 0
|
|
AddMenuEntryImm 14, 1
|
|
AddMenuEntryImm 5, 2
|
|
ShowMenu
|
|
SetVar VAR_0x8008, VAR_RESULT
|
|
GoToIfEq VAR_0x8008, 0, _0329
|
|
GoToIfEq VAR_0x8008, 1, _037D
|
|
GoTo _0139
|
|
End
|
|
|
|
_0329:
|
|
Message 44
|
|
ShowYesNoMenu VAR_RESULT
|
|
GoToIfEq VAR_RESULT, MENU_NO, _02E5
|
|
CloseMessage
|
|
StartBattleClient 31, 0, 0, VAR_RESULT
|
|
GoToIfEq VAR_RESULT, COMM_CLUB_RET_CANCEL, _036B
|
|
GoToIfEq VAR_RESULT, COMM_CLUB_RET_ERROR, _0373
|
|
GoTo _03D1
|
|
End
|
|
|
|
_036B:
|
|
GoTo _02E5
|
|
End
|
|
|
|
_0373:
|
|
EndCommunication
|
|
GoTo _02E5
|
|
End
|
|
|
|
_037D:
|
|
Message 44
|
|
ShowYesNoMenu VAR_RESULT
|
|
GoToIfEq VAR_RESULT, MENU_NO, _02E5
|
|
CloseMessage
|
|
StartBattleServer 31, 0, 0, VAR_RESULT
|
|
GoToIfEq VAR_RESULT, COMM_CLUB_RET_CANCEL, _03BF
|
|
GoToIfEq VAR_RESULT, COMM_CLUB_RET_ERROR, _03C7
|
|
GoTo _03D1
|
|
End
|
|
|
|
_03BF:
|
|
GoTo _02E5
|
|
End
|
|
|
|
_03C7:
|
|
EndCommunication
|
|
GoTo _02E5
|
|
End
|
|
|
|
_03D1:
|
|
ClearReceivedTempDataAllPlayers
|
|
ScrCmd_135 136
|
|
GetPartyMonSpecies VAR_MAP_LOCAL_2, VAR_0x8000
|
|
GetPartyMonSpecies VAR_MAP_LOCAL_5, VAR_0x8001
|
|
ScrCmd_2D3 VAR_0x8000, VAR_0x8001, VAR_RESULT
|
|
SetVar VAR_0x8008, VAR_RESULT
|
|
GoToIfEq VAR_0x8008, 1, _0444
|
|
GoToIfEq VAR_0x8008, 2, _045A
|
|
GoToIfEq VAR_0x8008, 3, _0470
|
|
ClearReceivedTempDataAllPlayers
|
|
ScrCmd_135 138
|
|
Message 45
|
|
CallIfEq VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_MULTI, _043C
|
|
Call _06CB
|
|
GoTo _049D
|
|
End
|
|
|
|
_043C:
|
|
SetVar VAR_UNK_0x40BC, 0xFF
|
|
Return
|
|
|
|
_0444:
|
|
Call _0493
|
|
BufferPartyMonSpecies 0, VAR_MAP_LOCAL_2
|
|
Message 29
|
|
GoTo _048B
|
|
End
|
|
|
|
_045A:
|
|
Call _0493
|
|
BufferPartyMonSpecies 0, VAR_MAP_LOCAL_5
|
|
Message 29
|
|
GoTo _048B
|
|
End
|
|
|
|
_0470:
|
|
Call _0493
|
|
BufferPartyMonSpecies 0, VAR_MAP_LOCAL_2
|
|
BufferPartyMonSpecies 1, VAR_MAP_LOCAL_5
|
|
Message 30
|
|
GoTo _048B
|
|
End
|
|
|
|
_048B:
|
|
GoTo _0139
|
|
End
|
|
|
|
_0493:
|
|
ClearReceivedTempDataAllPlayers
|
|
ScrCmd_135 139
|
|
EndCommunication
|
|
Return
|
|
|
|
_049D:
|
|
CallIfEq VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_SINGLE, _053D
|
|
CallIfEq VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_DOUBLE, _0558
|
|
CallIfEq VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_MULTI, _0573
|
|
PlayFanfare SEQ_SE_DP_KAIDAN2
|
|
GoTo _04D0
|
|
End
|
|
|
|
_04D0:
|
|
FadeScreenOut
|
|
WaitFadeScreen
|
|
CallIfEq VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_SINGLE, _0599
|
|
CallIfEq VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_DOUBLE, _05AD
|
|
CallIfEq VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_MULTI, _05C1
|
|
IncrementGameRecord RECORD_UNK_058
|
|
CreateJournalEvent LOCATION_EVENT_BATTLE_CASTLE, 0, 0, 0, 0
|
|
WaitForTransition
|
|
ScrCmd_2C4 11
|
|
CallIfEq VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_MULTI, _0539
|
|
ReturnToField
|
|
FadeScreenIn
|
|
WaitFadeScreen
|
|
AssertHeapMemory
|
|
End
|
|
|
|
_0539:
|
|
EndCommunication
|
|
Return
|
|
|
|
_053D:
|
|
Message 32
|
|
WaitABPress
|
|
CloseMessage
|
|
ApplyMovement LOCALID_PLAYER, _05E4
|
|
ApplyMovement VAR_LAST_TALKED, _0604
|
|
WaitMovement
|
|
Return
|
|
|
|
_0558:
|
|
Message 32
|
|
WaitABPress
|
|
CloseMessage
|
|
ApplyMovement LOCALID_PLAYER, _05E4
|
|
ApplyMovement VAR_LAST_TALKED, _0604
|
|
WaitMovement
|
|
Return
|
|
|
|
_0573:
|
|
MessageNoSkip 32
|
|
WaitTime 10, VAR_RESULT
|
|
ClearReceivedTempDataAllPlayers
|
|
ScrCmd_135 137
|
|
CloseMessage
|
|
ApplyMovement LOCALID_PLAYER, _05F0
|
|
ApplyMovement VAR_LAST_TALKED, _0610
|
|
WaitMovement
|
|
Return
|
|
|
|
_0599:
|
|
ApplyMovement LOCALID_PLAYER, _0624
|
|
ApplyMovement VAR_LAST_TALKED, _0648
|
|
WaitMovement
|
|
Return
|
|
|
|
_05AD:
|
|
ApplyMovement LOCALID_PLAYER, _0624
|
|
ApplyMovement VAR_LAST_TALKED, _0648
|
|
WaitMovement
|
|
Return
|
|
|
|
_05C1:
|
|
ApplyMovement LOCALID_PLAYER, _0634
|
|
ApplyMovement VAR_LAST_TALKED, _0654
|
|
WaitMovement
|
|
Return
|
|
|
|
_05D5:
|
|
SetVar VAR_UNK_0x40BC, 0
|
|
Common_GriseousOrbCouldNotBeRemoved
|
|
End
|
|
|
|
.balign 4, 0
|
|
_05E4:
|
|
WalkNormalWest 6
|
|
SetInvisible
|
|
EndMovement
|
|
|
|
.balign 4, 0
|
|
_05F0:
|
|
WalkNormalWest 3
|
|
WalkNormalNorth
|
|
WalkNormalWest 3
|
|
SetInvisible
|
|
EndMovement
|
|
|
|
.balign 4, 0
|
|
_0604:
|
|
WalkNormalWest 5
|
|
SetInvisible
|
|
EndMovement
|
|
|
|
.balign 4, 0
|
|
_0610:
|
|
WalkNormalWest 2
|
|
WalkNormalNorth
|
|
WalkNormalWest 3
|
|
SetInvisible
|
|
EndMovement
|
|
|
|
.balign 4, 0
|
|
_0624:
|
|
WalkFasterEast 6
|
|
SetVisible
|
|
FaceWest
|
|
EndMovement
|
|
|
|
.balign 4, 0
|
|
_0634:
|
|
WalkFasterEast 6
|
|
WalkFasterSouth
|
|
SetVisible
|
|
FaceWest
|
|
EndMovement
|
|
|
|
.balign 4, 0
|
|
_0648:
|
|
WalkFasterEast 5
|
|
SetVisible
|
|
EndMovement
|
|
|
|
.balign 4, 0
|
|
_0654:
|
|
WalkFasterSouth
|
|
WalkFasterEast 5
|
|
SetVisible
|
|
EndMovement
|
|
|
|
_0664:
|
|
Message 0
|
|
Return
|
|
|
|
_0669:
|
|
Message 3
|
|
Return
|
|
|
|
_066E:
|
|
InitLocalTextMenu 31, 9, 0, VAR_RESULT
|
|
SetMenuXOriginToRight
|
|
AddMenuEntryImm 38, 0
|
|
AddMenuEntryImm 39, 1
|
|
Message 1
|
|
Return
|
|
|
|
_0686:
|
|
InitLocalTextMenu 31, 11, 0, VAR_RESULT
|
|
SetMenuXOriginToRight
|
|
AddMenuEntryImm 40, 4
|
|
Message 4
|
|
Return
|
|
|
|
_069A:
|
|
Message 2
|
|
Return
|
|
|
|
_069F:
|
|
Message 5
|
|
Return
|
|
|
|
_06A4:
|
|
RecordHeapMemory
|
|
SetVar VAR_MAP_LOCAL_3, 1
|
|
SetVar VAR_UNK_0x40BC, 0
|
|
Message 33
|
|
Call _043C
|
|
Call _06CB
|
|
GoTo _049D
|
|
End
|
|
|
|
_06CB:
|
|
ShowSavingIcon
|
|
TrySaveGame VAR_RESULT
|
|
HideSavingIcon
|
|
PlayFanfare SEQ_SE_DP_SAVE
|
|
WaitFanfare SEQ_SE_DP_SAVE
|
|
Return
|
|
|
|
_06DD:
|
|
Message 34
|
|
ScrCmd_2D5 VAR_BATTLE_CASTLE_CHALLENGE_TYPE
|
|
GoTo _0139
|
|
End
|
|
|
|
_06EC:
|
|
CallIfEq VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_SINGLE, _0728
|
|
CallIfEq VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_DOUBLE, _0728
|
|
CallIfEq VAR_BATTLE_CASTLE_PRINT_STATE, 1, _072E
|
|
CallIfEq VAR_BATTLE_CASTLE_PRINT_STATE, 3, _0745
|
|
GoTo _0139
|
|
End
|
|
|
|
_0728:
|
|
IncrementTrainerScore TRAINER_SCORE_EVENT_UNK_39
|
|
Return
|
|
|
|
_072E:
|
|
Message 35
|
|
BufferPlayerName 0
|
|
Message 37
|
|
PlaySound SEQ_FANFA4
|
|
WaitSound
|
|
SetVar VAR_BATTLE_CASTLE_PRINT_STATE, 2
|
|
Return
|
|
|
|
_0745:
|
|
Message 35
|
|
BufferPlayerName 0
|
|
Message 36
|
|
PlaySound SEQ_FANFA4
|
|
WaitSound
|
|
SetVar VAR_BATTLE_CASTLE_PRINT_STATE, 4
|
|
Common_CheckAllFrontierGoldPrintsObtained
|
|
Return
|
|
|
|
_0760:
|
|
GoTo _0139
|
|
End
|
|
|
|
BattleCastle_UnusedMovement:
|
|
WalkNormalNorth 2
|
|
Delay8
|
|
WalkNormalNorth
|
|
EndMovement
|
|
|
|
BattleCastle_UnusedMovement2:
|
|
WalkNormalNorth 2
|
|
Delay8
|
|
WalkNormalNorth
|
|
EndMovement
|
|
|
|
_0788:
|
|
NPCMessage 46
|
|
End
|
|
|
|
_079B:
|
|
NPCMessage 47
|
|
End
|
|
|
|
_07AE:
|
|
NPCMessage 48
|
|
End
|
|
|
|
_07C1:
|
|
NPCMessage 49
|
|
End
|
|
|
|
_07D4:
|
|
NPCMessage 50
|
|
End
|
|
|
|
_07E7:
|
|
NPCMessage 51
|
|
End
|
|
|
|
_07FA:
|
|
NPCMessage 52
|
|
End
|
|
|
|
.balign 4, 0
|