Add parts of the Safari Zone entrance script from Yellow.

This commit is contained in:
IIMarckus 2014-10-17 22:47:31 -06:00
parent 2e376fecab
commit a36e090d43
4 changed files with 410 additions and 105 deletions

View file

@ -0,0 +1,257 @@
.xf1f77
ld hl,.ForJust500Text
call PrintText
ld a,$13
ld [wd125],a
call DisplayTextBoxID
call YesNoChoice
ld a,[wCurrentMenuItem]
and a
jp nz,.PleaseComeAgain
ld hl,$d346 ; yellow d346
ld a,[hli]
or [hl]
inc hl
or [hl]
jr nz,.xf1f9f
.xf1f98
call .xf20ce
jr c,.CantPayWalkDown
jr .xf1ff2
.xf1f9f
xor a
ld [$ff9f],a
ld a,$05
ld [$ffa0],a
ld a,$00
ld [$ffa1],a
call HasEnoughMoney
jr nc,.success
ld hl,.NotEnoughMoneyText
call PrintText
call .xf2077
jr c,.CantPayWalkDown
jr .xf1ff2
.success
xor a
ld [wSubtrahend],a
ld a,$05
ld [wSubtrahend+1],a
ld a,$00
ld [wSubtrahend+2],a
ld hl,wTrainerFacingDirection
ld de,wPlayerMoney + 2
ld c,3
predef SubBCDPredef
ld a,$b2
call $3736
call $373e
ld a,$13
ld [wd125],a
call DisplayTextBoxID
ld hl,.MakePaymentText
call PrintText
ld a,30
ld hl,(502 / $100) << 8 | (502 % $100)
.xf1ff2
ld [W_NUMSAFARIBALLS],a
ld a,h
ld [wSafariSteps],a
ld a,l
ld [wSafariSteps + 1],a
ld a,$40
ld c,3
call SafariZoneEntranceAutoWalk
ld hl,wd790
set 7,[hl]
res 6,[hl]
ld a,3
ld [W_SAFARIZONEENTRANCECURSCRIPT],a
jr .done
.PleaseComeAgain
ld hl,.PleaseComeAgainText
call PrintText
.CantPayWalkDown
ld a,$80
ld c,1
call SafariZoneEntranceAutoWalk
ld a,4
ld [W_SAFARIZONEENTRANCECURSCRIPT],a
.done
ret
.ForJust500Text
TX_FAR SafariZoneEntranceText_9e6e4
db "@"
.MakePaymentText
TX_FAR SafariZoneEntranceText_9e747
db $b
TX_FAR _SafariZoneEntranceText_75360
db "@"
.PleaseComeAgainText
TX_FAR _SafariZoneEntranceText_75365
db "@"
.NotEnoughMoneyText
TX_FAR _SafariZoneEntranceText_7536a
db "@"
.SafariZoneEntranceText2
ld hl,.FirstTimeQuestionText
call PrintText
call YesNoChoice
ld a,[wCurrentMenuItem]
and a
ld hl,.RegularText
jr nz,.Explanation
ld hl,.ExplanationText
.Explanation
call PrintText
ret
.FirstTimeQuestionText
TX_FAR _SafariZoneEntranceText_753e6
db "@"
.ExplanationText
TX_FAR _SafariZoneEntranceText_753eb
db "@"
.RegularText
TX_FAR _SafariZoneEntranceText_753f0
db "@"
SafariZoneEntranceAutoWalk:
push af
ld b,0
ld a,c
ld [wSimulatedJoypadStatesIndex],a
ld hl,wSimulatedJoypadStatesEnd
pop af
call FillMemory
jp StartSimulatingJoypadStates
.xf2077
ld hl,$d346
ld de,$ff9f
ld bc,3
call $1b
xor a
ld [$ffa2],a
ld [$ffa3],a
ld a,$17
ld [$ffa4],a
ld a,$d
call $3eb4
ld a,[$ffa4]
call .xf211e
pop af
ld hl,$d346
xor a
ld bc,3
call $166e
ld hl,.OhAllRightText
call $3c46
ld a,$13
ld a,[$d124]
call $3010
ld hl,.CantGive30BallsText
call PrintText
pop af
inc a
jr z,.xf20bd
cp $1d
jr c,.xf20bf
.xf20bd
ld a,$1d
.xf20bf
ld hl,$1f6
and a
ret
.OhAllRightText
TX_FAR _SafariZoneLowCostText1
db "@"
.CantGive30BallsText
TX_FAR _SafariZoneLowCostText2
db "@"
.xf20ce
ld hl,$d70c
ld a,[hl]
push af
inc [hl]
ld e,a
ld d,0
ld hl,.lowcosttextpointers
add hl,de
add hl,de
ld a,[hli]
ld h,[hl]
ld l,a
call PrintText
pop af
cp 3
jr z,.next
scf
ret
.next
ld hl,.xf20f6
call $3c46
ld a,1
ld hl,$01f6
and a
ret
.xf20f6
TX_FAR _SafariZoneLowCostText3
db $b
TX_FAR _SafariZoneLowCostText4
db "@"
.lowcosttextpointers
dw .xf210a
dw .xf210f
dw .xf2114
dw .xf2119
dw .xf2119
.xf210a
TX_FAR _SafariZoneLowCostText5
db "@"
.xf210f
TX_FAR _SafariZoneLowCostText6
db "@"
.xf2114
TX_FAR _SafariZoneLowCostText7
db "@"
.xf2119
TX_FAR _SafariZoneLowCostText8
db "@"
.xf211e
push hl
ld c,a
and $f
ld l,a
ld h,0
ld a,c
and $f0
swap a
ld bc,$a
call $3a74
ld a,l
pop hl
ret
.xf2133

View file

@ -5,16 +5,16 @@ SafariZoneEntranceScript: ; 751cd (1d:51cd)
jp CallFunctionInTable
SafariZoneEntranceScriptPointers: ; 751d9 (1d:51d9)
dw SafariZoneEntranceScript0
dw SafariZoneEntranceScript1
dw SafariZoneEntranceScript2
dw SafariZoneEntranceScript3
dw SafariZoneEntranceScript4
dw SafariZoneEntranceScript5
dw SafariZoneEntranceScript6
dw .SafariZoneEntranceScript0
dw .SafariZoneEntranceScript1
dw .SafariZoneEntranceScript2
dw .SafariZoneEntranceScript3
dw .SafariZoneEntranceScript4
dw .SafariZoneEntranceScript5
dw .SafariZoneEntranceScript6
SafariZoneEntranceScript0: ; 751e7 (1d:51e7)
ld hl, CoordsData_75221
.SafariZoneEntranceScript0
ld hl, .CoordsData_75221
call ArePlayerCoordsInArray
ret nc
ld a, $3
@ -35,22 +35,22 @@ SafariZoneEntranceScript0: ; 751e7 (1d:51e7)
.asm_7520f
ld a, $10
ld c, $1
call SafariZoneEntranceScript_752a3
call SafariZoneEntranceAutoWalk
ld a, $f0
ld [wJoyIgnore], a
ld a, $1
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
ret
CoordsData_75221: ; 75221 (1d:5221)
.CoordsData_75221: ; 75221 (1d:5221)
db $02,$03
db $02,$04
db $FF
SafariZoneEntranceScript1: ; 75226 (1d:5226)
.SafariZoneEntranceScript1
call SafariZoneEntranceScript_752b4
ret nz
SafariZoneEntranceScript2: ; 7522a (1d:522a)
.SafariZoneEntranceScript2
xor a
ld [hJoyHeld], a
ld [wJoyIgnore], a
@ -62,7 +62,7 @@ SafariZoneEntranceScript2: ; 7522a (1d:522a)
ld [wJoyIgnore], a
ret
SafariZoneEntranceScript3: ; 75240 (1d:5240)
.SafariZoneEntranceScript3
call SafariZoneEntranceScript_752b4
ret nz
xor a
@ -71,7 +71,7 @@ SafariZoneEntranceScript3: ; 75240 (1d:5240)
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
ret
SafariZoneEntranceScript5: ; 7524e (1d:524e)
.SafariZoneEntranceScript5
ld a, $4
ld [wd528], a
ld hl, wd790
@ -89,7 +89,7 @@ SafariZoneEntranceScript5: ; 7524e (1d:524e)
ld [W_NUMSAFARIBALLS], a
ld a, $80
ld c, $3
call SafariZoneEntranceScript_752a3
call SafariZoneEntranceAutoWalk
ld a, $4
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
jr .asm_75286 ; 0x7527d $7
@ -100,7 +100,7 @@ SafariZoneEntranceScript5: ; 7524e (1d:524e)
.asm_75286
ret
SafariZoneEntranceScript4: ; 75287 (1d:5287)
.SafariZoneEntranceScript4
call SafariZoneEntranceScript_752b4
ret nz
xor a
@ -109,7 +109,7 @@ SafariZoneEntranceScript4: ; 75287 (1d:5287)
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
ret
SafariZoneEntranceScript6: ; 75295 (1d:5295)
.SafariZoneEntranceScript6
call SafariZoneEntranceScript_752b4
ret nz
call Delay3
@ -117,128 +117,127 @@ SafariZoneEntranceScript6: ; 75295 (1d:5295)
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
ret
SafariZoneEntranceScript_752a3: ; 752a3 (1d:52a3)
SafariZoneEntranceAutoWalk:
push af
ld b, $0
ld a, c
ld [wSimulatedJoypadStatesIndex], a
ld hl, wSimulatedJoypadStatesEnd
ld b,0
ld a,c
ld [wSimulatedJoypadStatesIndex],a
ld hl,wSimulatedJoypadStatesEnd
pop af
call FillMemory
jp StartSimulatingJoypadStates
SafariZoneEntranceScript_752b4: ; 752b4 (1d:52b4)
SafariZoneEntranceScript_752b4:
ld a, [wSimulatedJoypadStatesIndex]
and a
ret
SafariZoneEntranceTextPointers: ; 752b9 (1d:52b9)
dw SafariZoneEntranceText1
dw SafariZoneEntranceText2
dw SafariZoneEntranceText3
dw SafariZoneEntranceText4
dw SafariZoneEntranceText5
dw SafariZoneEntranceText6
dw .SafariZoneEntranceText1
dw .SafariZoneEntranceText2
dw .SafariZoneEntranceText1
dw .SafariZoneEntranceText4
dw .SafariZoneEntranceText5
dw .SafariZoneEntranceText6
SafariZoneEntranceText3: ; 752c5 (1d:52c5)
SafariZoneEntranceText1: ; 752c5 (1d:52c5)
.SafariZoneEntranceText1
TX_FAR _SafariZoneEntranceText1
db "@"
SafariZoneEntranceText4: ; 752ca (1d:52ca)
.SafariZoneEntranceText4
TX_FAR SafariZoneEntranceText_9e6e4 ; 0x9e6e4
db $8
ld a, $13
ld [wd125], a
ld [wd125],a
call DisplayTextBoxID
call YesNoChoice
ld a, [wCurrentMenuItem]
ld a,[wCurrentMenuItem]
and a
jp nz, .asm_75346
jp nz,.PleaseComeAgain
xor a
ld [$ff9f], a
ld a, $5
ld [$ffa0], a
ld a, $0
ld [$ffa1], a
ld [$ff9f],a
ld a,$05
ld [$ffa0],a
ld a,$00
ld [$ffa1],a
call HasEnoughMoney
jr nc, .asm_752f9 ; 0x752ef $8
ld hl, SafariZoneEntranceText_7536a
jr nc,.success
ld hl,.NotEnoughMoneyText
call PrintText
jr .asm_7534c ; 0x752f7 $53
.asm_752f9
jr .CantPayWalkDown
.success
xor a
ld [wWhichTrade], a
ld a, $5
ld [wTrainerEngageDistance], a
ld a, $0
ld [wTrainerFacingDirection], a
ld hl, wTrainerFacingDirection
ld de, wPlayerMoney + 2
ld c, $3
ld [wSubtrahend],a
ld a,$05
ld [wSubtrahend+1],a
ld a,$00
ld [wSubtrahend+2],a
ld hl,wTrainerFacingDirection
ld de,wPlayerMoney + 2
ld c,3
predef SubBCDPredef
ld a, $13
ld [wd125], a
ld a,$13
ld [wd125],a
call DisplayTextBoxID
ld hl, SafariZoneEntranceText_7535b
ld hl,.MakePaymentText
call PrintText
ld a, $1e
ld [W_NUMSAFARIBALLS], a
ld a, 502 / $100
ld [wSafariSteps], a
ld a,30
ld [W_NUMSAFARIBALLS],a
ld a,502 / $100
ld [wSafariSteps],a
ld a, 502 % $100
ld [wSafariSteps + 1], a
ld a, $40
ld c, $3
call SafariZoneEntranceScript_752a3
ld hl, wd790
set 7, [hl]
res 6, [hl]
ld a, $3
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
jr .asm_75358 ; 0x75344 $12
.asm_75346
ld hl, SafariZoneEntranceText_75365
ld [wSafariSteps + 1],a
ld a,$40
ld c,3
call SafariZoneEntranceAutoWalk
ld hl,wd790
set 7,[hl]
res 6,[hl]
ld a,3
ld [W_SAFARIZONEENTRANCECURSCRIPT],a
jr .done
.PleaseComeAgain
ld hl,.PleaseComeAgainText
call PrintText
.asm_7534c
ld a, $80
ld c, $1
call SafariZoneEntranceScript_752a3
ld a, $4
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
.asm_75358
.CantPayWalkDown
ld a,$80
ld c,1
call SafariZoneEntranceAutoWalk
ld a,4
ld [W_SAFARIZONEENTRANCECURSCRIPT],a
.done
jp TextScriptEnd
SafariZoneEntranceText_7535b: ; 7535b (1d:535b)
TX_FAR SafariZoneEntranceText_9e747 ; 0x9e747
db $0B
SafariZoneEntranceText_75360: ; 75360 (1d:5360)
.MakePaymentText
TX_FAR SafariZoneEntranceText_9e747
db $b
TX_FAR _SafariZoneEntranceText_75360
db "@"
SafariZoneEntranceText_75365: ; 75365 (1d:5365)
.PleaseComeAgainText
TX_FAR _SafariZoneEntranceText_75365
db "@"
SafariZoneEntranceText_7536a: ; 7536a (1d:536a)
.NotEnoughMoneyText
TX_FAR _SafariZoneEntranceText_7536a
db "@"
SafariZoneEntranceText5: ; 7536f (1d:536f)
.SafariZoneEntranceText5
TX_FAR SafariZoneEntranceText_9e814 ; 0x9e814
db $8
call YesNoChoice
ld a, [wCurrentMenuItem]
ld a,[wCurrentMenuItem]
and a
jr nz, .asm_7539c ; 0x7537b $1f
ld hl, SafariZoneEntranceText_753bb
ld hl, .SafariZoneEntranceText_753bb
call PrintText
xor a
ld [wSpriteStateData1 + 9], a
ld a, $80
ld c, $3
call SafariZoneEntranceScript_752a3
call SafariZoneEntranceAutoWalk
ld hl, wd790
res 6, [hl]
res 7, [hl]
@ -246,13 +245,13 @@ SafariZoneEntranceText5: ; 7536f (1d:536f)
ld [wcf0d], a
jr .asm_753b3 ; 0x7539a $17
.asm_7539c
ld hl, SafariZoneEntranceText_753c0
ld hl, .SafariZoneEntranceText_753c0
call PrintText
ld a, $4
ld [wSpriteStateData1 + 9], a
ld a, $40
ld c, $1
call SafariZoneEntranceScript_752a3
call SafariZoneEntranceAutoWalk
ld a, $5
ld [wcf0d], a
.asm_753b3
@ -260,40 +259,40 @@ SafariZoneEntranceText5: ; 7536f (1d:536f)
ld [W_SAFARIZONEENTRANCECURSCRIPT], a
jp TextScriptEnd
SafariZoneEntranceText_753bb: ; 753bb (1d:53bb)
.SafariZoneEntranceText_753bb
TX_FAR _SafariZoneEntranceText_753bb
db "@"
SafariZoneEntranceText_753c0: ; 753c0 (1d:53c0)
.SafariZoneEntranceText_753c0
TX_FAR _SafariZoneEntranceText_753c0
db "@"
SafariZoneEntranceText6: ; 753c5 (1d:53c5)
.SafariZoneEntranceText6
TX_FAR _SafariZoneEntranceText_753c5
db "@"
SafariZoneEntranceText2: ; 753ca (1d:53ca)
.SafariZoneEntranceText2
db $08 ; asm
ld hl, SafariZoneEntranceText_753e6
ld hl,.FirstTimeQuestionText
call PrintText
call YesNoChoice
ld a, [wCurrentMenuItem]
ld a,[wCurrentMenuItem]
and a
ld hl, SafariZoneEntranceText_753f0
jr nz, .asm_278a6 ; 0x753db
ld hl, SafariZoneEntranceText_753eb
.asm_278a6 ; 0x753e0
ld hl,.RegularText
jr nz,.Explanation
ld hl,.ExplanationText
.Explanation
call PrintText
jp TextScriptEnd
SafariZoneEntranceText_753e6: ; 753e6 (1d:53e6)
.FirstTimeQuestionText
TX_FAR _SafariZoneEntranceText_753e6
db "@"
SafariZoneEntranceText_753eb: ; 753eb (1d:53eb)
.ExplanationText
TX_FAR _SafariZoneEntranceText_753eb
db "@"
SafariZoneEntranceText_753f0: ; 753f0 (1d:53f0)
.RegularText
TX_FAR _SafariZoneEntranceText_753f0
db "@"

View file

@ -92,3 +92,49 @@ _SafariZoneEntranceText_753f0:: ; 9e993 (27:6993)
line "regular here!"
done
IF DEF(_OPTION_LOWCOST_SAFARI)
_SafariZoneLowCostText1::
db 0
para "Oh, all right, pay"
line "me what you have."
prompt
_SafariZoneLowCostText2::
text "But, I can't give"
line "you all 30 BALLs."
done
_SafariZoneLowCostText3::
db 0
para "You're persistent,"
line "aren't you?"
para "OK, you can go in"
line "for free, but"
cont "just this once!@@"
_SafariZoneLowCostText4::
db 0
done
_SafariZoneLowCostText5::
text "I'm sorry, but you"
line "have to pay to"
cont "enter."
done
_SafariZoneLowCostText6::
text "You can't enter"
line "without paying!"
done
_SafariZoneLowCostText7::
text "I said, no money,"
line "no entry!"
done
_SafariZoneLowCostText8::
text "Read my lips, NO!"
line "Get it?"
done
ENDC

View file

@ -510,6 +510,9 @@ wPlayerSpinWhileMovingUpOrDownAnimDeltaY:: ; cd3d
wHiddenObjectFunctionArgument:: ; cd3d
wSubtrahend:: ; cd3d
; subtract (BCD) wSubtrahend, wSubtrahend+1, wSubtrahend+2
wWhichTrade:: ; cd3d
; which entry from TradeMons to select