summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRemy Oukaour <remy.oukaour@gmail.com>2018-01-09 16:55:11 -0500
committerRemy Oukaour <remy.oukaour@gmail.com>2018-01-09 16:55:11 -0500
commitce50d1b2cb4eebf8484cf12e6280c441ec94ae39 (patch)
tree1d7f04cf49355b8632070f3b3f9c6996210d210b
parent11556196ba546f5c45b97fffc2c263a79eb639b9 (diff)
Clearer Battle Tower code
-rwxr-xr-xconstants/battle_tower_constants.asm6
-rw-r--r--data/battle_tower/classes.asm82
-rw-r--r--data/battle_tower/parties.asm80
-rw-r--r--engine/events/battle_tower/load_trainer.asm11
4 files changed, 93 insertions, 86 deletions
diff --git a/constants/battle_tower_constants.asm b/constants/battle_tower_constants.asm
index 74df3a36a..9961d42fd 100755
--- a/constants/battle_tower_constants.asm
+++ b/constants/battle_tower_constants.asm
@@ -42,10 +42,10 @@
const BATTLETOWER_RECEIVED_REWARD
BATTLETOWER_NROFPKMNS EQU 3
-BATTLETOWER_TRAINERDATALENGTH EQU $24
BATTLETOWER_NROFTRAINERS EQU 7
-BATTLETOWER_NRMONSPERLEVELBRACKET EQU BATTLETOWER_NROFPKMNS * BATTLETOWER_NROFTRAINERS
-BATTLE_TOWER_STRUCT_LENGTH EQU $e0 ; NAME_LENGTH + 3 * (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH
+
+BATTLETOWER_TRAINERDATALENGTH EQU $24
+BATTLE_TOWER_STRUCT_LENGTH EQU $e0 ; NAME_LENGTH + BATTLETOWER_NROFPKMNS * (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH
; return value from BattleTowerAction(BATTLETOWERACTION_CHECKMOBILEEVENT)
MOBILE_EVENT_OBJECT_GS_BALL EQU $b
diff --git a/data/battle_tower/classes.asm b/data/battle_tower/classes.asm
new file mode 100644
index 000000000..c5ef7a1c6
--- /dev/null
+++ b/data/battle_tower/classes.asm
@@ -0,0 +1,82 @@
+BattleTowerTrainers: ; 1f814e
+; The trainer class is not used in Crystal 1.0 due to a bug.
+; Instead, the sixth character in the trainer's name is used.
+; See BattleTowerText in engine/events/battle_tower/trainer_text.asm.
+ db "HANSON@@@@", FISHER
+ db "SAWYER@@@@", POKEMANIAC
+ db "MASUDA@@@@", GUITARIST
+ db "NICKEL@@@@", SCIENTIST
+ db "OLSON@@@@@", POKEFANM
+ db "ZABOROWSKI", LASS
+ db "WRIGHT@@@@", YOUNGSTER
+ db "ALEXANDER@", HIKER
+ db "KAWAKAMI@@", TEACHER
+ db "BICKETT@@@", POKEFANM
+ db "SAITO@@@@@", KIMONO_GIRL
+ db "CRAWFORD@@", BOARDER
+ db "DIAZ@@@@@@", PICNICKER
+ db "ERICKSON@@", BIKER
+ db "FAIRFIELD@", JUGGLER
+ db "HUNTER@@@@", POKEFANF
+ db "HILL@@@@@@", FIREBREATHER
+ db "JAVIER@@@@", SWIMMERF
+ db "KAUFMAN@@@", SWIMMERM
+ db "LANCASTER@", SKIER
+ db "McMAHILL@@", CAMPER
+if !DEF(CRYSTAL11)
+BattleTowerTrainersEnd:
+endc
+; The following can only be sampled in Crystal 1.1.
+ db "OBRIEN@@@@", GENTLEMAN
+ db "FROST@@@@@", BEAUTY
+ db "MORSE@@@@@", SUPER_NERD
+ db "YUFUNE@@@@", BLACKBELT_T
+ db "RAJAN@@@@@", COOLTRAINERF
+ db "RODRIGUEZ@", OFFICER
+ db "SANTIAGO@@", PSYCHIC_T
+ db "STOCK@@@@@", POKEFANM
+ db "THURMAN@@@", SCIENTIST
+ db "VALENTINO@", BEAUTY
+ db "WAGNER@@@@", CAMPER
+ db "YATES@@@@@", BIRD_KEEPER
+ db "ANDREWS@@@", PICNICKER
+ db "BAHN@@@@@@", POKEMANIAC
+ db "MORI@@@@@@", SCIENTIST
+ db "BUCKMAN@@@", SAGE
+ db "COBB@@@@@@", SCHOOLBOY
+ db "HUGHES@@@@", FISHER
+ db "ARITA@@@@@", KIMONO_GIRL
+ db "EASTON@@@@", PSYCHIC_T
+ db "FREEMAN@@@", CAMPER
+ db "GIESE@@@@@", LASS
+ db "HATCHER@@@", GENTLEMAN
+ db "JACKSON@@@", POKEFANF
+ db "KAHN@@@@@@", POKEMANIAC
+ db "LEONG@@@@@", YOUNGSTER
+ db "MARINO@@@@", TEACHER
+ db "NEWMAN@@@@", SAILOR
+ db "NGUYEN@@@@", BLACKBELT_T
+ db "OGDEN@@@@@", SUPER_NERD
+ db "PARK@@@@@@", COOLTRAINERF
+ db "RAINE@@@@@", SWIMMERM
+ db "SELLS@@@@@", BIRD_KEEPER
+ db "ROCKWELL@@", BOARDER
+ db "THORNTON@@", LASS
+ db "TURNER@@@@", OFFICER
+ db "VAN DYKE@@", SKIER
+ db "WALKER@@@@", SCHOOLBOY
+ db "MEYER@@@@@", SWIMMERF
+ db "JOHNSON@@@", YOUNGSTER
+ db "ADAMS@@@@@", GUITARIST
+ db "SMITH@@@@@", BUG_CATCHER
+ db "TAJIRI@@@@", BUG_CATCHER
+ db "BAKER@@@@@", POKEMANIAC
+ db "COLLINS@@@", SCIENTIST
+ db "SMART@@@@@", SUPER_NERD
+ db "DYKSTRA@@@", SWIMMERF
+ db "EATON@@@@@", BIKER
+ db "WONG@@@@@@", FIREBREATHER
+if DEF(CRYSTAL11)
+BattleTowerTrainersEnd:
+endc
+; 1f8450
diff --git a/data/battle_tower/parties.asm b/data/battle_tower/parties.asm
index d2e07fac3..c7008a247 100644
--- a/data/battle_tower/parties.asm
+++ b/data/battle_tower/parties.asm
@@ -1,83 +1,7 @@
-BattleTowerTrainers: ; 1f814e
-; The trainer class is not used in Crystal 1.0 due to a bug.
-; Instead, the sixth character in the trainer's name is used.
-; See mobile/battle_tower_47.asm
- db "HANSON@@@@", FISHER
- db "SAWYER@@@@", POKEMANIAC
- db "MASUDA@@@@", GUITARIST
- db "NICKEL@@@@", SCIENTIST
- db "OLSON@@@@@", POKEFANM
- db "ZABOROWSKI", LASS
- db "WRIGHT@@@@", YOUNGSTER
- db "ALEXANDER@", HIKER
- db "KAWAKAMI@@", TEACHER
- db "BICKETT@@@", POKEFANM
- db "SAITO@@@@@", KIMONO_GIRL
- db "CRAWFORD@@", BOARDER
- db "DIAZ@@@@@@", PICNICKER
- db "ERICKSON@@", BIKER
- db "FAIRFIELD@", JUGGLER
- db "HUNTER@@@@", POKEFANF
- db "HILL@@@@@@", FIREBREATHER
- db "JAVIER@@@@", SWIMMERF
- db "KAUFMAN@@@", SWIMMERM
- db "LANCASTER@", SKIER
- db "McMAHILL@@", CAMPER
-; The following can only be sampled in Crystal 1.1.
- db "OBRIEN@@@@", GENTLEMAN
- db "FROST@@@@@", BEAUTY
- db "MORSE@@@@@", SUPER_NERD
- db "YUFUNE@@@@", BLACKBELT_T
- db "RAJAN@@@@@", COOLTRAINERF
- db "RODRIGUEZ@", OFFICER
- db "SANTIAGO@@", PSYCHIC_T
- db "STOCK@@@@@", POKEFANM
- db "THURMAN@@@", SCIENTIST
- db "VALENTINO@", BEAUTY
- db "WAGNER@@@@", CAMPER
- db "YATES@@@@@", BIRD_KEEPER
- db "ANDREWS@@@", PICNICKER
- db "BAHN@@@@@@", POKEMANIAC
- db "MORI@@@@@@", SCIENTIST
- db "BUCKMAN@@@", SAGE
- db "COBB@@@@@@", SCHOOLBOY
- db "HUGHES@@@@", FISHER
- db "ARITA@@@@@", KIMONO_GIRL
- db "EASTON@@@@", PSYCHIC_T
- db "FREEMAN@@@", CAMPER
- db "GIESE@@@@@", LASS
- db "HATCHER@@@", GENTLEMAN
- db "JACKSON@@@", POKEFANF
- db "KAHN@@@@@@", POKEMANIAC
- db "LEONG@@@@@", YOUNGSTER
- db "MARINO@@@@", TEACHER
- db "NEWMAN@@@@", SAILOR
- db "NGUYEN@@@@", BLACKBELT_T
- db "OGDEN@@@@@", SUPER_NERD
- db "PARK@@@@@@", COOLTRAINERF
- db "RAINE@@@@@", SWIMMERM
- db "SELLS@@@@@", BIRD_KEEPER
- db "ROCKWELL@@", BOARDER
- db "THORNTON@@", LASS
- db "TURNER@@@@", OFFICER
- db "VAN DYKE@@", SKIER
- db "WALKER@@@@", SCHOOLBOY
- db "MEYER@@@@@", SWIMMERF
- db "JOHNSON@@@", YOUNGSTER
- db "ADAMS@@@@@", GUITARIST
- db "SMITH@@@@@", BUG_CATCHER
- db "TAJIRI@@@@", BUG_CATCHER
- db "BAKER@@@@@", POKEMANIAC
- db "COLLINS@@@", SCIENTIST
- db "SMART@@@@@", SUPER_NERD
- db "DYKSTRA@@@", SWIMMERF
- db "EATON@@@@@", BIKER
- db "WONG@@@@@@", FIREBREATHER
-; 1f8450
-
-
BattleTowerMons: ; 1f8450
; 10 groups of 21 mons.
+
+
BattleTowerMons1:
db JOLTEON
diff --git a/engine/events/battle_tower/load_trainer.asm b/engine/events/battle_tower/load_trainer.asm
index 5d8c06166..5389f3f2e 100644
--- a/engine/events/battle_tower/load_trainer.asm
+++ b/engine/events/battle_tower/load_trainer.asm
@@ -27,12 +27,11 @@ Function_LoadOpponentTrainerAndPokemons: ; 1f8000
add b
ld b, a ; b contains the nr of the trainer
if DEF(CRYSTAL11)
- and (1 << 7) - 1
- cp 70
+ and $7f
else
- and (1 << 5) - 1
- cp 21
+ and $1f
endc
+ cp (BattleTowerTrainersEnd - BattleTowerTrainers) / NAME_LENGTH
jr nc, .resample
ld b, a
@@ -114,7 +113,7 @@ Function_LoadRandomBattleTowerPkmn: ; 1f8081
add b
ld b, a
and $1f
- cp BATTLETOWER_NRMONSPERLEVELBRACKET
+ cp BATTLETOWER_NROFPKMNS * BATTLETOWER_NROFTRAINERS
jr nc, .resample
; in register 'a' is the chosen Pkmn of the LevelGroup
@@ -207,4 +206,6 @@ Function_LoadRandomBattleTowerPkmn: ; 1f8081
ret
; 1f814e
+INCLUDE "data/battle_tower/classes.asm"
+
INCLUDE "data/battle_tower/parties.asm"