mirror of
https://github.com/pret/pokeyellow.git
synced 2026-05-08 06:43:11 -05:00
202 lines
3.8 KiB
NASM
202 lines
3.8 KiB
NASM
SafariZoneGate_Script:
|
|
call EnableAutoTextBoxDrawing
|
|
ld hl, SafariZoneGate_ScriptPointers
|
|
ld a, [wSafariZoneGateCurScript]
|
|
call CallFunctionInTable
|
|
ret
|
|
|
|
SafariZoneGate_ScriptPointers:
|
|
dw .SafariZoneEntranceScript0
|
|
dw .SafariZoneEntranceScript1
|
|
dw .SafariZoneEntranceScript2
|
|
dw .SafariZoneEntranceScript3
|
|
dw .SafariZoneEntranceScript4
|
|
dw .SafariZoneEntranceScript5
|
|
dw .SafariZoneEntranceScript6
|
|
|
|
.SafariZoneEntranceScript0
|
|
ld hl, .CoordsData_75221
|
|
call ArePlayerCoordsInArray
|
|
ret nc
|
|
ld a, $3
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
ld a, $ff
|
|
ld [wJoyIgnore], a
|
|
xor a
|
|
ldh [hJoyHeld], a
|
|
ld a, SPRITE_FACING_RIGHT
|
|
ld [wSpritePlayerStateData1FacingDirection], a
|
|
ld a, [wCoordIndex]
|
|
cp $1
|
|
jr z, .asm_7520f
|
|
ld a, $2
|
|
ld [wSafariZoneGateCurScript], a
|
|
ret
|
|
.asm_7520f
|
|
ld a, D_RIGHT
|
|
ld c, $1
|
|
call SafariZoneEntranceAutoWalk
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
ld a, $1
|
|
ld [wSafariZoneGateCurScript], a
|
|
ret
|
|
|
|
.CoordsData_75221:
|
|
dbmapcoord 3, 2
|
|
dbmapcoord 4, 2
|
|
db -1 ; end
|
|
|
|
.SafariZoneEntranceScript1
|
|
call SafariZoneEntranceScript_752b4
|
|
ret nz
|
|
.SafariZoneEntranceScript2
|
|
xor a
|
|
ldh [hJoyHeld], a
|
|
ld [wJoyIgnore], a
|
|
call UpdateSprites
|
|
ld a, $4
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
ld a, $ff
|
|
ld [wJoyIgnore], a
|
|
ret
|
|
|
|
.SafariZoneEntranceScript3
|
|
call SafariZoneEntranceScript_752b4
|
|
ret nz
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, $5
|
|
ld [wSafariZoneGateCurScript], a
|
|
ret
|
|
|
|
.SafariZoneEntranceScript5
|
|
ld a, PLAYER_DIR_DOWN
|
|
ld [wPlayerMovingDirection], a
|
|
CheckAndResetEvent EVENT_SAFARI_GAME_OVER
|
|
jr z, .asm_7527f
|
|
ResetEventReuseHL EVENT_IN_SAFARI_ZONE
|
|
call UpdateSprites
|
|
ld a, $f0
|
|
ld [wJoyIgnore], a
|
|
ld a, $6
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
xor a
|
|
ld [wNumSafariBalls], a
|
|
ld [wSafariSteps], a
|
|
ld [wSafariSteps], a ; ?????
|
|
ld a, D_DOWN
|
|
ld c, $3
|
|
call SafariZoneEntranceAutoWalk
|
|
ld a, $4
|
|
ld [wSafariZoneGateCurScript], a
|
|
jr .asm_75286
|
|
.asm_7527f
|
|
ld a, $5
|
|
ldh [hSpriteIndexOrTextID], a
|
|
call DisplayTextID
|
|
.asm_75286
|
|
ret
|
|
|
|
.SafariZoneEntranceScript4
|
|
call SafariZoneEntranceScript_752b4
|
|
ret nz
|
|
xor a
|
|
ld [wJoyIgnore], a
|
|
ld a, $0
|
|
ld [wSafariZoneGateCurScript], a
|
|
ret
|
|
|
|
.SafariZoneEntranceScript6
|
|
call SafariZoneEntranceScript_752b4
|
|
ret nz
|
|
call Delay3
|
|
ld a, [wcf0d]
|
|
ld [wSafariZoneGateCurScript], a
|
|
ret
|
|
|
|
SafariZoneEntranceAutoWalk:
|
|
push af
|
|
ld b, 0
|
|
ld a, c
|
|
ld [wSimulatedJoypadStatesIndex], a
|
|
ld hl, wSimulatedJoypadStatesEnd
|
|
pop af
|
|
call FillMemory
|
|
jp StartSimulatingJoypadStates
|
|
|
|
SafariZoneEntranceScript_752b4:
|
|
ld a, [wSimulatedJoypadStatesIndex]
|
|
and a
|
|
ret
|
|
|
|
SafariZoneGate_TextPointers:
|
|
dw .SafariZoneEntranceText1
|
|
dw .SafariZoneEntranceText2
|
|
dw .SafariZoneEntranceText1
|
|
dw .SafariZoneEntranceText4
|
|
dw .SafariZoneEntranceText5
|
|
dw .SafariZoneEntranceText6
|
|
|
|
.SafariZoneEntranceText1
|
|
text_far _SafariZoneEntranceText1
|
|
text_end
|
|
|
|
.SafariZoneEntranceText4
|
|
text_asm
|
|
callfar Func_f1f77
|
|
jp TextScriptEnd
|
|
|
|
.SafariZoneEntranceText5
|
|
text_far SafariZoneEntranceText_9e814
|
|
text_asm
|
|
call YesNoChoice
|
|
ld a, [wCurrentMenuItem]
|
|
and a
|
|
jr nz, .asm_7539c
|
|
ld hl, .SafariZoneEntranceText_753bb
|
|
call PrintText
|
|
xor a
|
|
ld [wSpritePlayerStateData1FacingDirection], a
|
|
ld a, D_DOWN
|
|
ld c, $3
|
|
call SafariZoneEntranceAutoWalk
|
|
ResetEvents EVENT_SAFARI_GAME_OVER, EVENT_IN_SAFARI_ZONE
|
|
ld a, $0
|
|
ld [wcf0d], a
|
|
jr .asm_753b3
|
|
.asm_7539c
|
|
ld hl, .SafariZoneEntranceText_753c0
|
|
call PrintText
|
|
ld a, SPRITE_FACING_UP
|
|
ld [wSpritePlayerStateData1FacingDirection], a
|
|
ld a, D_UP
|
|
ld c, $1
|
|
call SafariZoneEntranceAutoWalk
|
|
ld a, $5
|
|
ld [wcf0d], a
|
|
.asm_753b3
|
|
ld a, $6
|
|
ld [wSafariZoneGateCurScript], a
|
|
jp TextScriptEnd
|
|
|
|
.SafariZoneEntranceText_753bb
|
|
text_far _SafariZoneEntranceText_753bb
|
|
text_end
|
|
|
|
.SafariZoneEntranceText_753c0
|
|
text_far _SafariZoneEntranceText_753c0
|
|
text_end
|
|
|
|
.SafariZoneEntranceText6
|
|
text_far _SafariZoneEntranceText_753c5
|
|
text_end
|
|
|
|
.SafariZoneEntranceText2
|
|
text_asm
|
|
callfar Func_f203e
|
|
jp TextScriptEnd
|