summaryrefslogtreecommitdiff
path: root/misc/battle_tower_5c.asm
diff options
context:
space:
mode:
Diffstat (limited to 'misc/battle_tower_5c.asm')
-rwxr-xr-xmisc/battle_tower_5c.asm115
1 files changed, 57 insertions, 58 deletions
diff --git a/misc/battle_tower_5c.asm b/misc/battle_tower_5c.asm
index 6d5ad2ebf..bfbffc828 100755
--- a/misc/battle_tower_5c.asm
+++ b/misc/battle_tower_5c.asm
@@ -211,94 +211,93 @@ ReadBTTrainerParty: ; 1702b7
ret
; 170394
-Function170394: ; 170394
- ld hl, $c608 + 11
- ld d, $3
-.asm_170399
+ValidateBTParty: ; 170394
+; Check for and fix errors in party data
+ ld hl, wBT_OTTempPkmn1Species
+ ld d, BATTLETOWER_NROFPKMNS
+.pkmn_loop
push de
push hl
ld b, h
ld c, l
ld a, [hl]
and a
- jr z, .asm_1703b1
- cp $ff
- jr z, .asm_1703b1
- cp $fe
- jr z, .asm_1703b1
- cp $fd
- jr z, .asm_1703b1
- cp $fc
- jr nz, .asm_1703b4
+idx = $ff
+rept ($ff +- NUM_POKEMON)
+ jr z, .invalid
+ cp idx
+idx = idx +- 1
+endr
+ jr nz, .valid
-.asm_1703b1
- ld a, $eb
+.invalid
+ ld a, SMEARGLE
ld [hl], a
-.asm_1703b4
+.valid
ld [CurSpecies], a
call GetBaseData
ld a, $5
call GetSRAMBank
- ld a, [$b2fb]
+ ld a, [$b2fb] ; s5_b2fb ; max level?
call CloseSRAM
ld e, a
- ld hl, $001f
+ ld hl, MON_LEVEL
add hl, bc
ld a, [hl]
- cp $2
- ld a, $2
- jr c, .asm_1703d6
+ cp MIN_LEVEL
+ ld a, MIN_LEVEL
+ jr c, .load
ld a, [hl]
cp e
- jr c, .asm_1703d7
+ jr c, .dont_load
ld a, e
-.asm_1703d6
+.load
ld [hl], a
-.asm_1703d7
+.dont_load
ld [CurPartyLevel], a
- ld hl, $0002
+ ld hl, MON_MOVES
add hl, bc
- ld d, $3
+ ld d, NUM_MOVES - 1
ld a, [hli]
and a
- jr z, .asm_1703ea
- cp $fc
- jr nc, .asm_1703ea
- jr .asm_1703f4
+ jr z, .not_move
+ cp NUM_ATTACKS + 1
+ jr nc, .not_move
+ jr .valid_move
-.asm_1703ea
+.not_move
dec hl
- ld a, $1
+ ld a, POUND
ld [hli], a
xor a
rept 2
ld [hli], a
endr
ld [hl], a
- jr .asm_1703ff
+ jr .done_moves
-.asm_1703f4
+.valid_move
ld a, [hl]
- cp $fc
- jr c, .asm_1703fb
+ cp NUM_ATTACKS + 1
+ jr c, .next
ld [hl], $0
-.asm_1703fb
+.next
inc hl
dec d
- jr nz, .asm_1703f4
+ jr nz, .valid_move
-.asm_1703ff
- ld hl, $0024
+.done_moves
+ ld hl, MON_MAXHP
add hl, bc
ld d, h
ld e, l
push hl
push de
- ld hl, $000a
+ ld hl, MON_EXP + 2
add hl, bc
ld b, $1
predef CalcPkmnStats
@@ -317,7 +316,7 @@ endr
add hl, bc
pop de
dec d
- jp nz, .asm_170399
+ jp nz, .pkmn_loop
ret
; 170426
@@ -326,20 +325,20 @@ BT_ChrisName: ; 170426
; 17042c
Function17042c: ; 17042c
- ld hl, OTPartyMon2ID
- ld a, $7
-.asm_170431
+ ld hl, BT_TrainerTextIndex + $be
+ ld a, 7
+.loop
push af
push hl
- ld c, $12
-.asm_170435
+ ld c, 18
+.loop2
ld a, [hli]
ld b, a
ld a, [hli]
and a
- jr z, .asm_170451
+ jr z, .skip
cp $f
- jr nc, .asm_17045b
+ jr nc, .exit_inner_loop
push hl
ld hl, Unknown_170470
dec a
@@ -349,34 +348,34 @@ Function17042c: ; 17042c
ld a, [hl]
pop hl
cp b
- jr c, .asm_17045b
- jr z, .asm_17045b
+ jr c, .exit_inner_loop
+ jr z, .exit_inner_loop
jr .asm_170456
-.asm_170451
+.skip
ld a, b
cp $fc
- jr nc, .asm_17045b
+ jr nc, .exit_inner_loop
.asm_170456
dec c
- jr nz, .asm_170435
- jr .asm_170466
+ jr nz, .loop2
+ jr .dont_copy
-.asm_17045b
+.exit_inner_loop
pop de
push de
ld hl, Unknown_17047e
ld bc, BATTLETOWER_TRAINERDATALENGTH
call CopyBytes
-.asm_170466
+.dont_copy
pop hl
ld de, $00e0
add hl, de
pop af
dec a
- jr nz, .asm_170431
+ jr nz, .loop
ret
; 170470