pokered/scripts/HallOfFame.asm

113 lines
2.8 KiB
NASM
Raw Permalink Normal View History

HallOfFame_Script:
2014-05-18 18:19:10 +00:00
call EnableAutoTextBoxDrawing
ld hl, HallOfFame_ScriptPointers
ld a, [wHallOfFameCurScript]
2014-05-18 18:19:10 +00:00
jp CallFunctionInTable
2023-11-19 00:44:03 +00:00
HallofFameRoomClearScripts: ; unreferenced
2014-05-18 18:19:10 +00:00
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld [wHallOfFameCurScript], a
2014-05-18 18:19:10 +00:00
ret
HallOfFame_ScriptPointers:
def_script_pointers
dw_const HallOfFameDefaultScript, SCRIPT_HALLOFFAME_DEFAULT
dw_const HallOfFameOakCongratulationsScript, SCRIPT_HALLOFFAME_OAK_CONGRATULATIONS
dw_const HallOfFameResetEventsAndSaveScript, SCRIPT_HALLOFFAME_RESET_EVENTS_AND_SAVE
dw_const HallOfFameNoopScript, SCRIPT_HALLOFFAME_NOOP
2014-05-18 18:19:10 +00:00
HallOfFameNoopScript:
2014-05-18 18:19:10 +00:00
ret
HallOfFameResetEventsAndSaveScript:
2014-05-18 18:19:10 +00:00
call Delay3
2015-07-15 02:46:52 +00:00
ld a, [wLetterPrintingDelayFlags]
2014-05-18 18:19:10 +00:00
push af
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
predef HallOfFamePC
2014-05-18 18:19:10 +00:00
pop af
2015-07-15 02:46:52 +00:00
ld [wLetterPrintingDelayFlags], a
ld hl, wStatusFlags7
res BIT_NO_MAP_MUSIC, [hl]
assert wStatusFlags7 + 1 == wElite4Flags
2014-05-18 18:19:10 +00:00
inc hl
set BIT_UNUSED_BEAT_ELITE_4, [hl] ; debug, unused?
xor a ; SCRIPT_*_DEFAULT
ld hl, wLoreleisRoomCurScript
ld [hli], a ; wLoreleisRoomCurScript
ld [hli], a ; wBrunosRoomCurScript
ld [hl], a ; wAgathasRoomCurScript
ld [wLancesRoomCurScript], a
ld [wHallOfFameCurScript], a
2015-07-21 01:32:02 +00:00
; Elite 4 events
ResetEventRange INDIGO_PLATEAU_EVENTS_START, INDIGO_PLATEAU_EVENTS_END, 1
2014-05-18 18:19:10 +00:00
xor a
ld [wHallOfFameCurScript], a
ld a, PALLET_TOWN
ld [wLastBlackoutMap], a
farcall SaveSAVtoSRAM
ld b, 5
2015-08-30 00:15:05 +00:00
.delayLoop
ld c, 600 / 5
2014-05-18 18:19:10 +00:00
call DelayFrames
dec b
2015-08-30 00:15:05 +00:00
jr nz, .delayLoop
2014-05-18 18:19:10 +00:00
call WaitForTextScrollButtonPress
2014-05-23 22:34:35 +00:00
jp Init
2014-05-18 18:19:10 +00:00
HallOfFameDefaultScript:
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld hl, wSimulatedJoypadStatesEnd
2023-11-19 19:17:51 +00:00
ld de, HallOfFameEntryMovement
2014-05-18 18:19:10 +00:00
call DecodeRLEList
dec a
ld [wSimulatedJoypadStatesIndex], a
call StartSimulatingJoypadStates
ld a, SCRIPT_HALLOFFAME_OAK_CONGRATULATIONS
ld [wHallOfFameCurScript], a
2014-05-18 18:19:10 +00:00
ret
2023-11-19 19:17:51 +00:00
HallOfFameEntryMovement:
db D_UP, 5
db -1 ; end
2014-05-18 18:19:10 +00:00
HallOfFameOakCongratulationsScript:
ld a, [wSimulatedJoypadStatesIndex]
2014-05-18 18:19:10 +00:00
and a
ret nz
2015-07-20 00:52:26 +00:00
ld a, PLAYER_DIR_RIGHT
ld [wPlayerMovingDirection], a
ld a, HALLOFFAME_OAK
ldh [hSpriteIndex], a
2014-05-18 18:19:10 +00:00
call SetSpriteMovementBytesToFF
2015-07-20 00:52:26 +00:00
ld a, SPRITE_FACING_LEFT
ldh [hSpriteFacingDirection], a
call SetSpriteFacingDirectionAndDelay
2014-05-18 18:19:10 +00:00
call Delay3
xor a
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
2015-07-20 00:52:26 +00:00
inc a ; PLAYER_DIR_RIGHT
ld [wPlayerMovingDirection], a
ld a, TEXT_HALLOFFAME_OAK
ldh [hTextID], a
2014-05-18 18:19:10 +00:00
call DisplayTextID
ld a, A_BUTTON | B_BUTTON | SELECT | START | D_RIGHT | D_LEFT | D_UP | D_DOWN
2014-05-25 17:51:53 +00:00
ld [wJoyIgnore], a
ld a, HS_CERULEAN_CAVE_GUY
2015-07-25 03:27:59 +00:00
ld [wMissableObjectIndex], a
predef HideObject
ld a, SCRIPT_HALLOFFAME_RESET_EVENTS_AND_SAVE
ld [wHallOfFameCurScript], a
2014-05-18 18:19:10 +00:00
ret
HallOfFame_TextPointers:
def_text_pointers
dw_const HallOfFameOakText, TEXT_HALLOFFAME_OAK
2014-05-18 18:19:10 +00:00
HallOfFameOakText:
text_far _HallOfFameOakText
text_end