summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJimB16 <f1@jimb.de>2015-08-25 17:02:13 +0200
committerJimB16 <f1@jimb.de>2015-08-25 17:02:13 +0200
commitb9c1d1b61e529ccda59cafda037c54964af544f3 (patch)
tree16ac4301cf57d86b423886621de5a4efce386d4e
parent706f289c709b8dddd0c196e9d8a6900da34167ea (diff)
named labels and commented WRAMVars in battle_tower.asm
-rw-r--r--data/battle_tower.asm70
-rw-r--r--wram.asm41
2 files changed, 68 insertions, 43 deletions
diff --git a/data/battle_tower.asm b/data/battle_tower.asm
index 375072a46..a204920f5 100644
--- a/data/battle_tower.asm
+++ b/data/battle_tower.asm
@@ -14,11 +14,11 @@ Function_LoadOpponentTrainerAndPokemons: ; 1f8000
ld de, w3_d100
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 +31,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
@@ -77,10 +77,10 @@ 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]
@@ -102,6 +102,8 @@ Function_LoadRandomBattleTowerPkmn: ; 1f8081
; 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]
@@ -110,40 +112,40 @@ Function_LoadRandomBattleTowerPkmn: ; 1f8081
ld c, a
ld a, [w3_d100 + $0b]
cp b
- jr z, .asm_1f8089
+ jr z, .FindARandomBattleTowerPkmn
ld a, [w3_d100 + $0c]
cp c
- jr z, .asm_1f8089
+ jr z, .FindARandomBattleTowerPkmn
ld a, [w3_d100 + $46]
cp b
- jr z, .asm_1f8089
+ jr z, .FindARandomBattleTowerPkmn
ld a, [w3_d100 + $47]
cp c
- jr z, .asm_1f8089
+ jr z, .FindARandomBattleTowerPkmn
ld a, [w3_d100 + $81]
cp b
- jr z, .asm_1f8089
+ jr z, .FindARandomBattleTowerPkmn
ld a, [w3_d100 + $82]
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
@@ -170,18 +172,18 @@ Function_LoadRandomBattleTowerPkmn: ; 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, [sBTPkmnPrevTrainer1]
+ ld [sBTPkmnPrevPrevTrainer1], a
+ ld a, [sBTPkmnPrevTrainer2]
+ ld [sBTPkmnPrevPrevTrainer2], a
+ ld a, [sBTPkmnPrevTrainer3]
+ ld [sBTPkmnPrevPrevTrainer3], a
ld a, [w3_d100 + $0b]
- ld [sbe51], a
+ ld [sBTPkmnPrevTrainer1], a
ld a, [w3_d100 + $46]
- ld [sbe52], a
+ ld [sBTPkmnPrevTrainer2], a
ld a, [w3_d100 + $81]
- ld [sbe53], a
+ ld [sBTPkmnPrevTrainer3], a
call CloseSRAM
ret
; 1f814e
diff --git a/wram.asm b/wram.asm
index 9df1871d3..9a29cb950 100644
--- a/wram.asm
+++ b/wram.asm
@@ -2600,8 +2600,24 @@ SECTION "WRAM 3", WRAMX, BANK [3]
ds $100
-w3_d100::
- ds $700
+w3_d100:: ; BattleTower OpponentTrainer-Data (lengt = 0xe0)
+ ds $6
+BT_OTTrainerPkmn1:: ; w3_d10b
+ ds $1
+BT_OTTrainerPkmn1Item::
+ ds $3b-1
+BT_OTTrainerPkmn2:: ; w3_d146
+ ds $1
+BT_OTTrainerPkmn2Item::
+ ds $3b-1
+BT_OTTrainerPkmn3:: ; w3_d181
+ ds $1
+BT_OTTrainerPkmn3Item::
+ ds $3b-1
+
+ ds $29
+
+ ds $620
w3_d800:: ds 1
@@ -2772,17 +2788,24 @@ sCrystalData::
s1_be44:: ds 1
s1_be45:: ds 1
+; data of the BattleTower must be in SRAM because you can save and leave between battles
sBattleTower:: ; be46
sbe46:: ds 1
sbe47:: ds 1
-sbe48:: ds 7
+; The 7 trainers of the BattleTower are saved here, so nobody appears more than once
+sBTTrainers:: ; sbe48
+ ds 7
sbe4f:: ds 2
-sbe51:: ds 1
-sbe52:: ds 1
-sbe53:: ds 1
-sbe54:: ds 1
-sbe55:: ds 1
-sbe56:: ds 1
+; Pkmn of previous trainer
+sBTPkmnOfTrainers::
+sBTPkmnPrevTrainer1::
+ ds 1
+sBTPkmnPrevTrainer2:: ds 1
+sBTPkmnPrevTrainer3:: ds 1
+; Pkmn of preprevious trainer
+sBTPkmnPrevPrevTrainer1:: ds 1
+sBTPkmnPrevPrevTrainer2:: ds 1
+sBTPkmnPrevPrevTrainer3:: ds 1
SECTION "Boxes 1-7", SRAM, BANK [2]