summaryrefslogtreecommitdiff
path: root/engine/battle/read_trainer_attributes.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/battle/read_trainer_attributes.asm')
-rw-r--r--engine/battle/read_trainer_attributes.asm66
1 files changed, 66 insertions, 0 deletions
diff --git a/engine/battle/read_trainer_attributes.asm b/engine/battle/read_trainer_attributes.asm
new file mode 100644
index 00000000..3f4d4a98
--- /dev/null
+++ b/engine/battle/read_trainer_attributes.asm
@@ -0,0 +1,66 @@
+GetTrainerClassName:
+ ld hl, wRivalName
+ ld a, c
+ cp RIVAL1
+ jr z, .rival
+
+ ld [wCurSpecies], a
+ ld a, TRAINER_NAME
+ ld [wNamedObjectTypeBuffer], a
+ call GetName
+ ld de, wStringBuffer1
+ ret
+
+.rival
+ ld de, wStringBuffer1
+ push de
+ ld bc, TRAINER_CLASS_NAME_LENGTH
+ call CopyBytes
+ pop de
+ ret
+
+GetOTName:
+ ld hl, wOTPlayerName
+ ld a, [wLinkMode]
+ and a
+ jr nz, .ok
+
+ ld hl, wRivalName
+ ld a, c
+ cp RIVAL1
+ jr z, .ok
+
+ ld [wCurSpecies], a
+ ld a, TRAINER_NAME
+ ld [wNamedObjectTypeBuffer], a
+ call GetName
+ ld hl, wStringBuffer1
+
+.ok
+ ld bc, TRAINER_CLASS_NAME_LENGTH
+ ld de, wOTClassName
+ push de
+ call CopyBytes
+ pop de
+ ret
+
+GetTrainerAttributes:
+ ld a, [wTrainerClass]
+ ld c, a
+ call GetOTName
+ ld a, [wTrainerClass]
+ dec a
+ ld hl, TrainerClassAttributes + TRNATTR_ITEM1
+ ld bc, NUM_TRAINER_ATTRIBUTES
+ call AddNTimes
+ ld de, wEnemyTrainerItem1
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ld a, [hl]
+ ld [wEnemyTrainerBaseReward], a
+ ret
+
+INCLUDE "data/trainers/attributes.asm"