123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 |
- SafariZoneEntranceScript:
- call EnableAutoTextBoxDrawing
- ld hl, SafariZoneEntranceScriptPointers
- ld a, [wSafariZoneEntranceCurScript]
- jp CallFunctionInTable
- SafariZoneEntranceScriptPointers:
- 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
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- ld a, $ff
- ld [wJoyIgnore], a
- xor a
- ld [hJoyHeld], a
- ld a, SPRITE_FACING_RIGHT
- ld [wSpriteStateData1 + 9], a
- ld a, [wCoordIndex]
- cp $1
- jr z, .asm_7520f
- ld a, $2
- ld [wSafariZoneEntranceCurScript], a
- ret
- .asm_7520f
- ld a, D_RIGHT
- ld c, $1
- call SafariZoneEntranceAutoWalk
- ld a, $f0
- ld [wJoyIgnore], a
- ld a, $1
- ld [wSafariZoneEntranceCurScript], a
- ret
- .CoordsData_75221:
- db $02,$03
- db $02,$04
- db $FF
- .SafariZoneEntranceScript1
- call SafariZoneEntranceScript_752b4
- ret nz
- .SafariZoneEntranceScript2
- xor a
- ld [hJoyHeld], a
- ld [wJoyIgnore], a
- call UpdateSprites
- ld a, $4
- ld [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 [wSafariZoneEntranceCurScript], 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
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- xor a
- ld [wNumSafariBalls], a
- ld a, D_DOWN
- ld c, $3
- call SafariZoneEntranceAutoWalk
- ld a, $4
- ld [wSafariZoneEntranceCurScript], a
- jr .asm_75286
- .asm_7527f
- ld a, $5
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- .asm_75286
- ret
- .SafariZoneEntranceScript4
- call SafariZoneEntranceScript_752b4
- ret nz
- xor a
- ld [wJoyIgnore], a
- ld a, $0
- ld [wSafariZoneEntranceCurScript], a
- ret
- .SafariZoneEntranceScript6
- call SafariZoneEntranceScript_752b4
- ret nz
- call Delay3
- ld a, [wcf0d]
- ld [wSafariZoneEntranceCurScript], 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
- SafariZoneEntranceTextPointers:
- dw .SafariZoneEntranceText1
- dw .SafariZoneEntranceText2
- dw .SafariZoneEntranceText1
- dw .SafariZoneEntranceText4
- dw .SafariZoneEntranceText5
- dw .SafariZoneEntranceText6
- .SafariZoneEntranceText1
- TX_FAR _SafariZoneEntranceText1
- db "@"
- .SafariZoneEntranceText4
- TX_FAR SafariZoneEntranceText_9e6e4
- TX_ASM
- ld a, MONEY_BOX
- ld [wTextBoxID], a
- call DisplayTextBoxID
- call YesNoChoice
- ld a, [wCurrentMenuItem]
- and a
- jp nz, .PleaseComeAgain
- xor a
- ld [hMoney], a
- ld a, $05
- ld [hMoney + 1], a
- ld a, $00
- ld [hMoney + 2], a
- call HasEnoughMoney
- jr nc, .success
- ld hl, .NotEnoughMoneyText
- call PrintText
- jr .CantPayWalkDown
- .success
- xor a
- ld [wPriceTemp], a
- ld a, $05
- ld [wPriceTemp + 1], a
- ld a, $00
- ld [wPriceTemp + 2], a
- ld hl, wPriceTemp + 2
- ld de, wPlayerMoney + 2
- ld c, 3
- predef SubBCDPredef
- ld a, MONEY_BOX
- ld [wTextBoxID], a
- call DisplayTextBoxID
- ld hl, .MakePaymentText
- call PrintText
- ld a, 30
- ld [wNumSafariBalls], a
- ld a, 502 / $100
- ld [wSafariSteps], a
- ld a, 502 % $100
- ld [wSafariSteps + 1], a
- ld a, D_UP
- ld c, 3
- call SafariZoneEntranceAutoWalk
- SetEvent EVENT_IN_SAFARI_ZONE
- ResetEventReuseHL EVENT_SAFARI_GAME_OVER
- ld a, 3
- ld [wSafariZoneEntranceCurScript], a
- jr .done
- .PleaseComeAgain
- ld hl, .PleaseComeAgainText
- call PrintText
- .CantPayWalkDown
- ld a, D_DOWN
- ld c, 1
- call SafariZoneEntranceAutoWalk
- ld a, 4
- ld [wSafariZoneEntranceCurScript], a
- .done
- jp TextScriptEnd
- .MakePaymentText
- TX_FAR SafariZoneEntranceText_9e747
- TX_SFX_ITEM_1
- TX_FAR _SafariZoneEntranceText_75360
- db "@"
- .PleaseComeAgainText
- TX_FAR _SafariZoneEntranceText_75365
- db "@"
- .NotEnoughMoneyText
- TX_FAR _SafariZoneEntranceText_7536a
- db "@"
- .SafariZoneEntranceText5
- TX_FAR SafariZoneEntranceText_9e814
- TX_ASM
- call YesNoChoice
- ld a, [wCurrentMenuItem]
- and a
- jr nz, .asm_7539c
- ld hl, .SafariZoneEntranceText_753bb
- call PrintText
- xor a
- ld [wSpriteStateData1 + 9], 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 [wSpriteStateData1 + 9], a
- ld a, D_UP
- ld c, $1
- call SafariZoneEntranceAutoWalk
- ld a, $5
- ld [wcf0d], a
- .asm_753b3
- ld a, $6
- ld [wSafariZoneEntranceCurScript], a
- jp TextScriptEnd
- .SafariZoneEntranceText_753bb
- TX_FAR _SafariZoneEntranceText_753bb
- db "@"
- .SafariZoneEntranceText_753c0
- TX_FAR _SafariZoneEntranceText_753c0
- db "@"
- .SafariZoneEntranceText6
- TX_FAR _SafariZoneEntranceText_753c5
- db "@"
- .SafariZoneEntranceText2
- TX_ASM
- ld hl, .FirstTimeQuestionText
- call PrintText
- call YesNoChoice
- ld a, [wCurrentMenuItem]
- and a
- ld hl, .RegularText
- jr nz, .Explanation
- ld hl, .ExplanationText
- .Explanation
- call PrintText
- jp TextScriptEnd
- .FirstTimeQuestionText
- TX_FAR _SafariZoneEntranceText_753e6
- db "@"
- .ExplanationText
- TX_FAR _SafariZoneEntranceText_753eb
- db "@"
- .RegularText
- TX_FAR _SafariZoneEntranceText_753f0
- db "@"
|