mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-09-09 09:51:34 -07:00
More Battle Tower shenanigans
This commit is contained in:
parent
eb39f6a339
commit
09603bf031
@ -114,6 +114,7 @@ BATTLETOWER_NROFPKMNS EQU 3
|
|||||||
BATTLETOWER_TRAINERDATALENGTH EQU $24
|
BATTLETOWER_TRAINERDATALENGTH EQU $24
|
||||||
BATTLETOWER_NROFTRAINERS EQU 7
|
BATTLETOWER_NROFTRAINERS EQU 7
|
||||||
BATTLETOWER_NRMONSPERLEVELBRACKET EQU BATTLETOWER_NROFPKMNS * BATTLETOWER_NROFTRAINERS
|
BATTLETOWER_NRMONSPERLEVELBRACKET EQU BATTLETOWER_NROFPKMNS * BATTLETOWER_NROFTRAINERS
|
||||||
|
BATTLE_TOWER_STRUCT_LENGTH EQU $e0 ; NAME_LENGTH + 3 * (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH
|
||||||
|
|
||||||
NUM_WILDMONS_PER_AREA_TIME_OF_DAY EQU 7
|
NUM_WILDMONS_PER_AREA_TIME_OF_DAY EQU 7
|
||||||
WILDMON_GRASS_STRUCTURE_LENGTH EQU 2 + 3 * (1 + 2 * NUM_WILDMONS_PER_AREA_TIME_OF_DAY)
|
WILDMON_GRASS_STRUCTURE_LENGTH EQU 2 + 3 * (1 + 2 * NUM_WILDMONS_PER_AREA_TIME_OF_DAY)
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
Function_LoadOpponentTrainerAndPokemons: ; 1f8000
|
Function_LoadOpponentTrainerAndPokemons: ; 1f8000
|
||||||
ld a, [rSVBK]
|
ld a, [rSVBK]
|
||||||
push af
|
push af
|
||||||
ld a, BANK(BT_OTrainer)
|
ld a, BANK(BT_OTTrainer)
|
||||||
ld [rSVBK], a
|
ld [rSVBK], a
|
||||||
|
|
||||||
; Fill BT_OTrainer with zeros
|
; Fill BT_OTTrainer with zeros
|
||||||
xor a
|
xor a
|
||||||
ld hl, BT_OTrainer
|
ld hl, BT_OTTrainer
|
||||||
ld bc, BT_OTrainerEnd - BT_OTrainer
|
ld bc, BT_OTTrainerEnd - BT_OTTrainer
|
||||||
call ByteFill
|
call ByteFill
|
||||||
|
|
||||||
; Write $ff into the Item-Slots
|
; Write $ff into the Item-Slots
|
||||||
@ -17,7 +17,7 @@ Function_LoadOpponentTrainerAndPokemons: ; 1f8000
|
|||||||
ld [BT_OTPkmn3Item], a
|
ld [BT_OTPkmn3Item], a
|
||||||
|
|
||||||
; Set BT_OTTrainer as start address to write the following data to
|
; Set BT_OTTrainer as start address to write the following data to
|
||||||
ld de, BT_OTrainer
|
ld de, BT_OTTrainer
|
||||||
|
|
||||||
ld a, [hRandomAdd]
|
ld a, [hRandomAdd]
|
||||||
ld b, a
|
ld b, a
|
||||||
|
@ -141,7 +141,7 @@ SpecialsPointers:: ; c029
|
|||||||
add_special Function170114
|
add_special Function170114
|
||||||
add_special BattleTowerBattle
|
add_special BattleTowerBattle
|
||||||
add_special Function1704e1
|
add_special Function1704e1
|
||||||
add_special Function17021d
|
add_special EmptySpecial_17021d
|
||||||
add_special Function_LoadOpponentTrainerAndPokemonsWithOTSprite
|
add_special Function_LoadOpponentTrainerAndPokemonsWithOTSprite
|
||||||
add_special Function11ba38
|
add_special Function11ba38
|
||||||
add_special SpecialCheckForBattleTowerRules
|
add_special SpecialCheckForBattleTowerRules
|
||||||
|
4
main.asm
4
main.asm
@ -15809,7 +15809,7 @@ Function13a47: ; unreferenced
|
|||||||
push bc
|
push bc
|
||||||
call Function13b71
|
call Function13b71
|
||||||
push de
|
push de
|
||||||
callba Function17d073
|
callba CheckStringForErrors
|
||||||
pop hl
|
pop hl
|
||||||
pop bc
|
pop bc
|
||||||
jr nc, .asm_13b0e
|
jr nc, .asm_13b0e
|
||||||
@ -15847,7 +15847,7 @@ Function13a47: ; unreferenced
|
|||||||
push bc
|
push bc
|
||||||
call Function13b71
|
call Function13b71
|
||||||
push de
|
push de
|
||||||
callba Function17d073
|
callba CheckStringForErrors
|
||||||
pop hl
|
pop hl
|
||||||
jr nc, .asm_13b34
|
jr nc, .asm_13b34
|
||||||
ld d, h
|
ld d, h
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
BattleTowerText:: ; 11c000
|
BattleTowerText:: ; 11c000
|
||||||
; Print text c for trainer [BT_OTrainer_TrainerClass]
|
; Print text c for trainer [BT_OTTrainerClass]
|
||||||
; 1: Intro text
|
; 1: Intro text
|
||||||
; 2: Player lost
|
; 2: Player lost
|
||||||
; 3: Player won
|
; 3: Player won
|
||||||
ld a, [rSVBK]
|
ld a, [rSVBK]
|
||||||
push af
|
push af
|
||||||
ld a, 3 ; BANK(BT_OTrainer_TrainerClass)
|
ld a, 3 ; BANK(BT_OTTrainerClass)
|
||||||
ld [rSVBK], a
|
ld [rSVBK], a
|
||||||
IF DEF(CRYSTAL11)
|
IF DEF(CRYSTAL11)
|
||||||
ld hl, BT_OTrainer_TrainerClass
|
ld hl, BT_OTTrainerClass
|
||||||
ELSE
|
ELSE
|
||||||
ld hl, BT_OTrainer_Name + 5
|
ld hl, BT_OTName + 5
|
||||||
ENDC
|
ENDC
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
dec a
|
dec a
|
||||||
|
422
misc/battle_tower_5c.asm
Executable file
422
misc/battle_tower_5c.asm
Executable file
@ -0,0 +1,422 @@
|
|||||||
|
BattleTowerBattle: ; 170215
|
||||||
|
xor a
|
||||||
|
ld [wcf63], a
|
||||||
|
call _BattleTowerBattle
|
||||||
|
ret
|
||||||
|
; 17021d
|
||||||
|
|
||||||
|
EmptySpecial_17021d: ; 17021d
|
||||||
|
ret
|
||||||
|
; 17021e
|
||||||
|
|
||||||
|
Function17021e: ; 17021e
|
||||||
|
xor a
|
||||||
|
ld [wcf63], a
|
||||||
|
ld [wcf64], a
|
||||||
|
ld [wcf65], a
|
||||||
|
ld [wcf66], a
|
||||||
|
ret
|
||||||
|
; 17022c
|
||||||
|
|
||||||
|
_BattleTowerBattle: ; 17022c
|
||||||
|
.loop
|
||||||
|
call .do_jumptable
|
||||||
|
call DelayFrame
|
||||||
|
ld a, [wcf63]
|
||||||
|
cp $1
|
||||||
|
jr nz, .loop
|
||||||
|
ret
|
||||||
|
; 17023a
|
||||||
|
|
||||||
|
.do_jumptable: ; 17023a
|
||||||
|
ld a, [wcf63]
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, .jumptable
|
||||||
|
rept 2
|
||||||
|
add hl, de
|
||||||
|
endr
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a
|
||||||
|
jp [hl]
|
||||||
|
; 170249
|
||||||
|
|
||||||
|
.jumptable: ; 170249
|
||||||
|
dw RunBattleTowerTrainer
|
||||||
|
dw SkipBattleTowerTrainer
|
||||||
|
; 17024d
|
||||||
|
|
||||||
|
RunBattleTowerTrainer: ; 17024d
|
||||||
|
ld a, [Options]
|
||||||
|
push af
|
||||||
|
ld hl, Options
|
||||||
|
set BATTLE_SHIFT, [hl] ; SET MODE
|
||||||
|
|
||||||
|
ld a, [InBattleTowerBattle]
|
||||||
|
push af
|
||||||
|
or $1
|
||||||
|
ld [InBattleTowerBattle], a
|
||||||
|
|
||||||
|
xor a
|
||||||
|
ld [wLinkMode], a
|
||||||
|
callba Mobile_HealParty
|
||||||
|
callba HealParty
|
||||||
|
call ReadBTTrainerParty
|
||||||
|
call Clears5_a89a
|
||||||
|
predef StartBattle
|
||||||
|
callba LoadPokemonData
|
||||||
|
callba HealParty
|
||||||
|
ld a, [wBattleResult]
|
||||||
|
ld [ScriptVar], a
|
||||||
|
and a
|
||||||
|
jr nz, .lost
|
||||||
|
ld a, BANK(sNrOfBeatenBattleTowerTrainers)
|
||||||
|
call GetSRAMBank
|
||||||
|
ld a, [sNrOfBeatenBattleTowerTrainers]
|
||||||
|
ld [wNrOfBeatenBattleTowerTrainers], a ; wcf64
|
||||||
|
call CloseSRAM
|
||||||
|
ld hl, StringBuffer3
|
||||||
|
ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64
|
||||||
|
add "1"
|
||||||
|
ld [hli], a
|
||||||
|
ld a, "@"
|
||||||
|
ld [hl], a
|
||||||
|
|
||||||
|
.lost
|
||||||
|
pop af
|
||||||
|
ld [InBattleTowerBattle], a
|
||||||
|
pop af
|
||||||
|
ld [Options], a
|
||||||
|
ld a, $1
|
||||||
|
ld [wcf63], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
|
||||||
|
ReadBTTrainerParty: ; 1702b7
|
||||||
|
; Initialise the BattleTower-Trainer and his Pkmn
|
||||||
|
call CopyBTTrainer_FromBT_OT_TowBT_OTTemp
|
||||||
|
|
||||||
|
; Check the nicknames for illegal characters, and replace bad nicknames
|
||||||
|
; with their species names.
|
||||||
|
ld de, wBT_OTTempPkmn1Name ; $c643
|
||||||
|
ld c, PKMN_NAME_LENGTH
|
||||||
|
callba CheckStringForErrors
|
||||||
|
jr nc, .skip_mon_1
|
||||||
|
|
||||||
|
ld a, [wBT_OTTempPkmn1]
|
||||||
|
ld [wNamedObjectIndexBuffer], a
|
||||||
|
call GetPokemonName
|
||||||
|
ld l, e
|
||||||
|
ld h, d
|
||||||
|
ld de, wBT_OTTempPkmn1Name ; $c643
|
||||||
|
ld bc, PKMN_NAME_LENGTH
|
||||||
|
call CopyBytes
|
||||||
|
|
||||||
|
.skip_mon_1
|
||||||
|
ld de, wBT_OTTempPkmn2Name ; $c67e
|
||||||
|
ld c, PKMN_NAME_LENGTH
|
||||||
|
callba CheckStringForErrors
|
||||||
|
jr nc, .skip_mon_2
|
||||||
|
ld a, [wBT_OTTempPkmn2] ; [$c64e]
|
||||||
|
ld [wNamedObjectIndexBuffer], a
|
||||||
|
call GetPokemonName
|
||||||
|
ld l, e
|
||||||
|
ld h, d
|
||||||
|
ld de, wBT_OTTempPkmn2Name ; $c67e
|
||||||
|
ld bc, PKMN_NAME_LENGTH
|
||||||
|
call CopyBytes
|
||||||
|
|
||||||
|
.skip_mon_2
|
||||||
|
ld de, wBT_OTTempPkmn3Name ; $c686 + 51 = $c6b9
|
||||||
|
ld c, PKMN_NAME_LENGTH
|
||||||
|
callba CheckStringForErrors
|
||||||
|
jr nc, .skip_mon_3
|
||||||
|
ld a, [wBT_OTTempPkmn3] ; [$c689]
|
||||||
|
ld [wNamedObjectIndexBuffer], a
|
||||||
|
call GetPokemonName
|
||||||
|
ld l, e
|
||||||
|
ld h, d
|
||||||
|
ld de, wBT_OTTempPkmn3Name ; $c686 + 51 = $c6b9
|
||||||
|
ld bc, PKMN_NAME_LENGTH
|
||||||
|
call CopyBytes
|
||||||
|
|
||||||
|
.skip_mon_3
|
||||||
|
; Add the terminator character to each of these names
|
||||||
|
ld a, "@"
|
||||||
|
ld [wBT_OTTempPkmn1NameEnd - 1], a ; $c64d
|
||||||
|
ld [wBT_OTTempPkmn2NameEnd - 1], a ; $c688
|
||||||
|
ld [wBT_OTTempPkmn3NameEnd - 1], a ; $c68a + 57 = $c6c3
|
||||||
|
; Fix errors in the movesets
|
||||||
|
call CheckBTMonMovesForErrors
|
||||||
|
; Repair the trainer name if needed, then copy it to OTPlayerName
|
||||||
|
ld de, wBT_OTTempName
|
||||||
|
ld c, NAME_LENGTH - 1
|
||||||
|
callba CheckStringForErrors
|
||||||
|
jr nc, .trainer_name_okay
|
||||||
|
ld hl, BT_ChrisName
|
||||||
|
jr .done_trainer_name
|
||||||
|
|
||||||
|
.trainer_name_okay
|
||||||
|
ld hl, wBT_OTTempName ; 0xc608
|
||||||
|
|
||||||
|
.done_trainer_name
|
||||||
|
ld de, OTPlayerName
|
||||||
|
ld bc, NAME_LENGTH - 1
|
||||||
|
call CopyBytes
|
||||||
|
ld a, "@"
|
||||||
|
ld [de], a
|
||||||
|
|
||||||
|
ld hl, wBT_OTTempTrainerClass
|
||||||
|
ld a, [hli]
|
||||||
|
ld [OtherTrainerClass], a
|
||||||
|
ld a, OTPartyMonNicknames % $100
|
||||||
|
ld [BGMapBuffer], a
|
||||||
|
ld a, OTPartyMonNicknames / $100
|
||||||
|
ld [BGMapBuffer + 1], a
|
||||||
|
|
||||||
|
; Copy Pkmn into Memory from the address in hl
|
||||||
|
ld de, OTPartyMon1Species
|
||||||
|
ld bc, OTPartyCount
|
||||||
|
ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has
|
||||||
|
ld [bc], a
|
||||||
|
inc bc
|
||||||
|
.otpartymon_loop
|
||||||
|
push af
|
||||||
|
ld a, [hl]
|
||||||
|
ld [bc], a
|
||||||
|
inc bc
|
||||||
|
push bc
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH
|
||||||
|
call CopyBytes
|
||||||
|
push de
|
||||||
|
ld a, [BGMapBuffer]
|
||||||
|
ld e, a
|
||||||
|
ld a, [BGMapBuffer + 1]
|
||||||
|
ld d, a
|
||||||
|
ld bc, PKMN_NAME_LENGTH
|
||||||
|
call CopyBytes
|
||||||
|
ld a, e
|
||||||
|
ld [BGMapBuffer], a
|
||||||
|
ld a, d
|
||||||
|
ld [BGMapBuffer + 1], a
|
||||||
|
pop de
|
||||||
|
pop bc
|
||||||
|
pop af
|
||||||
|
dec a
|
||||||
|
and a
|
||||||
|
jr nz, .otpartymon_loop
|
||||||
|
ld a, -1
|
||||||
|
ld [bc], a
|
||||||
|
ret
|
||||||
|
; 170394
|
||||||
|
|
||||||
|
Function170394: ; 170394
|
||||||
|
ld hl, $c608 + 11
|
||||||
|
ld d, $3
|
||||||
|
.asm_170399
|
||||||
|
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
|
||||||
|
|
||||||
|
.asm_1703b1
|
||||||
|
ld a, $eb
|
||||||
|
ld [hl], a
|
||||||
|
|
||||||
|
.asm_1703b4
|
||||||
|
ld [CurSpecies], a
|
||||||
|
call GetBaseData
|
||||||
|
ld a, $5
|
||||||
|
call GetSRAMBank
|
||||||
|
ld a, [$b2fb]
|
||||||
|
call CloseSRAM
|
||||||
|
ld e, a
|
||||||
|
ld hl, $001f
|
||||||
|
add hl, bc
|
||||||
|
ld a, [hl]
|
||||||
|
cp $2
|
||||||
|
ld a, $2
|
||||||
|
jr c, .asm_1703d6
|
||||||
|
ld a, [hl]
|
||||||
|
cp e
|
||||||
|
jr c, .asm_1703d7
|
||||||
|
ld a, e
|
||||||
|
|
||||||
|
.asm_1703d6
|
||||||
|
ld [hl], a
|
||||||
|
|
||||||
|
.asm_1703d7
|
||||||
|
ld [CurPartyLevel], a
|
||||||
|
ld hl, $0002
|
||||||
|
add hl, bc
|
||||||
|
ld d, $3
|
||||||
|
ld a, [hli]
|
||||||
|
and a
|
||||||
|
jr z, .asm_1703ea
|
||||||
|
cp $fc
|
||||||
|
jr nc, .asm_1703ea
|
||||||
|
jr .asm_1703f4
|
||||||
|
|
||||||
|
.asm_1703ea
|
||||||
|
dec hl
|
||||||
|
ld a, $1
|
||||||
|
ld [hli], a
|
||||||
|
xor a
|
||||||
|
rept 2
|
||||||
|
ld [hli], a
|
||||||
|
endr
|
||||||
|
ld [hl], a
|
||||||
|
jr .asm_1703ff
|
||||||
|
|
||||||
|
.asm_1703f4
|
||||||
|
ld a, [hl]
|
||||||
|
cp $fc
|
||||||
|
jr c, .asm_1703fb
|
||||||
|
ld [hl], $0
|
||||||
|
|
||||||
|
.asm_1703fb
|
||||||
|
inc hl
|
||||||
|
dec d
|
||||||
|
jr nz, .asm_1703f4
|
||||||
|
|
||||||
|
.asm_1703ff
|
||||||
|
ld hl, $0024
|
||||||
|
add hl, bc
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
push hl
|
||||||
|
push de
|
||||||
|
ld hl, $000a
|
||||||
|
add hl, bc
|
||||||
|
ld b, $1
|
||||||
|
predef CalcPkmnStats
|
||||||
|
pop de
|
||||||
|
pop hl
|
||||||
|
rept 2
|
||||||
|
dec de
|
||||||
|
endr
|
||||||
|
ld a, [hli]
|
||||||
|
ld [de], a
|
||||||
|
inc de
|
||||||
|
ld a, [hl]
|
||||||
|
ld [de], a
|
||||||
|
pop hl
|
||||||
|
ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH
|
||||||
|
add hl, bc
|
||||||
|
pop de
|
||||||
|
dec d
|
||||||
|
jp nz, .asm_170399
|
||||||
|
ret
|
||||||
|
; 170426
|
||||||
|
|
||||||
|
BT_ChrisName: ; 170426
|
||||||
|
db "CHRIS@"
|
||||||
|
; 17042c
|
||||||
|
|
||||||
|
Function17042c: ; 17042c
|
||||||
|
ld hl, OTPartyMon2ID
|
||||||
|
ld a, $7
|
||||||
|
.asm_170431
|
||||||
|
push af
|
||||||
|
push hl
|
||||||
|
ld c, $12
|
||||||
|
.asm_170435
|
||||||
|
ld a, [hli]
|
||||||
|
ld b, a
|
||||||
|
ld a, [hli]
|
||||||
|
and a
|
||||||
|
jr z, .asm_170451
|
||||||
|
cp $f
|
||||||
|
jr nc, .asm_17045b
|
||||||
|
push hl
|
||||||
|
ld hl, Unknown_170470
|
||||||
|
dec a
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
add hl, de
|
||||||
|
ld a, [hl]
|
||||||
|
pop hl
|
||||||
|
cp b
|
||||||
|
jr c, .asm_17045b
|
||||||
|
jr z, .asm_17045b
|
||||||
|
jr .asm_170456
|
||||||
|
|
||||||
|
.asm_170451
|
||||||
|
ld a, b
|
||||||
|
cp $fc
|
||||||
|
jr nc, .asm_17045b
|
||||||
|
|
||||||
|
.asm_170456
|
||||||
|
dec c
|
||||||
|
jr nz, .asm_170435
|
||||||
|
jr .asm_170466
|
||||||
|
|
||||||
|
.asm_17045b
|
||||||
|
pop de
|
||||||
|
push de
|
||||||
|
ld hl, Unknown_17047e
|
||||||
|
ld bc, BATTLETOWER_TRAINERDATALENGTH
|
||||||
|
call CopyBytes
|
||||||
|
|
||||||
|
.asm_170466
|
||||||
|
pop hl
|
||||||
|
ld de, $00e0
|
||||||
|
add hl, de
|
||||||
|
pop af
|
||||||
|
dec a
|
||||||
|
jr nz, .asm_170431
|
||||||
|
ret
|
||||||
|
; 170470
|
||||||
|
|
||||||
|
Unknown_170470:
|
||||||
|
db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24
|
||||||
|
|
||||||
|
Unknown_17047e:
|
||||||
|
db $03, $04, $05, $08
|
||||||
|
db $03, $05, $0e, $06
|
||||||
|
db $03, $02, $00, $00
|
||||||
|
db $39, $07, $07, $04
|
||||||
|
db $00, $05, $04, $07
|
||||||
|
db $01, $05, $00, $00
|
||||||
|
db $0f, $05, $14, $07
|
||||||
|
db $05, $05, $11, $0c
|
||||||
|
db $0c, $06, $06, $04
|
||||||
|
|
||||||
|
|
||||||
|
CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2
|
||||||
|
; copy the BattleTower-Trainer data that lies at 'BT_OTTrainer' to 'wBT_OTTemp'
|
||||||
|
ld a, [rSVBK]
|
||||||
|
push af
|
||||||
|
ld a, $3 ; BANK(BT_OTTrainer)
|
||||||
|
ld [rSVBK], a
|
||||||
|
|
||||||
|
ld hl, BT_OTTrainer ; $d100
|
||||||
|
ld de, wBT_OTTemp ; $c608
|
||||||
|
ld bc, BATTLE_TOWER_STRUCT_LENGTH
|
||||||
|
call CopyBytes
|
||||||
|
|
||||||
|
pop af
|
||||||
|
ld [rSVBK], a
|
||||||
|
|
||||||
|
ld a, BANK(s1_be45)
|
||||||
|
call GetSRAMBank
|
||||||
|
ld a, $2
|
||||||
|
ld [s1_be45], a
|
||||||
|
ld hl, sNrOfBeatenBattleTowerTrainers
|
||||||
|
inc [hl]
|
||||||
|
call CloseSRAM
|
||||||
|
SkipBattleTowerTrainer: ; 1704c9
|
||||||
|
ret
|
||||||
|
; 1704ca
|
@ -7543,7 +7543,7 @@ Function11b6b4: ; 11b6b4
|
|||||||
ld [$c628], a
|
ld [$c628], a
|
||||||
ld de, $c63d
|
ld de, $c63d
|
||||||
ld c, $5
|
ld c, $5
|
||||||
callba Function17d073
|
callba CheckStringForErrors
|
||||||
jr nc, .asm_11b70f
|
jr nc, .asm_11b70f
|
||||||
callba Function17d187
|
callba Function17d187
|
||||||
|
|
||||||
@ -7557,7 +7557,7 @@ Function11b6b4: ; 11b6b4
|
|||||||
.asm_11b723
|
.asm_11b723
|
||||||
ld de, $c642
|
ld de, $c642
|
||||||
ld c, $5
|
ld c, $5
|
||||||
callba Function17d073
|
callba CheckStringForErrors
|
||||||
jr nc, .asm_11b736
|
jr nc, .asm_11b736
|
||||||
callba Function17d199
|
callba Function17d199
|
||||||
|
|
||||||
@ -7571,7 +7571,7 @@ Function11b6b4: ; 11b6b4
|
|||||||
.asm_11b74a
|
.asm_11b74a
|
||||||
ld de, $c647
|
ld de, $c647
|
||||||
ld c, $21
|
ld c, $21
|
||||||
callba Function17d073
|
callba CheckStringForErrors
|
||||||
jr nc, .asm_11b75d
|
jr nc, .asm_11b75d
|
||||||
callba Function17d1ab
|
callba Function17d1ab
|
||||||
|
|
||||||
@ -7590,7 +7590,7 @@ Function11b6b4: ; 11b6b4
|
|||||||
.asm_11b776
|
.asm_11b776
|
||||||
ld de, $c668
|
ld de, $c668
|
||||||
ld c, $5
|
ld c, $5
|
||||||
callba Function17d073
|
callba CheckStringForErrors
|
||||||
jr nc, .asm_11b789
|
jr nc, .asm_11b789
|
||||||
callba Function17d1c9
|
callba Function17d1c9
|
||||||
|
|
||||||
|
@ -251,418 +251,7 @@ Function17020c: ; 17020c
|
|||||||
ret
|
ret
|
||||||
; 170215
|
; 170215
|
||||||
|
|
||||||
BattleTowerBattle: ; 170215
|
INCLUDE "misc/battle_tower_5c.asm"
|
||||||
xor a
|
|
||||||
ld [wJumptableIndex], a
|
|
||||||
call Function17022c
|
|
||||||
ret
|
|
||||||
; 17021d
|
|
||||||
|
|
||||||
Function17021d: ; 17021d
|
|
||||||
ret
|
|
||||||
; 17021e
|
|
||||||
|
|
||||||
Function17021e: ; 17021e
|
|
||||||
xor a
|
|
||||||
ld [wJumptableIndex], a
|
|
||||||
ld [wcf64], a
|
|
||||||
ld [wcf65], a
|
|
||||||
ld [wcf66], a
|
|
||||||
ret
|
|
||||||
; 17022c
|
|
||||||
|
|
||||||
Function17022c: ; 17022c
|
|
||||||
.loop
|
|
||||||
call Jumpto_BattleTowerBattleFunction
|
|
||||||
call DelayFrame
|
|
||||||
ld a, [wJumptableIndex]
|
|
||||||
cp $1
|
|
||||||
jr nz, .loop
|
|
||||||
ret
|
|
||||||
; 17023a
|
|
||||||
|
|
||||||
Jumpto_BattleTowerBattleFunction: ; 17023a
|
|
||||||
ld a, [wJumptableIndex]
|
|
||||||
ld e, a
|
|
||||||
ld d, 0
|
|
||||||
ld hl, Jumptable_BattleTowerBattleFunctions
|
|
||||||
rept 2
|
|
||||||
add hl, de
|
|
||||||
endr
|
|
||||||
ld a, [hli]
|
|
||||||
ld h, [hl]
|
|
||||||
ld l, a
|
|
||||||
jp [hl]
|
|
||||||
; 170249
|
|
||||||
|
|
||||||
Jumptable_BattleTowerBattleFunctions: ; 170249
|
|
||||||
dw RunBattleTowerBattle
|
|
||||||
dw SkipBattleTowerBattle
|
|
||||||
; 17024d
|
|
||||||
|
|
||||||
RunBattleTowerBattle: ; 17024d
|
|
||||||
ld a, [Options]
|
|
||||||
push af
|
|
||||||
ld hl, Options
|
|
||||||
set 6, [hl]
|
|
||||||
ld a, [InBattleTowerBattle]
|
|
||||||
push af
|
|
||||||
or $1
|
|
||||||
ld [InBattleTowerBattle], a
|
|
||||||
xor a
|
|
||||||
ld [wLinkMode], a
|
|
||||||
callba Mobile_HealParty
|
|
||||||
callba HealParty
|
|
||||||
call Function1702b7
|
|
||||||
call Function170bf7
|
|
||||||
predef StartBattle
|
|
||||||
callba LoadPokemonData
|
|
||||||
callba HealParty
|
|
||||||
ld a, [wBattleResult]
|
|
||||||
ld [ScriptVar], a
|
|
||||||
and a
|
|
||||||
jr nz, .lost
|
|
||||||
ld a, BANK(sNrOfBeatenBattleTowerTrainers)
|
|
||||||
call GetSRAMBank
|
|
||||||
ld a, [sNrOfBeatenBattleTowerTrainers]
|
|
||||||
ld [wNrOfBeatenBattleTowerTrainers], a ; wcf64
|
|
||||||
call CloseSRAM
|
|
||||||
ld hl, StringBuffer3
|
|
||||||
ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64
|
|
||||||
add $f7
|
|
||||||
ld [hli], a
|
|
||||||
ld a, $50
|
|
||||||
ld [hl], a
|
|
||||||
|
|
||||||
.lost
|
|
||||||
pop af
|
|
||||||
ld [InBattleTowerBattle], a
|
|
||||||
pop af
|
|
||||||
ld [Options], a
|
|
||||||
ld a, $1
|
|
||||||
ld [wJumptableIndex], a
|
|
||||||
ret
|
|
||||||
|
|
||||||
|
|
||||||
Function1702b7: ; 1702b7
|
|
||||||
; Initialise the BattleTower-Trainer and his Pkmn
|
|
||||||
call CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy
|
|
||||||
ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643
|
|
||||||
ld c, PKMN_NAME_LENGTH
|
|
||||||
callba Function17d073
|
|
||||||
jr nc, .asm_1702db
|
|
||||||
|
|
||||||
ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1]
|
|
||||||
ld [wd265], a
|
|
||||||
call GetPokemonName
|
|
||||||
ld l, e
|
|
||||||
ld h, d
|
|
||||||
ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643
|
|
||||||
ld bc, PKMN_NAME_LENGTH
|
|
||||||
call CopyBytes
|
|
||||||
|
|
||||||
.asm_1702db
|
|
||||||
ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e
|
|
||||||
ld c, PKMN_NAME_LENGTH
|
|
||||||
callba Function17d073
|
|
||||||
jr nc, .asm_1702fc
|
|
||||||
ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2] ; [$c64e]
|
|
||||||
ld [wd265], a
|
|
||||||
call GetPokemonName
|
|
||||||
ld l, e
|
|
||||||
ld h, d
|
|
||||||
ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e
|
|
||||||
ld bc, PKMN_NAME_LENGTH
|
|
||||||
call CopyBytes
|
|
||||||
|
|
||||||
.asm_1702fc
|
|
||||||
ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9
|
|
||||||
ld c, PKMN_NAME_LENGTH
|
|
||||||
callba Function17d073
|
|
||||||
jr nc, .asm_17031d
|
|
||||||
ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3] ; [$c689]
|
|
||||||
ld [wd265], a
|
|
||||||
call GetPokemonName
|
|
||||||
ld l, e
|
|
||||||
ld h, d
|
|
||||||
ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9
|
|
||||||
ld bc, PKMN_NAME_LENGTH
|
|
||||||
call CopyBytes
|
|
||||||
|
|
||||||
.asm_17031d
|
|
||||||
ld a, $50
|
|
||||||
ld [wBT_OTTempCopy + wBT_OTTempCopy_45], a ; $c64d
|
|
||||||
ld [wBT_OTTempCopy + wBT_OTTempCopy_80], a ; $c688
|
|
||||||
ld [wBT_OTTempCopy + wBT_OTTempCopy_BB], a ; $c68a + 57 = $c6c3
|
|
||||||
call Function170c98
|
|
||||||
ld de, wBT_OTTempCopy
|
|
||||||
ld c, $a
|
|
||||||
callba Function17d073
|
|
||||||
jr nc, .asm_17033d
|
|
||||||
ld hl, String_170426
|
|
||||||
jr .asm_170340
|
|
||||||
|
|
||||||
.asm_17033d
|
|
||||||
ld hl, wBT_OTTempCopy ; 0xc608
|
|
||||||
|
|
||||||
.asm_170340
|
|
||||||
ld de, wd26b
|
|
||||||
ld bc, $000a
|
|
||||||
call CopyBytes
|
|
||||||
ld a, $50
|
|
||||||
ld [de], a
|
|
||||||
ld hl, wBT_OTTempCopy + wBT_OTTempCopy_TrainerClass
|
|
||||||
ld a, [hli]
|
|
||||||
ld [OtherTrainerClass], a
|
|
||||||
ld a, $ea
|
|
||||||
ld [BGMapBuffer], a
|
|
||||||
ld a, $d3
|
|
||||||
ld [wcd21], a
|
|
||||||
|
|
||||||
; Copy Pkmn into Memory from the address in hl
|
|
||||||
ld de, OTPartyMon1Species
|
|
||||||
ld bc, OTPartyCount
|
|
||||||
ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has
|
|
||||||
ld [bc], a
|
|
||||||
inc bc
|
|
||||||
.asm_170367
|
|
||||||
push af
|
|
||||||
ld a, [hl]
|
|
||||||
ld [bc], a
|
|
||||||
inc bc
|
|
||||||
push bc
|
|
||||||
ld bc, PARTYMON_STRUCT_LENGTH
|
|
||||||
call CopyBytes
|
|
||||||
push de
|
|
||||||
ld a, [BGMapBuffer]
|
|
||||||
ld e, a
|
|
||||||
ld a, [wcd21]
|
|
||||||
ld d, a
|
|
||||||
ld bc, $000b
|
|
||||||
call CopyBytes
|
|
||||||
ld a, e
|
|
||||||
ld [BGMapBuffer], a
|
|
||||||
ld a, d
|
|
||||||
ld [wcd21], a
|
|
||||||
pop de
|
|
||||||
pop bc
|
|
||||||
pop af
|
|
||||||
dec a
|
|
||||||
and a
|
|
||||||
jr nz, .asm_170367
|
|
||||||
ld a, $ff
|
|
||||||
ld [bc], a
|
|
||||||
ret
|
|
||||||
; 170394
|
|
||||||
|
|
||||||
Function170394: ; 170394
|
|
||||||
ld hl, $c608 + 11
|
|
||||||
ld d, $3
|
|
||||||
.asm_170399
|
|
||||||
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
|
|
||||||
|
|
||||||
.asm_1703b1
|
|
||||||
ld a, $eb
|
|
||||||
ld [hl], a
|
|
||||||
|
|
||||||
.asm_1703b4
|
|
||||||
ld [CurSpecies], a
|
|
||||||
call GetBaseData
|
|
||||||
ld a, $5
|
|
||||||
call GetSRAMBank
|
|
||||||
ld a, [$b2fb]
|
|
||||||
call CloseSRAM
|
|
||||||
ld e, a
|
|
||||||
ld hl, $001f
|
|
||||||
add hl, bc
|
|
||||||
ld a, [hl]
|
|
||||||
cp $2
|
|
||||||
ld a, $2
|
|
||||||
jr c, .asm_1703d6
|
|
||||||
ld a, [hl]
|
|
||||||
cp e
|
|
||||||
jr c, .asm_1703d7
|
|
||||||
ld a, e
|
|
||||||
|
|
||||||
.asm_1703d6
|
|
||||||
ld [hl], a
|
|
||||||
|
|
||||||
.asm_1703d7
|
|
||||||
ld [CurPartyLevel], a
|
|
||||||
ld hl, $0002
|
|
||||||
add hl, bc
|
|
||||||
ld d, $3
|
|
||||||
ld a, [hli]
|
|
||||||
and a
|
|
||||||
jr z, .asm_1703ea
|
|
||||||
cp $fc
|
|
||||||
jr nc, .asm_1703ea
|
|
||||||
jr .asm_1703f4
|
|
||||||
|
|
||||||
.asm_1703ea
|
|
||||||
dec hl
|
|
||||||
ld a, $1
|
|
||||||
ld [hli], a
|
|
||||||
xor a
|
|
||||||
rept 2
|
|
||||||
ld [hli], a
|
|
||||||
endr
|
|
||||||
ld [hl], a
|
|
||||||
jr .asm_1703ff
|
|
||||||
|
|
||||||
.asm_1703f4
|
|
||||||
ld a, [hl]
|
|
||||||
cp $fc
|
|
||||||
jr c, .asm_1703fb
|
|
||||||
ld [hl], $0
|
|
||||||
|
|
||||||
.asm_1703fb
|
|
||||||
inc hl
|
|
||||||
dec d
|
|
||||||
jr nz, .asm_1703f4
|
|
||||||
|
|
||||||
.asm_1703ff
|
|
||||||
ld hl, $0024
|
|
||||||
add hl, bc
|
|
||||||
ld d, h
|
|
||||||
ld e, l
|
|
||||||
push hl
|
|
||||||
push de
|
|
||||||
ld hl, $000a
|
|
||||||
add hl, bc
|
|
||||||
ld b, $1
|
|
||||||
predef CalcPkmnStats
|
|
||||||
pop de
|
|
||||||
pop hl
|
|
||||||
rept 2
|
|
||||||
dec de
|
|
||||||
endr
|
|
||||||
ld a, [hli]
|
|
||||||
ld [de], a
|
|
||||||
inc de
|
|
||||||
ld a, [hl]
|
|
||||||
ld [de], a
|
|
||||||
pop hl
|
|
||||||
ld bc, $003b
|
|
||||||
add hl, bc
|
|
||||||
pop de
|
|
||||||
dec d
|
|
||||||
jp nz, .asm_170399
|
|
||||||
ret
|
|
||||||
; 170426
|
|
||||||
|
|
||||||
String_170426: ; 170426
|
|
||||||
db "CHRIS@"
|
|
||||||
; 17042c
|
|
||||||
|
|
||||||
Function17042c: ; 17042c
|
|
||||||
ld hl, OTPartyMon2ID
|
|
||||||
ld a, $7
|
|
||||||
.asm_170431
|
|
||||||
push af
|
|
||||||
push hl
|
|
||||||
ld c, $12
|
|
||||||
.asm_170435
|
|
||||||
ld a, [hli]
|
|
||||||
ld b, a
|
|
||||||
ld a, [hli]
|
|
||||||
and a
|
|
||||||
jr z, .asm_170451
|
|
||||||
cp $f
|
|
||||||
jr nc, .asm_17045b
|
|
||||||
push hl
|
|
||||||
ld hl, Unknown_170470
|
|
||||||
dec a
|
|
||||||
ld e, a
|
|
||||||
ld d, 0
|
|
||||||
add hl, de
|
|
||||||
ld a, [hl]
|
|
||||||
pop hl
|
|
||||||
cp b
|
|
||||||
jr c, .asm_17045b
|
|
||||||
jr z, .asm_17045b
|
|
||||||
jr .asm_170456
|
|
||||||
|
|
||||||
.asm_170451
|
|
||||||
ld a, b
|
|
||||||
cp $fc
|
|
||||||
jr nc, .asm_17045b
|
|
||||||
|
|
||||||
.asm_170456
|
|
||||||
dec c
|
|
||||||
jr nz, .asm_170435
|
|
||||||
jr .asm_170466
|
|
||||||
|
|
||||||
.asm_17045b
|
|
||||||
pop de
|
|
||||||
push de
|
|
||||||
ld hl, Unknown_17047e
|
|
||||||
ld bc, $0024
|
|
||||||
call CopyBytes
|
|
||||||
|
|
||||||
.asm_170466
|
|
||||||
pop hl
|
|
||||||
ld de, $00e0
|
|
||||||
add hl, de
|
|
||||||
pop af
|
|
||||||
dec a
|
|
||||||
jr nz, .asm_170431
|
|
||||||
ret
|
|
||||||
; 170470
|
|
||||||
|
|
||||||
Unknown_170470:
|
|
||||||
db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24
|
|
||||||
|
|
||||||
Unknown_17047e:
|
|
||||||
db $03, $04, $05, $08
|
|
||||||
db $03, $05, $0e, $06
|
|
||||||
db $03, $02, $00, $00
|
|
||||||
db $39, $07, $07, $04
|
|
||||||
db $00, $05, $04, $07
|
|
||||||
db $01, $05, $00, $00
|
|
||||||
db $0f, $05, $14, $07
|
|
||||||
db $05, $05, $11, $0c
|
|
||||||
db $0c, $06, $06, $04
|
|
||||||
|
|
||||||
|
|
||||||
CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy: ; 1704a2
|
|
||||||
; copy the BattleTower-Trainer data that lies at 'BT_OTrainer' to 'wBT_OTTempCopy'
|
|
||||||
ld a, [rSVBK]
|
|
||||||
push af
|
|
||||||
ld a, $3
|
|
||||||
ld [rSVBK], a
|
|
||||||
ld hl, BT_OTrainer ; $d100
|
|
||||||
ld de, wBT_OTTempCopy ; $c608
|
|
||||||
ld bc, BT_OTrainerEnd - BT_OTrainer ; $e0 = $a + $1 + 3*$3b + $24
|
|
||||||
; = $a + $1 + BATTLETOWER_NROFPKMNS * (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH
|
|
||||||
call CopyBytes
|
|
||||||
pop af
|
|
||||||
ld [rSVBK], a
|
|
||||||
ld a, BANK(s1_be45)
|
|
||||||
call GetSRAMBank
|
|
||||||
ld a, $2
|
|
||||||
ld [s1_be45], a
|
|
||||||
ld hl, sNrOfBeatenBattleTowerTrainers
|
|
||||||
inc [hl]
|
|
||||||
call CloseSRAM
|
|
||||||
SkipBattleTowerBattle: ; 1704c9
|
|
||||||
ret
|
|
||||||
; 1704ca
|
|
||||||
|
|
||||||
|
|
||||||
Function1704ca: ; 1704ca
|
Function1704ca: ; 1704ca
|
||||||
ld a, [$be46]
|
ld a, [$be46]
|
||||||
@ -1753,7 +1342,7 @@ Function170be4: ; 170be4
|
|||||||
ret
|
ret
|
||||||
; 170bf7
|
; 170bf7
|
||||||
|
|
||||||
Function170bf7: ; 170bf7
|
Clears5_a89a: ; 170bf7
|
||||||
ld a, $5
|
ld a, $5
|
||||||
call GetSRAMBank
|
call GetSRAMBank
|
||||||
ld hl, $a89a
|
ld hl, $a89a
|
||||||
@ -1881,46 +1470,46 @@ Function170c8b: ; 170c8b
|
|||||||
ret
|
ret
|
||||||
; 170c98
|
; 170c98
|
||||||
|
|
||||||
Function170c98: ; 170c98
|
CheckBTMonMovesForErrors: ; 170c98
|
||||||
ld c, $3
|
ld c, BATTLETOWER_NROFPKMNS
|
||||||
ld hl, $c608 + 13
|
ld hl, wBT_OTTempPkmn1Moves
|
||||||
.asm_170c9d
|
.loop
|
||||||
push hl
|
push hl
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
cp $fc
|
cp NUM_ATTACKS + 1
|
||||||
jr c, .asm_170ca6
|
jr c, .okay
|
||||||
ld a, $1
|
ld a, POUND
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
|
|
||||||
.asm_170ca6
|
.okay
|
||||||
inc hl
|
inc hl
|
||||||
ld b, $3
|
ld b, NUM_MOVES - 1
|
||||||
.asm_170ca9
|
.loop2
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
and a
|
and a
|
||||||
jr z, .asm_170cb1
|
jr z, .loop3
|
||||||
cp $fc
|
cp NUM_ATTACKS + 1
|
||||||
jr c, .asm_170cb9
|
jr c, .next
|
||||||
|
|
||||||
.asm_170cb1
|
.loop3
|
||||||
xor a
|
xor a
|
||||||
ld [hl], a
|
ld [hl], a
|
||||||
inc hl
|
inc hl
|
||||||
dec b
|
dec b
|
||||||
jr nz, .asm_170cb1
|
jr nz, .loop3
|
||||||
jr .asm_170cbd
|
jr .done
|
||||||
|
|
||||||
.asm_170cb9
|
.next
|
||||||
inc hl
|
inc hl
|
||||||
dec b
|
dec b
|
||||||
jr nz, .asm_170ca9
|
jr nz, .loop2
|
||||||
|
|
||||||
.asm_170cbd
|
.done
|
||||||
pop hl
|
pop hl
|
||||||
ld de, $003b
|
ld de, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH
|
||||||
add hl, de
|
add hl, de
|
||||||
dec c
|
dec c
|
||||||
jr nz, .asm_170c9d
|
jr nz, .loop
|
||||||
ret
|
ret
|
||||||
; 170cc6
|
; 170cc6
|
||||||
|
|
||||||
|
@ -178,48 +178,50 @@ HaveWantPals: ; 17cff3
|
|||||||
RGB 0, 0, 0
|
RGB 0, 0, 0
|
||||||
|
|
||||||
|
|
||||||
Function17d073: ; 17d073
|
CheckStringForErrors: ; 17d073
|
||||||
.asm_17d073
|
; Valid character ranges:
|
||||||
|
; $00, $05 - $13, $19 - $1c, $26 - $34, $3a - $3e, $40 - $48, $60 - $ff
|
||||||
|
.loop
|
||||||
ld a, [de]
|
ld a, [de]
|
||||||
inc de
|
inc de
|
||||||
and a
|
and a
|
||||||
jr z, .asm_17d0ae
|
jr z, .NextChar
|
||||||
cp $60
|
cp $60
|
||||||
jr nc, .asm_17d0ae
|
jr nc, .NextChar
|
||||||
cp $4e
|
cp $4e
|
||||||
jr z, .asm_17d0ae
|
jr z, .NextChar
|
||||||
cp $50
|
cp "@"
|
||||||
jr z, .asm_17d0b1
|
jr z, .Done
|
||||||
cp $5
|
cp $5
|
||||||
jr c, .asm_17d0ac
|
jr c, .Fail
|
||||||
cp $14
|
cp "<PLAY_G>"
|
||||||
jr c, .asm_17d0ae
|
jr c, .NextChar
|
||||||
cp $19
|
cp $19
|
||||||
jr c, .asm_17d0ac
|
jr c, .Fail
|
||||||
cp $1d
|
cp $1d
|
||||||
jr c, .asm_17d0ae
|
jr c, .NextChar
|
||||||
cp $26
|
cp $26
|
||||||
jr c, .asm_17d0ac
|
jr c, .Fail
|
||||||
cp $35
|
cp $35
|
||||||
jr c, .asm_17d0ae
|
jr c, .NextChar
|
||||||
cp $3a
|
cp $3a
|
||||||
jr c, .asm_17d0ac
|
jr c, .Fail
|
||||||
cp $3f
|
cp $3f
|
||||||
jr c, .asm_17d0ae
|
jr c, .NextChar
|
||||||
cp $40
|
cp $40
|
||||||
jr c, .asm_17d0ac
|
jr c, .Fail
|
||||||
cp $49
|
cp $49
|
||||||
jr c, .asm_17d0ae
|
jr c, .NextChar
|
||||||
|
|
||||||
.asm_17d0ac
|
.Fail
|
||||||
scf
|
scf
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.asm_17d0ae
|
.NextChar
|
||||||
dec c
|
dec c
|
||||||
jr nz, .asm_17d073
|
jr nz, .loop
|
||||||
|
|
||||||
.asm_17d0b1
|
.Done
|
||||||
and a
|
and a
|
||||||
ret
|
ret
|
||||||
; 17d0b3
|
; 17d0b3
|
||||||
|
68
wram.asm
68
wram.asm
@ -129,6 +129,22 @@ channel_struct: MACRO
|
|||||||
ds 1 ; c132
|
ds 1 ; c132
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
battle_tower_struct: MACRO
|
||||||
|
\1Name:: ds NAME_LENGTH +- 1
|
||||||
|
\1TrainerClass:: ds 1
|
||||||
|
\1Pkmn1:: party_struct \1Pkmn1
|
||||||
|
\1Pkmn1Name:: ds PKMN_NAME_LENGTH
|
||||||
|
\1Pkmn1NameEnd::
|
||||||
|
\1Pkmn2:: party_struct \1Pkmn2
|
||||||
|
\1Pkmn2Name:: ds PKMN_NAME_LENGTH
|
||||||
|
\1Pkmn2NameEnd::
|
||||||
|
\1Pkmn3:: party_struct \1Pkmn3
|
||||||
|
\1Pkmn3Name:: ds PKMN_NAME_LENGTH
|
||||||
|
\1Pkmn3NameEnd::
|
||||||
|
\1TrainerData:: ds BATTLETOWER_TRAINERDATALENGTH
|
||||||
|
\1TrainerEnd::
|
||||||
|
endm
|
||||||
|
|
||||||
INCLUDE "vram.asm"
|
INCLUDE "vram.asm"
|
||||||
|
|
||||||
SECTION "Stack", WRAM0
|
SECTION "Stack", WRAM0
|
||||||
@ -435,10 +451,12 @@ wOddEggName:: ds PKMN_NAME_LENGTH
|
|||||||
wOddEggOTName:: ds PKMN_NAME_LENGTH
|
wOddEggOTName:: ds PKMN_NAME_LENGTH
|
||||||
ds -70
|
ds -70
|
||||||
|
|
||||||
|
wBT_OTTemp:: battle_tower_struct wBT_OTTemp
|
||||||
|
ds -BATTLE_TOWER_STRUCT_LENGTH
|
||||||
|
|
||||||
wMisc::
|
wMisc::
|
||||||
wBattle::
|
wBattle::
|
||||||
wc608::
|
wc608::
|
||||||
wBT_OTTempCopy:: ; used to copy the data of the BattleTower-Trainer and the 3 Pkmn
|
|
||||||
|
|
||||||
wEnemyMoveStruct:: ds MOVE_LENGTH ; c608
|
wEnemyMoveStruct:: ds MOVE_LENGTH ; c608
|
||||||
wc60f::
|
wc60f::
|
||||||
@ -888,21 +906,21 @@ wMiscEnd::
|
|||||||
wc7e8:: ds 24
|
wc7e8:: ds 24
|
||||||
|
|
||||||
|
|
||||||
RSSET 0 ; Offsets for wBT_OTTempCopy:: @ $c608
|
RSSET 0 ; Offsets for wBT_OTTemp:: @ $c608
|
||||||
wBT_OTTempCopy_0 RB NAME_LENGTH + -1 ; $c608
|
wBT_OTTemp_0 RB NAME_LENGTH + -1 ; $c608
|
||||||
wBT_OTTempCopy_TrainerClass RB 1 ; $c608 + $a = $c612
|
wBT_OTTemp_TrainerClass RB 1 ; $c608 + $a = $c612
|
||||||
wBT_OTTempCopy_Pkmn1 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $b = $c613
|
wBT_OTTemp_Pkmn1 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $b = $c613
|
||||||
wBT_OTTempCopy_Pkmn1Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $45 = $c64d
|
wBT_OTTemp_Pkmn1Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $45 = $c64d
|
||||||
wBT_OTTempCopy_45 RB 1
|
wBT_OTTemp_45 RB 1
|
||||||
wBT_OTTempCopy_Pkmn2 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $46 = $c64e
|
wBT_OTTemp_Pkmn2 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $46 = $c64e
|
||||||
wBT_OTTempCopy_Pkmn2Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $76 = $c67e
|
wBT_OTTemp_Pkmn2Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $76 = $c67e
|
||||||
wBT_OTTempCopy_80 RB 1
|
wBT_OTTemp_80 RB 1
|
||||||
wBT_OTTempCopy_Pkmn3 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $81 = $c689
|
wBT_OTTemp_Pkmn3 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $81 = $c689
|
||||||
wBT_OTTempCopy_Pkmn3Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $b1 = $c6b9
|
wBT_OTTemp_Pkmn3Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $b1 = $c6b9
|
||||||
wBT_OTTempCopy_BB RB 1
|
wBT_OTTemp_BB RB 1
|
||||||
|
|
||||||
GLOBAL wBT_OTTempCopy_TrainerClass, wBT_OTTempCopy_Pkmn1, wBT_OTTempCopy_Pkmn1Name, wBT_OTTempCopy_Pkmn2, wBT_OTTempCopy_Pkmn2Name, wBT_OTTempCopy_Pkmn3, wBT_OTTempCopy_Pkmn3Name
|
GLOBAL wBT_OTTemp_TrainerClass, wBT_OTTemp_Pkmn1, wBT_OTTemp_Pkmn1Name, wBT_OTTemp_Pkmn2, wBT_OTTemp_Pkmn2Name, wBT_OTTemp_Pkmn3, wBT_OTTemp_Pkmn3Name
|
||||||
GLOBAL wBT_OTTempCopy_45, wBT_OTTempCopy_80, wBT_OTTempCopy_BB
|
GLOBAL wBT_OTTemp_45, wBT_OTTemp_80, wBT_OTTemp_BB
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1205,7 +1223,8 @@ CurMove::
|
|||||||
|
|
||||||
wNamedObjectTypeBuffer:: ds 1
|
wNamedObjectTypeBuffer:: ds 1
|
||||||
ds 1
|
ds 1
|
||||||
wJumptableIndex:: ds 1
|
wJumptableIndex::
|
||||||
|
wcf63:: ds 1
|
||||||
wNrOfBeatenBattleTowerTrainers::
|
wNrOfBeatenBattleTowerTrainers::
|
||||||
wMomBankDigitCursorPosition::
|
wMomBankDigitCursorPosition::
|
||||||
wIntroSceneFrameCounter::
|
wIntroSceneFrameCounter::
|
||||||
@ -2695,22 +2714,9 @@ w3_d000:: ; d000
|
|||||||
w3_d090::
|
w3_d090::
|
||||||
ds $70
|
ds $70
|
||||||
|
|
||||||
BT_OTrainer::
|
|
||||||
w3_d100:: ; BattleTower OpponentTrainer-Data (length = 0xe0 = $a + $1 + 3*$3b + $24)
|
w3_d100:: ; BattleTower OpponentTrainer-Data (length = 0xe0 = $a + $1 + 3*$3b + $24)
|
||||||
BT_OTrainer_Name::
|
BT_OTTrainer:: battle_tower_struct BT_OT
|
||||||
ds NAME_LENGTH + -1
|
; d1e0
|
||||||
BT_OTrainer_TrainerClass::
|
|
||||||
ds 1
|
|
||||||
BT_OTPkmn1:: party_struct BT_OTPkmn1
|
|
||||||
BT_OTPkmn1Name:: ds PKMN_NAME_LENGTH
|
|
||||||
BT_OTPkmn2:: party_struct BT_OTPkmn2
|
|
||||||
BT_OTPkmn2Name:: ds PKMN_NAME_LENGTH
|
|
||||||
BT_OTPkmn3:: party_struct BT_OTPkmn3
|
|
||||||
BT_OTPkmn3Name:: ds PKMN_NAME_LENGTH
|
|
||||||
|
|
||||||
BT_OTrainerData:: ds $24
|
|
||||||
BT_OTrainerEnd:: ; w3_d1e0
|
|
||||||
|
|
||||||
ds $20
|
ds $20
|
||||||
BT_TrainerTextIndex::
|
BT_TrainerTextIndex::
|
||||||
ds $600
|
ds $600
|
||||||
|
Loading…
Reference in New Issue
Block a user