summaryrefslogtreecommitdiff
path: root/trainers
diff options
context:
space:
mode:
Diffstat (limited to 'trainers')
-rw-r--r--trainers/attributes.asm1
-rw-r--r--trainers/dvs.asm1
-rw-r--r--trainers/encounter_music.asm75
-rw-r--r--trainers/gendered_trainers.asm40
-rw-r--r--trainers/read_attributes.asm64
5 files changed, 181 insertions, 0 deletions
diff --git a/trainers/attributes.asm b/trainers/attributes.asm
index c8cdcc100..224e460c9 100644
--- a/trainers/attributes.asm
+++ b/trainers/attributes.asm
@@ -1,4 +1,5 @@
TrainerClassAttributes: ; 3959c
+; entries correspond to trainer classes (see constants/trainer_constants.asm)
; Falkner
db 0, 0 ; items
diff --git a/trainers/dvs.asm b/trainers/dvs.asm
index 2975d60fe..503c468d3 100644
--- a/trainers/dvs.asm
+++ b/trainers/dvs.asm
@@ -20,6 +20,7 @@ GetTrainerDVs: ; 270c4
; 270d6
TrainerClassDVs: ; 270d6
+; entries correspond to trainer classes (see constants/trainer_constants.asm)
; Atk Spd
; Def Spc
db $9A, $77 ; falkner
diff --git a/trainers/encounter_music.asm b/trainers/encounter_music.asm
new file mode 100644
index 000000000..cd0348d81
--- /dev/null
+++ b/trainers/encounter_music.asm
@@ -0,0 +1,75 @@
+; What music plays when a trainer notices you
+
+TrainerEncounterMusic::
+; entries correspond to trainer classes (see constants/trainer_constants.asm)
+ db MUSIC_HIKER_ENCOUNTER ; none
+ db MUSIC_YOUNGSTER_ENCOUNTER ; falkner
+ db MUSIC_LASS_ENCOUNTER ; whitney
+ db MUSIC_YOUNGSTER_ENCOUNTER ; bugsy
+ db MUSIC_OFFICER_ENCOUNTER ; morty
+ db MUSIC_OFFICER_ENCOUNTER ; pryce
+ db MUSIC_LASS_ENCOUNTER ; jasmine
+ db MUSIC_OFFICER_ENCOUNTER ; chuck
+ db MUSIC_BEAUTY_ENCOUNTER ; clair
+ db MUSIC_RIVAL_ENCOUNTER ; rival1
+ db MUSIC_HIKER_ENCOUNTER ; pokemon_prof
+ db MUSIC_HIKER_ENCOUNTER ; will
+ db MUSIC_HIKER_ENCOUNTER ; cal
+ db MUSIC_OFFICER_ENCOUNTER ; bruno
+ db MUSIC_HIKER_ENCOUNTER ; karen
+ db MUSIC_HIKER_ENCOUNTER ; koga
+ db MUSIC_OFFICER_ENCOUNTER ; champion
+ db MUSIC_YOUNGSTER_ENCOUNTER ; brock
+ db MUSIC_LASS_ENCOUNTER ; misty
+ db MUSIC_OFFICER_ENCOUNTER ; lt_surge
+ db MUSIC_ROCKET_ENCOUNTER ; scientist
+ db MUSIC_OFFICER_ENCOUNTER ; erika
+ db MUSIC_YOUNGSTER_ENCOUNTER ; youngster
+ db MUSIC_YOUNGSTER_ENCOUNTER ; schoolboy
+ db MUSIC_YOUNGSTER_ENCOUNTER ; bird_keeper
+ db MUSIC_LASS_ENCOUNTER ; lass
+ db MUSIC_LASS_ENCOUNTER ; janine
+ db MUSIC_HIKER_ENCOUNTER ; cooltrainerm
+ db MUSIC_BEAUTY_ENCOUNTER ; cooltrainerf
+ db MUSIC_BEAUTY_ENCOUNTER ; beauty
+ db MUSIC_POKEMANIAC_ENCOUNTER ; pokemaniac
+ db MUSIC_ROCKET_ENCOUNTER ; gruntm
+ db MUSIC_HIKER_ENCOUNTER ; gentleman
+ db MUSIC_BEAUTY_ENCOUNTER ; skier
+ db MUSIC_BEAUTY_ENCOUNTER ; teacher
+ db MUSIC_BEAUTY_ENCOUNTER ; sabrina
+ db MUSIC_YOUNGSTER_ENCOUNTER ; bug_catcher
+ db MUSIC_HIKER_ENCOUNTER ; fisher
+ db MUSIC_HIKER_ENCOUNTER ; swimmerm
+ db MUSIC_BEAUTY_ENCOUNTER ; swimmerf
+ db MUSIC_HIKER_ENCOUNTER ; sailor
+ db MUSIC_POKEMANIAC_ENCOUNTER ; super_nerd
+ db MUSIC_RIVAL_ENCOUNTER ; rival2
+ db MUSIC_HIKER_ENCOUNTER ; guitarist
+ db MUSIC_HIKER_ENCOUNTER ; hiker
+ db MUSIC_HIKER_ENCOUNTER ; biker
+ db MUSIC_OFFICER_ENCOUNTER ; blaine
+ db MUSIC_POKEMANIAC_ENCOUNTER ; burglar
+ db MUSIC_HIKER_ENCOUNTER ; firebreather
+ db MUSIC_POKEMANIAC_ENCOUNTER ; juggler
+ db MUSIC_HIKER_ENCOUNTER ; blackbelt_t
+ db MUSIC_ROCKET_ENCOUNTER ; executivem
+ db MUSIC_YOUNGSTER_ENCOUNTER ; psychic_t
+ db MUSIC_LASS_ENCOUNTER ; picnicker
+ db MUSIC_YOUNGSTER_ENCOUNTER ; camper
+ db MUSIC_ROCKET_ENCOUNTER ; executivef
+ db MUSIC_SAGE_ENCOUNTER ; sage
+ db MUSIC_SAGE_ENCOUNTER ; medium
+ db MUSIC_HIKER_ENCOUNTER ; boarder
+ db MUSIC_HIKER_ENCOUNTER ; pokefanm
+ db MUSIC_KIMONO_ENCOUNTER ; kimono_girl
+ db MUSIC_LASS_ENCOUNTER ; twins
+ db MUSIC_BEAUTY_ENCOUNTER ; pokefanf
+ db MUSIC_HIKER_ENCOUNTER ; red
+ db MUSIC_RIVAL_ENCOUNTER ; blue
+ db MUSIC_HIKER_ENCOUNTER ; officer
+ db MUSIC_ROCKET_ENCOUNTER ; gruntf
+ db MUSIC_HIKER_ENCOUNTER ; mysticalman
+ db MUSIC_HIKER_ENCOUNTER
+ db MUSIC_HIKER_ENCOUNTER
+ db MUSIC_HIKER_ENCOUNTER
diff --git a/trainers/gendered_trainers.asm b/trainers/gendered_trainers.asm
new file mode 100644
index 000000000..98cfec2ac
--- /dev/null
+++ b/trainers/gendered_trainers.asm
@@ -0,0 +1,40 @@
+MaleTrainers: ; 4e95d
+ db BURGLAR
+ db YOUNGSTER
+ db SCHOOLBOY
+ db BIRD_KEEPER
+ db POKEMANIAC
+ db GENTLEMAN
+ db BUG_CATCHER
+ db FISHER
+ db SWIMMERM
+ db SAILOR
+ db SUPER_NERD
+ db GUITARIST
+ db HIKER
+ db FIREBREATHER
+ db BLACKBELT_T
+ db PSYCHIC_T
+ db CAMPER
+ db COOLTRAINERM
+ db BOARDER
+ db JUGGLER
+ db POKEFANM
+ db OFFICER
+ db SAGE
+ db BIKER
+ db SCIENTIST
+MaleTrainersEnd
+
+FemaleTrainers: ; 4e976
+ db MEDIUM
+ db LASS
+ db BEAUTY
+ db SKIER
+ db TEACHER
+ db SWIMMERF
+ db PICNICKER
+ db KIMONO_GIRL
+ db POKEFANF
+ db COOLTRAINERF
+FemaleTrainersEnd
diff --git a/trainers/read_attributes.asm b/trainers/read_attributes.asm
new file mode 100644
index 000000000..dfb8d3682
--- /dev/null
+++ b/trainers/read_attributes.asm
@@ -0,0 +1,64 @@
+GetTrainerClassName: ; 3952d
+ ld hl, RivalName
+ ld a, c
+ cp RIVAL1
+ jr z, .rival
+
+ ld [CurSpecies], a
+ ld a, TRAINER_NAME
+ ld [wNamedObjectTypeBuffer], a
+ call GetName
+ ld de, StringBuffer1
+ ret
+
+.rival
+ ld de, StringBuffer1
+ push de
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ pop de
+ ret
+
+GetOTName: ; 39550
+ ld hl, OTPlayerName
+ ld a, [wLinkMode]
+ and a
+ jr nz, .ok
+
+ ld hl, RivalName
+ ld a, c
+ cp RIVAL1
+ jr z, .ok
+
+ ld [CurSpecies], a
+ ld a, TRAINER_NAME
+ ld [wNamedObjectTypeBuffer], a
+ call GetName
+ ld hl, StringBuffer1
+
+.ok
+ ld bc, TRAINER_CLASS_NAME_LENGTH
+ ld de, OTClassName
+ push de
+ call CopyBytes
+ pop de
+ ret
+
+GetTrainerAttributes: ; 3957b
+ ld a, [TrainerClass]
+ ld c, a
+ call GetOTName
+ ld a, [TrainerClass]
+ 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