summaryrefslogtreecommitdiff
path: root/scripts/ChampionsRoom.asm
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2019-01-01 15:06:23 -0500
committerRangi <remy.oukaour+rangi42@gmail.com>2019-01-01 23:33:10 -0500
commitc7796024590fec48ac79756793c1a6e3b54daf8f (patch)
tree0d61caa7ebe429995a61e800d1d78c3a82aec886 /scripts/ChampionsRoom.asm
parent90430e6dee9e207dc0b618d07566f83617343f60 (diff)
Rename map files, labels, and constants to be consistent and work with Polished Map
Diffstat (limited to 'scripts/ChampionsRoom.asm')
-rwxr-xr-xscripts/ChampionsRoom.asm298
1 files changed, 298 insertions, 0 deletions
diff --git a/scripts/ChampionsRoom.asm b/scripts/ChampionsRoom.asm
new file mode 100755
index 00000000..e3cdc6d2
--- /dev/null
+++ b/scripts/ChampionsRoom.asm
@@ -0,0 +1,298 @@
+ChampionsRoom_Script:
+ call EnableAutoTextBoxDrawing
+ ld hl, ChampionsRoom_ScriptPointers
+ ld a, [wChampionsRoomCurScript]
+ jp CallFunctionInTable
+
+ResetGaryScript:
+ xor a
+ ld [wJoyIgnore], a
+ ld [wChampionsRoomCurScript], a
+ ret
+
+ChampionsRoom_ScriptPointers:
+ dw GaryScript0
+ dw GaryScript1
+ dw GaryScript2
+ dw GaryScript3
+ dw GaryScript4
+ dw GaryScript5
+ dw GaryScript6
+ dw GaryScript7
+ dw GaryScript8
+ dw GaryScript9
+ dw GaryScript10
+
+GaryScript0:
+ ret
+
+GaryScript1:
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld hl, wSimulatedJoypadStatesEnd
+ ld de, GaryEntrance_RLEMovement
+ call DecodeRLEList
+ dec a
+ ld [wSimulatedJoypadStatesIndex], a
+ call StartSimulatingJoypadStates
+ ld a, $2
+ ld [wChampionsRoomCurScript], a
+ ret
+
+GaryEntrance_RLEMovement:
+ db D_UP,1
+ db D_RIGHT,1
+ db D_UP,3
+ db $ff
+
+GaryScript2:
+ 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, $1
+ ld [hSpriteIndexOrTextID], a
+ call DisplayTextID
+ call Delay3
+ ld hl, wd72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, GaryDefeatedText
+ ld de, GaryVictoryText
+ call SaveEndBattleTextPointers
+ ld a, OPP_SONY3
+ 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
+ ld [hJoyHeld], a
+ ld a, $3
+ ld [wChampionsRoomCurScript], a
+ ret
+
+GaryScript3:
+ ld a, [wIsInBattle]
+ cp $ff
+ jp z, ResetGaryScript
+ call UpdateSprites
+ SetEvent EVENT_BEAT_CHAMPION_RIVAL
+ ld a, $f0
+ ld [wJoyIgnore], a
+ ld a, $1
+ ld [hSpriteIndexOrTextID], a
+ call GaryScript_760c8
+ ld a, $1
+ ld [H_SPRITEINDEX], a
+ call SetSpriteMovementBytesToFF
+ ld a, $4
+ ld [wChampionsRoomCurScript], a
+ ret
+
+GaryScript4:
+ callba Music_Cities1AlternateTempo
+ ld a, $2
+ ld [hSpriteIndexOrTextID], a
+ call GaryScript_760c8
+ ld a, $2
+ ld [H_SPRITEINDEX], a
+ call SetSpriteMovementBytesToFF
+ ld de, OakEntranceAfterVictoryMovement
+ ld a, $2
+ ld [H_SPRITEINDEX], a
+ call MoveSprite
+ ld a, HS_CHAMPIONS_ROOM_OAK
+ ld [wMissableObjectIndex], a
+ predef ShowObject
+ ld a, $5
+ 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 $FF
+
+GaryScript5:
+ ld a, [wd730]
+ bit 0, a
+ ret nz
+ ld a, PLAYER_DIR_LEFT
+ ld [wPlayerMovingDirection], a
+ ld a, $1
+ ld [H_SPRITEINDEX], a
+ ld a, SPRITE_FACING_LEFT
+ ld [hSpriteFacingDirection], a
+ call SetSpriteFacingDirectionAndDelay
+ ld a, $2
+ ld [H_SPRITEINDEX], a
+ xor a ; SPRITE_FACING_DOWN
+ ld [hSpriteFacingDirection], a
+ call SetSpriteFacingDirectionAndDelay
+ ld a, $3
+ ld [hSpriteIndexOrTextID], a
+ call GaryScript_760c8
+ ld a, $6
+ ld [wChampionsRoomCurScript], a
+ ret
+
+GaryScript6:
+ ld a, $2
+ ld [H_SPRITEINDEX], a
+ ld a, SPRITE_FACING_RIGHT
+ ld [hSpriteFacingDirection], a
+ call SetSpriteFacingDirectionAndDelay
+ ld a, $4
+ ld [hSpriteIndexOrTextID], a
+ call GaryScript_760c8
+ ld a, $7
+ ld [wChampionsRoomCurScript], a
+ ret
+
+GaryScript7:
+ ld a, $2
+ ld [H_SPRITEINDEX], a
+ xor a ; SPRITE_FACING_DOWN
+ ld [hSpriteFacingDirection], a
+ call SetSpriteFacingDirectionAndDelay
+ ld a, $5
+ ld [hSpriteIndexOrTextID], a
+ call GaryScript_760c8
+ ld de, OakExitGaryRoomMovement
+ ld a, $2
+ ld [H_SPRITEINDEX], a
+ call MoveSprite
+ ld a, $8
+ ld [wChampionsRoomCurScript], a
+ ret
+
+OakExitGaryRoomMovement:
+ db NPC_MOVEMENT_UP
+ db NPC_MOVEMENT_UP
+ db $FF
+
+GaryScript8:
+ ld a, [wd730]
+ bit 0, a
+ ret nz
+ ld a, HS_CHAMPIONS_ROOM_OAK
+ ld [wMissableObjectIndex], a
+ predef HideObject
+ ld a, $9
+ ld [wChampionsRoomCurScript], a
+ ret
+
+GaryScript9:
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ld hl, wSimulatedJoypadStatesEnd
+ ld de, WalkToHallOfFame_RLEMovment
+ call DecodeRLEList
+ dec a
+ ld [wSimulatedJoypadStatesIndex], a
+ call StartSimulatingJoypadStates
+ ld a, $a
+ ld [wChampionsRoomCurScript], a
+ ret
+
+WalkToHallOfFame_RLEMovment:
+ db D_UP,4
+ db D_LEFT,1
+ db $ff
+
+GaryScript10:
+ ld a, [wSimulatedJoypadStatesIndex]
+ and a
+ ret nz
+ xor a
+ ld [wJoyIgnore], a
+ ld a, $0
+ ld [wChampionsRoomCurScript], a
+ ret
+
+GaryScript_760c8:
+ ld a, $f0
+ ld [wJoyIgnore], a
+ call DisplayTextID
+ ld a, $ff
+ ld [wJoyIgnore], a
+ ret
+
+ChampionsRoom_TextPointers:
+ dw GaryText1
+ dw GaryText2
+ dw GaryText3
+ dw GaryText4
+ dw GaryText5
+
+GaryText1:
+ TX_ASM
+ CheckEvent EVENT_BEAT_CHAMPION_RIVAL
+ ld hl, GaryChampionIntroText
+ jr z, .printText
+ ld hl, GaryText_76103
+.printText
+ call PrintText
+ jp TextScriptEnd
+
+GaryChampionIntroText:
+ TX_FAR _GaryChampionIntroText
+ db "@"
+
+GaryDefeatedText:
+ TX_FAR _GaryDefeatedText
+ db "@"
+
+GaryVictoryText:
+ TX_FAR _GaryVictoryText
+ db "@"
+
+GaryText_76103:
+ TX_FAR _GaryText_76103
+ db "@"
+
+GaryText2:
+ TX_FAR _GaryText2
+ db "@"
+
+GaryText3:
+ TX_ASM
+ ld a, [wPlayerStarter]
+ ld [wd11e], a
+ call GetMonName
+ ld hl, GaryText_76120
+ call PrintText
+ jp TextScriptEnd
+
+GaryText_76120:
+ TX_FAR _GaryText_76120
+ db "@"
+
+GaryText4:
+ TX_FAR _GaryText_76125
+ db "@"
+
+GaryText5:
+ TX_FAR _GaryText_7612a
+ db "@"