mirror of
https://github.com/pret/pokered.git
synced 2024-10-23 06:58:24 +00:00
d001ced41b
This introduces `def_script_pointers`, `def_text_pointers`, and `object_const_def` macros, and applies them to all maps. Most other map labels have also been identified.
300 lines
7.7 KiB
NASM
300 lines
7.7 KiB
NASM
ChampionsRoom_Script:
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, ChampionsRoom_ScriptPointers
|
|
ld a, [wChampionsRoomCurScript]
|
|
jp CallFunctionInTable
|
|
|
|
ResetRivalScript:
|
|
xor a ; SCENE_CHAMPIONSROOM_DEFAULT
|
|
ld [wJoyIgnore], a
|
|
ld [wChampionsRoomCurScript], a
|
|
ret
|
|
|
|
ChampionsRoom_ScriptPointers:
|
|
def_script_pointers
|
|
dw_const ChampionsRoomDefaultScript, SCRIPT_CHAMPIONSROOM_DEFAULT
|
|
dw_const ChampionsRoomPlayerEntersScript, SCRIPT_CHAMPIONSROOM_PLAYER_ENTERS
|
|
dw_const ChampionsRoomRivalReadyToBattleScript, SCRIPT_CHAMPIONSROOM_RIVAL_READY_TO_BATTLE
|
|
dw_const ChampionsRoomRivalDefeatedScript, SCRIPT_CHAMPIONSROOM_RIVAL_DEFEATED
|
|
dw_const ChampionsRoomOakArrivesScript, SCRIPT_CHAMPIONSROOM_OAK_ARRIVES
|
|
dw_const ChampionsRoomOakCongratulatesPlayerScript, SCRIPT_CHAMPIONSROOM_OAK_CONGRATULATES_PLAYER
|
|
dw_const ChampionsRoomOakDisappointedWithRivalScript, SCRIPT_CHAMPIONSROOM_OAK_DISAPPOINTED_WITH_RIVAL
|
|
dw_const ChampionsRoomOakComeWithMeScript, SCRIPT_CHAMPIONSROOM_OAK_COME_WITH_ME
|
|
dw_const ChampionsRoomOakExitsScript, SCRIPT_CHAMPIONSROOM_OAK_EXITS
|
|
dw_const ChampionsRoomPlayerFollowsOakScript, SCRIPT_CHAMPIONSROOM_PLAYER_FOLLOWS_OAK
|
|
dw_const ChampionsRoomCleanupScript, SCRIPT_CHAMPIONSROOM_CLEANUP_SCRIPT
|
|
|
|
ChampionsRoomDefaultScript:
|
|
ret
|
|
|
|
ChampionsRoomPlayerEntersScript:
|
|
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
|
|
ld [wJoyIgnore], a
|
|
ld hl, wSimulatedJoypadStatesEnd
|
|
ld de, RivalEntrance_RLEMovement
|
|
call DecodeRLEList
|
|
dec a
|
|
ld [wSimulatedJoypadStatesIndex], a
|
|
call StartSimulatingJoypadStates
|
|
ld a, SCRIPT_CHAMPIONSROOM_RIVAL_READY_TO_BATTLE
|
|
ld [wChampionsRoomCurScript], a
|
|
ret
|
|
|
|
RivalEntrance_RLEMovement:
|
|
db D_UP, 1
|
|
db D_RIGHT, 1
|
|
db D_UP, 3
|
|
db -1 ; end
|
|
|
|
ChampionsRoomRivalReadyToBattleScript:
|
|
ld a, [wSimulatedJoypadStatesIndex]
|
|
and a
|
|
ret nz
|
|
call Delay3
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld hl, wOptions
|
|
res 7, [hl] ; Turn on battle animations to make the battle feel more epic.
|
|
ld a, TEXT_CHAMPIONSROOM_RIVAL
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
call Delay3
|
|
ld hl, wd72d
|
|
set 6, [hl]
|
|
set 7, [hl]
|
|
ld hl, RivalDefeatedText
|
|
ld de, RivalVictoryText
|
|
call SaveEndBattleTextPointers
|
|
ld a, OPP_RIVAL3
|
|
ld [wCurOpponent], a
|
|
|
|
; select which team to use during the encounter
|
|
ld a, [wRivalStarter]
|
|
cp STARTER2
|
|
jr nz, .NotStarter2
|
|
ld a, $1
|
|
jr .saveTrainerId
|
|
.NotStarter2
|
|
cp STARTER3
|
|
jr nz, .NotStarter3
|
|
ld a, $2
|
|
jr .saveTrainerId
|
|
.NotStarter3
|
|
ld a, $3
|
|
.saveTrainerId
|
|
ld [wTrainerNo], a
|
|
|
|
xor a
|
|
ldh [hJoyHeld], a
|
|
ld a, SCRIPT_CHAMPIONSROOM_RIVAL_DEFEATED
|
|
ld [wChampionsRoomCurScript], a
|
|
ret
|
|
|
|
ChampionsRoomRivalDefeatedScript:
|
|
ld a, [wIsInBattle]
|
|
cp $ff
|
|
jp z, ResetRivalScript
|
|
call UpdateSprites
|
|
SetEvent EVENT_BEAT_CHAMPION_RIVAL
|
|
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
|
|
ld [wJoyIgnore], a
|
|
ld a, TEXT_CHAMPIONSROOM_RIVAL
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call RivalScript_760c8
|
|
ld a, CHAMPIONSROOM_RIVAL
|
|
ldh [hSpriteIndex], a
|
|
call SetSpriteMovementBytesToFF
|
|
ld a, SCRIPT_CHAMPIONSROOM_OAK_ARRIVES
|
|
ld [wChampionsRoomCurScript], a
|
|
ret
|
|
|
|
ChampionsRoomOakArrivesScript:
|
|
farcall Music_Cities1AlternateTempo
|
|
ld a, TEXT_CHAMPIONSROOM_OAK
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call RivalScript_760c8
|
|
ld a, CHAMPIONSROOM_OAK
|
|
ldh [hSpriteIndex], a
|
|
call SetSpriteMovementBytesToFF
|
|
ld de, OakEntranceAfterVictoryMovement
|
|
ld a, CHAMPIONSROOM_OAK
|
|
ldh [hSpriteIndex], a
|
|
call MoveSprite
|
|
ld a, HS_CHAMPIONS_ROOM_OAK
|
|
ld [wMissableObjectIndex], a
|
|
predef ShowObject
|
|
ld a, SCRIPT_CHAMPIONSROOM_OAK_CONGRATULATES_PLAYER
|
|
ld [wChampionsRoomCurScript], a
|
|
ret
|
|
|
|
OakEntranceAfterVictoryMovement:
|
|
db NPC_MOVEMENT_UP
|
|
db NPC_MOVEMENT_UP
|
|
db NPC_MOVEMENT_UP
|
|
db NPC_MOVEMENT_UP
|
|
db NPC_MOVEMENT_UP
|
|
db -1 ; end
|
|
|
|
ChampionsRoomOakCongratulatesPlayerScript:
|
|
ld a, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
ld a, PLAYER_DIR_LEFT
|
|
ld [wPlayerMovingDirection], a
|
|
ld a, CHAMPIONSROOM_RIVAL
|
|
ldh [hSpriteIndex], a
|
|
ld a, SPRITE_FACING_LEFT
|
|
ldh [hSpriteFacingDirection], a
|
|
call SetSpriteFacingDirectionAndDelay
|
|
ld a, CHAMPIONSROOM_OAK
|
|
ldh [hSpriteIndex], a
|
|
xor a ; SPRITE_FACING_DOWN
|
|
ldh [hSpriteFacingDirection], a
|
|
call SetSpriteFacingDirectionAndDelay
|
|
ld a, TEXT_CHAMPIONSROOM_OAK_CONGRATULATES_PLAYER
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call RivalScript_760c8
|
|
ld a, SCRIPT_CHAMPIONSROOM_OAK_DISAPPOINTED_WITH_RIVAL
|
|
ld [wChampionsRoomCurScript], a
|
|
ret
|
|
|
|
ChampionsRoomOakDisappointedWithRivalScript:
|
|
ld a, CHAMPIONSROOM_OAK
|
|
ldh [hSpriteIndex], a
|
|
ld a, SPRITE_FACING_RIGHT
|
|
ldh [hSpriteFacingDirection], a
|
|
call SetSpriteFacingDirectionAndDelay
|
|
ld a, TEXT_CHAMPIONSROOM_OAK_DISAPPOINTED_WITH_RIVAL
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call RivalScript_760c8
|
|
ld a, SCRIPT_CHAMPIONSROOM_OAK_COME_WITH_ME
|
|
ld [wChampionsRoomCurScript], a
|
|
ret
|
|
|
|
ChampionsRoomOakComeWithMeScript:
|
|
ld a, CHAMPIONSROOM_OAK
|
|
ldh [hSpriteIndex], a
|
|
xor a ; SPRITE_FACING_DOWN
|
|
ldh [hSpriteFacingDirection], a
|
|
call SetSpriteFacingDirectionAndDelay
|
|
ld a, TEXT_CHAMPIONSROOM_OAK_COME_WITH_ME
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call RivalScript_760c8
|
|
ld de, OakExitChampionsRoomMovement
|
|
ld a, CHAMPIONSROOM_OAK
|
|
ldh [hSpriteIndex], a
|
|
call MoveSprite
|
|
ld a, SCRIPT_CHAMPIONSROOM_OAK_EXITS
|
|
ld [wChampionsRoomCurScript], a
|
|
ret
|
|
|
|
OakExitChampionsRoomMovement:
|
|
db NPC_MOVEMENT_UP
|
|
db NPC_MOVEMENT_UP
|
|
db -1 ; end
|
|
|
|
ChampionsRoomOakExitsScript:
|
|
ld a, [wd730]
|
|
bit 0, a
|
|
ret nz
|
|
ld a, HS_CHAMPIONS_ROOM_OAK
|
|
ld [wMissableObjectIndex], a
|
|
predef HideObject
|
|
ld a, SCRIPT_CHAMPIONSROOM_PLAYER_FOLLOWS_OAK
|
|
ld [wChampionsRoomCurScript], a
|
|
ret
|
|
|
|
ChampionsRoomPlayerFollowsOakScript:
|
|
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
|
|
ld [wJoyIgnore], a
|
|
ld hl, wSimulatedJoypadStatesEnd
|
|
ld de, WalkToHallOfFame_RLEMovement
|
|
call DecodeRLEList
|
|
dec a
|
|
ld [wSimulatedJoypadStatesIndex], a
|
|
call StartSimulatingJoypadStates
|
|
ld a, SCRIPT_CHAMPIONSROOM_CLEANUP_SCRIPT
|
|
ld [wChampionsRoomCurScript], a
|
|
ret
|
|
|
|
WalkToHallOfFame_RLEMovement:
|
|
db D_UP, 4
|
|
db D_LEFT, 1
|
|
db -1 ; end
|
|
|
|
ChampionsRoomCleanupScript:
|
|
ld a, [wSimulatedJoypadStatesIndex]
|
|
and a
|
|
ret nz
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, SCRIPT_CHAMPIONSROOM_DEFAULT
|
|
ld [wChampionsRoomCurScript], a
|
|
ret
|
|
|
|
RivalScript_760c8:
|
|
ld a, D_RIGHT | D_LEFT | D_UP | D_DOWN
|
|
ld [wJoyIgnore], a
|
|
call DisplayTextID
|
|
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
|
|
ld [wJoyIgnore], a
|
|
ret
|
|
|
|
ChampionsRoom_TextPointers:
|
|
def_text_pointers
|
|
dw_const ChampionsRoomRivalText, TEXT_CHAMPIONSROOM_RIVAL
|
|
dw_const ChampionsRoomOakText, TEXT_CHAMPIONSROOM_OAK
|
|
dw_const ChampionsRoomOakCongratulatesPlayerText, TEXT_CHAMPIONSROOM_OAK_CONGRATULATES_PLAYER
|
|
dw_const ChampionsRoomOakDisappointedWithRivalText, TEXT_CHAMPIONSROOM_OAK_DISAPPOINTED_WITH_RIVAL
|
|
dw_const ChampionsRoomOakComeWithMeText, TEXT_CHAMPIONSROOM_OAK_COME_WITH_ME
|
|
|
|
ChampionsRoomRivalText:
|
|
text_asm
|
|
CheckEvent EVENT_BEAT_CHAMPION_RIVAL
|
|
ld hl, .IntroText
|
|
jr z, .printText
|
|
ld hl, ChampionsRoomRivalAfterBattleText
|
|
.printText
|
|
call PrintText
|
|
jp TextScriptEnd
|
|
|
|
.IntroText:
|
|
text_far _ChampionsRoomRivalIntroText
|
|
text_end
|
|
|
|
RivalDefeatedText:
|
|
text_far _RivalDefeatedText
|
|
text_end
|
|
|
|
RivalVictoryText:
|
|
text_far _RivalVictoryText
|
|
text_end
|
|
|
|
ChampionsRoomRivalAfterBattleText:
|
|
text_far _ChampionsRoomRivalAfterBattleText
|
|
text_end
|
|
|
|
ChampionsRoomOakText:
|
|
text_far _ChampionsRoomOakText
|
|
text_end
|
|
|
|
ChampionsRoomOakCongratulatesPlayerText:
|
|
text_asm
|
|
ld a, [wPlayerStarter]
|
|
ld [wd11e], a
|
|
call GetMonName
|
|
ld hl, .Text
|
|
call PrintText
|
|
jp TextScriptEnd
|
|
|
|
.Text:
|
|
text_far _ChampionsRoomOakCongratulatesPlayerText
|
|
text_end
|
|
|
|
ChampionsRoomOakDisappointedWithRivalText:
|
|
text_far _ChampionsRoomOakDisappointedWithRivalText
|
|
text_end
|
|
|
|
ChampionsRoomOakComeWithMeText:
|
|
text_far _ChampionsRoomOakComeWithMeText
|
|
text_end
|