pokecrystal-board/engine/events/battle_tower/trainer_text.asm
mid-kid 940256569b text_jump → text_far
The previous name for this was rather misleading. It isn't an actual
jump like you'd expect the `jp` instruction to behave as. Instead, it
behaves more like a `farcall`.
This also makes it consistent with its current command ID name of
`TX_FAR`.
2018-11-05 22:26:18 +01:00

712 lines
9.4 KiB
NASM

BattleTowerText::
; Print text c for trainer [wBT_OTTrainerClass]
; 1: Intro text
; 2: Player lost
; 3: Player won
ldh a, [rSVBK]
push af
ld a, BANK(wBT_OTTrainerClass)
ldh [rSVBK], a
if DEF(_CRYSTAL11)
ld hl, wBT_OTTrainerClass
else
; BUG ALERT
; Instead of loading the Trainer Class, this routine
; loads the 6th character in the Trainer's name, then
; uses it to get the gender of the trainer.
; As a consequence, the enemy trainer's dialog will
; always be sampled from the female array.
ld hl, wBT_OTName + NAME_LENGTH_JAPANESE - 1
endc
ld a, [hl]
dec a
ld e, a
ld d, 0
ld hl, BTTrainerClassGenders
add hl, de
ld a, [hl]
and a
jr nz, .female
; generate a random number between 0 and 24
ldh a, [hRandomAdd]
and $1f
cp 25
jr c, .okay0
sub 25
.okay0
ld hl, BTMaleTrainerTexts
jr .proceed
.female
; generate a random number between 0 and 14
ldh a, [hRandomAdd]
and $f
cp 15
jr c, .okay1
sub 15
.okay1
ld hl, BTFemaleTrainerTexts
.proceed
ld b, 0
dec c
jr nz, .restore
ld [wBT_TrainerTextIndex], a
jr .okay2
.restore
ld a, [wBT_TrainerTextIndex]
.okay2
push af
add hl, bc
add hl, bc
ld a, [hli]
ld c, a
ld a, [hl]
ld h, a
ld l, c
pop af
ld c, a
ld b, 0
add hl, bc
add hl, bc
ld a, [hli]
ld c, a
ld a, [hl]
ld l, c
ld h, a
bccoord 1, 14
pop af
ldh [rSVBK], a
call PlaceHLTextAtBC
ret
INCLUDE "mobile/fixed_words.asm"
INCLUDE "data/trainers/genders.asm"
BTMaleTrainerTexts:
dw .Greetings
dw .PlayerLost
dw .PlayerWon
.Greetings:
dw BTGreetingM1
dw BTGreetingM2
dw BTGreetingM3
dw BTGreetingM4
dw BTGreetingM5
dw BTGreetingM6
dw BTGreetingM7
dw BTGreetingM8
dw BTGreetingM9
dw BTGreetingM10
dw BTGreetingM11
dw BTGreetingM12
dw BTGreetingM13
dw BTGreetingM14
dw BTGreetingM15
dw BTGreetingM16
dw BTGreetingM17
dw BTGreetingM18
dw BTGreetingM19
dw BTGreetingM20
dw BTGreetingM21
dw BTGreetingM22
dw BTGreetingM23
dw BTGreetingM24
dw BTGreetingM25
.PlayerLost:
dw BTLossM1
dw BTLossM2
dw BTLossM3
dw BTLossM4
dw BTLossM5
dw BTLossM6
dw BTLossM7
dw BTLossM8
dw BTLossM9
dw BTLossM10
dw BTLossM11
dw BTLossM12
dw BTLossM13
dw BTLossM14
dw BTLossM15
dw BTLossM16
dw BTLossM17
dw BTLossM18
dw BTLossM19
dw BTLossM20
dw BTLossM21
dw BTLossM22
dw BTLossM23
dw BTLossM24
dw BTLossM25
.PlayerWon:
dw BTWinM1
dw BTWinM2
dw BTWinM3
dw BTWinM4
dw BTWinM5
dw BTWinM6
dw BTWinM7
dw BTWinM8
dw BTWinM9
dw BTWinM10
dw BTWinM11
dw BTWinM12
dw BTWinM13
dw BTWinM14
dw BTWinM15
dw BTWinM16
dw BTWinM17
dw BTWinM18
dw BTWinM19
dw BTWinM20
dw BTWinM21
dw BTWinM22
dw BTWinM23
dw BTWinM24
dw BTWinM25
BTFemaleTrainerTexts:
dw .Greetings
dw .PlayerLost
dw .PlayerWon
.Greetings:
dw BTGreetingF1
dw BTGreetingF2
dw BTGreetingF3
dw BTGreetingF4
dw BTGreetingF5
dw BTGreetingF6
dw BTGreetingF7
dw BTGreetingF8
dw BTGreetingF9
dw BTGreetingF10
dw BTGreetingF11
dw BTGreetingF12
dw BTGreetingF13
dw BTGreetingF14
dw BTGreetingF15
.PlayerLost:
dw BTLossF1
dw BTLossF2
dw BTLossF3
dw BTLossF4
dw BTLossF5
dw BTLossF6
dw BTLossF7
dw BTLossF8
dw BTLossF9
dw BTLossF10
dw BTLossF11
dw BTLossF12
dw BTLossF13
dw BTLossF14
dw BTLossF15
.PlayerWon:
dw BTWinF1
dw BTWinF2
dw BTWinF3
dw BTWinF4
dw BTWinF5
dw BTWinF6
dw BTWinF7
dw BTWinF8
dw BTWinF9
dw BTWinF10
dw BTWinF11
dw BTWinF12
dw BTWinF13
dw BTWinF14
dw BTWinF15
BTGreetingM1:
text_far BattleTowerText_0x1ec000
db "@"
BTLossM1:
text_far BattleTowerText_0x1ec03b
db "@"
BTWinM1:
text_far UnknownText_0x1ec060
db "@"
BTGreetingM2:
text_far BattleTowerText_0x1ec080
db "@"
BTLossM2:
text_far UnknownText_0x1ec0a3
db "@"
BTWinM2:
text_far UnknownText_0x1ec0c4
db "@"
BTGreetingM3:
text_far UnknownText_0x1ec0e1
db "@"
BTLossM3:
text_far UnknownText_0x1ec108
db "@"
BTWinM3:
text_far UnknownText_0x1ec12a
db "@"
BTGreetingM4:
text_far UnknownText_0x1ec14d
db "@"
BTLossM4:
text_far UnknownText_0x1ec16f
db "@"
BTWinM4:
text_far UnknownText_0x1ec190
db "@"
BTGreetingM5:
text_far UnknownText_0x1ec1ae
db "@"
BTLossM5:
text_far UnknownText_0x1ec1d0
db "@"
BTWinM5:
text_far UnknownText_0x1ec1f4
db "@"
BTGreetingM6:
text_far UnknownText_0x1ec216
db "@"
BTLossM6:
text_far UnknownText_0x1ec238
db "@"
BTWinM6:
text_far UnknownText_0x1ec259
db "@"
BTGreetingM7:
text_far UnknownText_0x1ec27b
db "@"
BTLossM7:
text_far UnknownText_0x1ec2a0
db "@"
BTWinM7:
text_far UnknownText_0x1ec2c0
db "@"
BTGreetingM8:
text_far UnknownText_0x1ec2d9
db "@"
BTLossM8:
text_far UnknownText_0x1ec2fe
db "@"
BTWinM8:
text_far UnknownText_0x1ec320
db "@"
BTGreetingM9:
text_far UnknownText_0x1ec33f
db "@"
BTLossM9:
text_far UnknownText_0x1ec36c
db "@"
BTWinM9:
text_far UnknownText_0x1ec389
db "@"
BTGreetingM10:
text_far UnknownText_0x1ec3ad
db "@"
BTLossM10:
text_far UnknownText_0x1ec3c5
db "@"
BTWinM10:
text_far UnknownText_0x1ec3e5
db "@"
BTGreetingM11:
text_far UnknownText_0x1ec402
db "@"
BTLossM11:
text_far UnknownText_0x1ec411
db "@"
BTWinM11:
text_far UnknownText_0x1ec41f
db "@"
BTGreetingM12:
text_far UnknownText_0x1ec42e
db "@"
BTLossM12:
text_far UnknownText_0x1ec461
db "@"
BTWinM12:
text_far UnknownText_0x1ec4a0
db "@"
BTGreetingM13:
text_far UnknownText_0x1ec4d6
db "@"
BTLossM13:
text_far UnknownText_0x1ec4f5
db "@"
BTWinM13:
text_far UnknownText_0x1ec512
db "@"
BTGreetingM14:
text_far UnknownText_0x1ec532
db "@"
BTLossM14:
text_far UnknownText_0x1ec54b
db "@"
BTWinM14:
text_far UnknownText_0x1ec565
db "@"
BTGreetingM15:
text_far UnknownText_0x1ec580
db "@"
BTLossM15:
text_far UnknownText_0x1ec59d
db "@"
BTWinM15:
text_far UnknownText_0x1ec5b5
db "@"
BTGreetingM16:
text_far UnknownText_0x1ec5d3
db "@"
BTLossM16:
text_far UnknownText_0x1ec5ee
db "@"
BTWinM16:
text_far UnknownText_0x1ec60d
db "@"
BTGreetingM17:
text_far UnknownText_0x1ec631
db "@"
BTLossM17:
text_far UnknownText_0x1ec651
db "@"
BTWinM17:
text_far UnknownText_0x1ec68f
db "@"
BTGreetingM18:
text_far UnknownText_0x1ec6b1
db "@"
BTLossM18:
text_far UnknownText_0x1ec6d0
db "@"
BTWinM18:
text_far UnknownText_0x1ec708
db "@"
BTGreetingM19:
text_far UnknownText_0x1ec720
db "@"
BTLossM19:
text_far UnknownText_0x1ec73e
db "@"
BTWinM19:
text_far UnknownText_0x1ec75b
db "@"
BTGreetingM20:
text_far UnknownText_0x1ec77f
db "@"
BTLossM20:
text_far UnknownText_0x1ec798
db "@"
BTWinM20:
text_far UnknownText_0x1ec7bb
db "@"
BTGreetingM21:
text_far UnknownText_0x1ec7d8
db "@"
BTLossM21:
text_far UnknownText_0x1ec818
db "@"
BTWinM21:
text_far UnknownText_0x1ec837
db "@"
BTGreetingM22:
text_far UnknownText_0x1ec858
db "@"
BTLossM22:
text_far UnknownText_0x1ec876
db "@"
BTWinM22:
text_far UnknownText_0x1ec898
db "@"
BTGreetingM23:
text_far UnknownText_0x1ec8b1
db "@"
BTLossM23:
text_far UnknownText_0x1ec8d5
db "@"
BTWinM23:
text_far UnknownText_0x1ec8f0
db "@"
BTGreetingM24:
text_far UnknownText_0x1ec911
db "@"
BTLossM24:
text_far UnknownText_0x1ec928
db "@"
BTWinM24:
text_far UnknownText_0x1ec949
db "@"
BTGreetingM25:
text_far UnknownText_0x1ec969
db "@"
BTLossM25:
text_far UnknownText_0x1ec986
db "@"
BTWinM25:
text_far UnknownText_0x1ec99b
db "@"
BTGreetingF1:
text_far UnknownText_0x1ec9bd
db "@"
BTLossF1:
text_far UnknownText_0x1ec9d9
db "@"
BTWinF1:
text_far UnknownText_0x1ec9f7
db "@"
BTGreetingF2:
text_far UnknownText_0x1eca0a
db "@"
BTLossF2:
text_far UnknownText_0x1eca2a
db "@"
BTWinF2:
text_far UnknownText_0x1eca47
db "@"
BTGreetingF3:
text_far UnknownText_0x1eca64
db "@"
BTLossF3:
text_far UnknownText_0x1eca82
db "@"
BTWinF3:
text_far UnknownText_0x1eca9d
db "@"
BTGreetingF4:
text_far UnknownText_0x1ecabf
db "@"
BTLossF4:
text_far UnknownText_0x1ecade
db "@"
BTWinF4:
text_far UnknownText_0x1ecafa
db "@"
BTGreetingF5:
text_far UnknownText_0x1ecb19
db "@"
BTLossF5:
text_far UnknownText_0x1ecb37
db "@"
BTWinF5:
text_far UnknownText_0x1ecb55
db "@"
BTGreetingF6:
text_far UnknownText_0x1ecb70
db "@"
BTLossF6:
text_far UnknownText_0x1ecb92
db "@"
BTWinF6:
text_far UnknownText_0x1ecbb6
db "@"
BTGreetingF7:
text_far UnknownText_0x1ecbd9
db "@"
BTLossF7:
text_far UnknownText_0x1ecbf3
db "@"
BTWinF7:
text_far UnknownText_0x1ecc15
db "@"
BTGreetingF8:
text_far UnknownText_0x1ecc39
db "@"
BTLossF8:
text_far UnknownText_0x1ecc55
db "@"
BTWinF8:
text_far UnknownText_0x1ecc75
db "@"
BTGreetingF9:
text_far UnknownText_0x1ecc92
db "@"
BTLossF9:
text_far UnknownText_0x1ecca7
db "@"
BTWinF9:
text_far UnknownText_0x1eccc1
db "@"
BTGreetingF10:
text_far UnknownText_0x1eccd7
db "@"
BTLossF10:
text_far UnknownText_0x1eccef
db "@"
BTWinF10:
text_far UnknownText_0x1ecd0e
db "@"
BTGreetingF11:
text_far UnknownText_0x1ecd2b
db "@"
BTLossF11:
text_far UnknownText_0x1ecd4d
db "@"
BTWinF11:
text_far UnknownText_0x1ecd6b
db "@"
BTGreetingF12:
text_far UnknownText_0x1ecd8d
db "@"
BTLossF12:
text_far UnknownText_0x1ecdaf
db "@"
BTWinF12:
text_far UnknownText_0x1ecdcf
db "@"
BTGreetingF13:
text_far UnknownText_0x1ecded
db "@"
BTLossF13:
text_far UnknownText_0x1ece0d
db "@"
BTWinF13:
text_far UnknownText_0x1ece2a
db "@"
BTGreetingF14:
text_far UnknownText_0x1ece4b
db "@"
BTLossF14:
text_far UnknownText_0x1ece70
db "@"
BTWinF14:
text_far UnknownText_0x1ece8a
db "@"
BTGreetingF15:
text_far UnknownText_0x1ecea8
db "@"
BTLossF15:
text_far UnknownText_0x1ecec9
db "@"
BTWinF15:
text_far UnknownText_0x1ecee8
db "@"