diff options
Diffstat (limited to 'engine/battle/read_trainer_attributes.asm')
-rw-r--r-- | engine/battle/read_trainer_attributes.asm | 66 |
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" |