mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-06 15:45:24 +13:00
Talk to Use Cut. Strength and Surf
This commit is contained in:
parent
141e7c2de8
commit
fe4dc821fd
9 changed files with 220 additions and 24 deletions
171
engine/overworld/field_moves.asm
Normal file
171
engine/overworld/field_moves.asm
Normal file
|
|
@ -0,0 +1,171 @@
|
|||
TryFieldMove:: ; predef
|
||||
call GetPredefRegisters
|
||||
call TrySurf
|
||||
ret z
|
||||
call TryCut
|
||||
ret
|
||||
|
||||
TrySurf:
|
||||
ld a, [wWalkBikeSurfState]
|
||||
cp 2 ; is the player already surfing?
|
||||
jr z, .no
|
||||
callfar IsNextTileShoreOrWater
|
||||
jr c, .no
|
||||
ld hl, TilePairCollisionsWater
|
||||
call CheckForTilePairCollisions2
|
||||
jr c, .no
|
||||
ld d, SURF
|
||||
call HasPartyMove
|
||||
jr nz, .no
|
||||
ld a, [wObtainedBadges]
|
||||
bit 4, a ; SOUL BADGE
|
||||
jr z, .no
|
||||
callfar IsSurfingAllowed
|
||||
ld hl, wd728
|
||||
bit 1, [hl]
|
||||
res 1, [hl]
|
||||
jr z, .no
|
||||
call InitializeFieldMoveTextBox
|
||||
ld hl, PromptToSurfText
|
||||
call PrintText
|
||||
call YesNoChoice
|
||||
ld a, [wCurrentMenuItem]
|
||||
and a
|
||||
jr nz, .no2
|
||||
call GetPartyMonName2
|
||||
ld a, SURFBOARD
|
||||
ld [wcf91], a
|
||||
ld [wPseudoItemID], a
|
||||
call UseItem
|
||||
.yes2
|
||||
call CloseFieldMoveTextBox
|
||||
.yes
|
||||
xor a
|
||||
ret
|
||||
.no2
|
||||
call CloseFieldMoveTextBox
|
||||
.no
|
||||
ld a, 1
|
||||
and a
|
||||
ret
|
||||
|
||||
TryCut:
|
||||
call IsCutTile
|
||||
jr nc, TrySurf.no
|
||||
call InitializeFieldMoveTextBox
|
||||
ld hl, ExplainCutText
|
||||
call PrintText
|
||||
call ManualTextScroll
|
||||
ld d, CUT
|
||||
call HasPartyMove
|
||||
jr nz, TrySurf.no2
|
||||
ld a, [wObtainedBadges]
|
||||
bit 1, a ; CASCADE BADGE
|
||||
jr z, TrySurf.no2
|
||||
ld hl, PromptToCutText
|
||||
call PrintText
|
||||
call YesNoChoice
|
||||
ld a, [wCurrentMenuItem]
|
||||
and a
|
||||
jr nz, TrySurf.no2
|
||||
call GetPartyMonName2
|
||||
callfar Cut2
|
||||
call CloseFieldMoveTextBox
|
||||
jr TrySurf.yes2
|
||||
|
||||
IsCutTile:
|
||||
; partial copy from UsedCut
|
||||
ld a, [wCurMapTileset]
|
||||
and a ; OVERWORLD
|
||||
jr z, .overworld
|
||||
cp GYM
|
||||
jr nz, .no
|
||||
ld a, [wTileInFrontOfPlayer]
|
||||
cp $50 ; gym cut tree
|
||||
jr nz, .no
|
||||
jr .yes
|
||||
.overworld
|
||||
ld a, [wTileInFrontOfPlayer]
|
||||
cp $3d ; cut tree
|
||||
jr nz, .no
|
||||
.yes
|
||||
scf
|
||||
ret
|
||||
.no
|
||||
and a
|
||||
ret
|
||||
|
||||
HasPartyMove::
|
||||
; Return z (optional: in wWhichTrade) if a PartyMon has move d.
|
||||
; Updates wWhichPokemon.
|
||||
push bc
|
||||
push de
|
||||
push hl
|
||||
|
||||
ld a, [wPartyCount]
|
||||
and a
|
||||
jr z, .no
|
||||
ld b, a
|
||||
ld c, 0
|
||||
ld hl, wPartyMons + (wPartyMon1Moves - wPartyMon1)
|
||||
.loop
|
||||
ld e, NUM_MOVES
|
||||
.check_move
|
||||
ld a, [hli]
|
||||
cp d
|
||||
jr z, .yes
|
||||
dec e
|
||||
jr nz, .check_move
|
||||
|
||||
ld a, wPartyMon2 - wPartyMon1 - NUM_MOVES
|
||||
add l
|
||||
ld l, a
|
||||
adc h
|
||||
sub l
|
||||
ld h, a
|
||||
|
||||
inc c
|
||||
ld a, c
|
||||
cp b
|
||||
jr c, .loop
|
||||
jr .no
|
||||
|
||||
.yes
|
||||
ld a, c
|
||||
ld [wWhichPokemon], a
|
||||
xor a ; probably redundant
|
||||
ld [wWhichTrade], a
|
||||
jr .done
|
||||
.no
|
||||
ld a, 1
|
||||
and a
|
||||
ld [wWhichTrade], a
|
||||
.done
|
||||
pop hl
|
||||
pop de
|
||||
pop bc
|
||||
ret
|
||||
|
||||
InitializeFieldMoveTextBox:
|
||||
call EnableAutoTextBoxDrawing
|
||||
ld a, 1 ; not 0
|
||||
ld [hSpriteIndexOrTextID], a
|
||||
callfar DisplayTextIDInit
|
||||
ret
|
||||
|
||||
CloseFieldMoveTextBox:
|
||||
ld a,[hLoadedROMBank]
|
||||
push af
|
||||
jp CloseTextDisplay
|
||||
|
||||
PromptToSurfText:
|
||||
text_far _PromptToSurfText
|
||||
text_end
|
||||
|
||||
ExplainCutText:
|
||||
text_far _ExplainCutText
|
||||
text_end
|
||||
|
||||
PromptToCutText:
|
||||
text_far _PromptToCutText
|
||||
text_end
|
||||
Loading…
Add table
Add a link
Reference in a new issue