diff options
Diffstat (limited to 'scripts')
| -rw-r--r-- | scripts/safarizoneentrance-yellow.asm | 257 | ||||
| -rwxr-xr-x | scripts/safarizoneentrance.asm | 209 | 
2 files changed, 361 insertions, 105 deletions
| diff --git a/scripts/safarizoneentrance-yellow.asm b/scripts/safarizoneentrance-yellow.asm new file mode 100644 index 00000000..93f91620 --- /dev/null +++ b/scripts/safarizoneentrance-yellow.asm @@ -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 diff --git a/scripts/safarizoneentrance.asm b/scripts/safarizoneentrance.asm index 8ae81f81..e5653ff1 100755 --- a/scripts/safarizoneentrance.asm +++ b/scripts/safarizoneentrance.asm @@ -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 "@" | 
