DisplayUsedMoveText:
ld hl, UsedMoveText
jp PrintText
UsedMoveText:
text_far _ActorNameText
text_asm
ldh a, [hWhoseTurn]
and a
ld a, [wPlayerMoveNum]
ld hl, wPlayerUsedMove
jr z, .playerTurn
ld a, [wEnemyMoveNum]
ld hl, wEnemyUsedMove
.playerTurn
ld [hl], a
ld [wMoveGrammar], a
call GetMoveGrammar
ld a, [wMonIsDisobedient]
and a
ld hl, UsedMove2Text
ret nz
; check move grammar
ld a, [wMoveGrammar]
cp $3
ld hl, UsedMove2Text
ret c
ld hl, UsedMove1Text
ret
UsedMove1Text:
text_far _UsedMove1Text
text_asm
jr UsedMoveText_CheckObedience
UsedMove2Text:
text_far _UsedMove2Text
text_asm
; fall through
UsedMoveText_CheckObedience:
; check obedience
ld a, [wMonIsDisobedient]
and a
jr z, .GetMoveNameText
; print "instead,"
ld hl, .UsedInsteadText
ret
.UsedInsteadText:
text_far _UsedInsteadText
text_asm
; fall through
.GetMoveNameText:
ld hl, MoveNameText
ret
MoveNameText:
text_far _MoveNameText
text_asm
ld hl, .endusedmovetexts
ld a, [wMoveGrammar]
add a
push bc
ld b, $0
ld c, a
add hl, bc
pop bc
ld a, [hli]
ld h, [hl]
ld l, a
ret
.endusedmovetexts:
; entries correspond to MoveGrammar sets
dw EndUsedMove1Text
dw EndUsedMove2Text
dw EndUsedMove3Text
dw EndUsedMove4Text
dw EndUsedMove5Text
EndUsedMove1Text:
text_far _EndUsedMove1Text
text_end
EndUsedMove2Text:
text_far _EndUsedMove2Text
text_end
EndUsedMove3Text:
text_far _EndUsedMove3Text
text_end
EndUsedMove4Text:
text_far _EndUsedMove4Text
text_end
EndUsedMove5Text:
text_far _EndUsedMove5Text
text_end
; This function is redundant in the English localization.
; In Japanese, it selects one of 5 distinct sentence structures.
; In English, all of these sentences have the exact same structure,
; so this serves no purpose.
GetMoveGrammar:
push bc
ld a, [wMoveGrammar] ; move ID
ld c, a
ld b, $0
ld hl, MoveGrammar
.loop
ld a, [hli]
; end of table?
cp -1
jr z, .end
; match?
cp c
jr z, .end
; advance grammar type at 0
and a
jr nz, .loop
; next grammar type
inc b
jr .loop
.end
; wMoveGrammar now contains move grammar
ld a, b
ld [wMoveGrammar], a
pop bc
ret
INCLUDE "data/moves/grammar.asm"