summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/battle_tower.asm121
1 files changed, 67 insertions, 54 deletions
diff --git a/data/battle_tower.asm b/data/battle_tower.asm
index 025807ac8..f6d7b95de 100644
--- a/data/battle_tower.asm
+++ b/data/battle_tower.asm
@@ -1,24 +1,31 @@
-Function1f8000: ; 1f8000
+Function_LoadOpponentTrainerAndPokemons: ; 1f8000
ld a, [rSVBK]
push af
ld a, $3
ld [rSVBK], a
+
+ ; Fill BT_OTrainer with zeros
xor a
- ld hl, w3_d100
- ld bc, $00e0
+ ld hl, BT_OTrainer
+ ld bc, BT_OTrainerEnd - BT_OTrainer
call ByteFill
+
+ ; Write $ff into the Item-Slots
ld a, $ff
- ld [w3_d100 + $0c], a
- ld [w3_d100 + $47], a
- ld [w3_d100 + $82], a
- ld de, w3_d100
+ ld [BT_OTPkmn1Item], a
+ ld [BT_OTPkmn2Item], a
+ ld [BT_OTPkmn3Item], a
+
+ ; Set BT_OTTrainer as start address to write the following data to
+ ld de, BT_OTrainer
+
ld a, [hRandomAdd]
ld b, a
-.asm_1f8022
+.asm_1f8022 ; loop to find a random trainer
call Random
ld a, [hRandomAdd]
add b
- ld b, a
+ ld b, a ; b contains the nr of the trainer
IF DEF(CRYSTAL11)
and $7f
cp $46
@@ -31,14 +38,14 @@ ENDC
ld a, BANK(sbe46)
call GetSRAMBank
ld c, $7
- ld hl, sbe48
+ ld hl, sBTTrainers
.asm_1f803a
ld a, [hli]
cp b
jr z, .asm_1f8022
dec c
- jr nz, .asm_1f803a
- ld hl, sbe48
+ jr nz, .asm_1f803a ; c <= 7 initialise all 7 trainers?
+ ld hl, sBTTrainers
ld a, [sbe46]
ld c, a
ld a, b
@@ -52,14 +59,14 @@ ENDC
call AddNTimes
ld bc, 11
call CopyBytes
- call Function1f8081
+ call Function_LoadRandomBattleTowerPkmn
pop af
- ld hl, Unknown_1f0000
+ ld hl, BattleTowerTrainerData
ld bc, $0024
call AddNTimes
ld bc, $0024
.asm_1f8070
- ld a, BANK(Unknown_1f0000)
+ ld a, BANK(BattleTowerTrainerData)
call GetFarByte
ld [de], a
inc hl
@@ -73,14 +80,16 @@ ENDC
ret
; 1f8081
-Function1f8081: ; 1f8081
+Function_LoadRandomBattleTowerPkmn: ; 1f8081
ld c, $3
.loop
push bc
- ld a, BANK(sbe51)
+ ld a, BANK(sBTPkmnPrevTrainer1)
call GetSRAMBank
-.asm_1f8089
+.FindARandomBattleTowerPkmn
+ ; From Which LevelGroup are the Pkmn loaded
+ ; a = 1..10
ld a, [$d800]
dec a
ld hl, BattleTowerMons
@@ -97,49 +106,53 @@ Function1f8081: ; 1f8081
and $1f
cp (BattleTowerMons2 - BattleTowerMons1) / ($3b)
jr nc, .asm_1f8099
+ ; in register 'a' is the chosen Pkmn of the LevelGroup
+ ; Check if Pkmn was already loaded before
+ ; Check current and the 2 previous teams
+ ; includes check if item is double at the current team
ld bc, $3b
call AddNTimes
ld a, [hli]
ld b, a
ld a, [hld]
ld c, a
- ld a, [w3_d100 + $0b]
+ ld a, [BT_OTPkmn1]
cp b
- jr z, .asm_1f8089
- ld a, [w3_d100 + $0c]
+ jr z, .FindARandomBattleTowerPkmn
+ ld a, [BT_OTPkmn1Item]
cp c
- jr z, .asm_1f8089
- ld a, [w3_d100 + $46]
+ jr z, .FindARandomBattleTowerPkmn
+ ld a, [BT_OTPkmn2]
cp b
- jr z, .asm_1f8089
- ld a, [w3_d100 + $47]
+ jr z, .FindARandomBattleTowerPkmn
+ ld a, [BT_OTPkmn2Item]
cp c
- jr z, .asm_1f8089
- ld a, [w3_d100 + $81]
+ jr z, .FindARandomBattleTowerPkmn
+ ld a, [BT_OTPkmn3]
cp b
- jr z, .asm_1f8089
- ld a, [w3_d100 + $82]
+ jr z, .FindARandomBattleTowerPkmn
+ ld a, [BT_OTPkmn3Item]
cp c
- jr z, .asm_1f8089
- ld a, [sbe51]
+ jr z, .FindARandomBattleTowerPkmn
+ ld a, [sBTPkmnPrevTrainer1]
cp b
- jr z, .asm_1f8089
- ld a, [sbe52]
+ jr z, .FindARandomBattleTowerPkmn
+ ld a, [sBTPkmnPrevTrainer2]
cp b
- jr z, .asm_1f8089
- ld a, [sbe53]
+ jr z, .FindARandomBattleTowerPkmn
+ ld a, [sBTPkmnPrevTrainer3]
cp b
- jr z, .asm_1f8089
- ld a, [sbe54]
+ jr z, .FindARandomBattleTowerPkmn
+ ld a, [sBTPkmnPrevPrevTrainer1]
cp b
- jr z, .asm_1f8089
- ld a, [sbe55]
+ jr z, .FindARandomBattleTowerPkmn
+ ld a, [sBTPkmnPrevPrevTrainer2]
cp b
- jr z, .asm_1f8089
- ld a, [sbe56]
+ jr z, .FindARandomBattleTowerPkmn
+ ld a, [sBTPkmnPrevPrevTrainer3]
cp b
- jr z, .asm_1f8089
+ jr z, .FindARandomBattleTowerPkmn
ld bc, $3b
call CopyBytes
@@ -166,18 +179,18 @@ Function1f8081: ; 1f8081
dec c
jp nz, .loop
- ld a, [sbe51]
- ld [sbe54], a
- ld a, [sbe52]
- ld [sbe55], a
- ld a, [sbe53]
- ld [sbe56], a
- ld a, [w3_d100 + $0b]
- ld [sbe51], a
- ld a, [w3_d100 + $46]
- ld [sbe52], a
- ld a, [w3_d100 + $81]
- ld [sbe53], a
+ ld a, [sBTPkmnPrevTrainer1]
+ ld [sBTPkmnPrevPrevTrainer1], a
+ ld a, [sBTPkmnPrevTrainer2]
+ ld [sBTPkmnPrevPrevTrainer2], a
+ ld a, [sBTPkmnPrevTrainer3]
+ ld [sBTPkmnPrevPrevTrainer3], a
+ ld a, [BT_OTPkmn1]
+ ld [sBTPkmnPrevTrainer1], a
+ ld a, [BT_OTPkmn2]
+ ld [sBTPkmnPrevTrainer2], a
+ ld a, [BT_OTPkmn3]
+ ld [sBTPkmnPrevTrainer3], a
call CloseSRAM
ret
; 1f814e