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.asm1772
1 files changed, 0 insertions, 1772 deletions
diff --git a/misc/battle_tower_5c.asm b/misc/battle_tower_5c.asm
deleted file mode 100755
index 462e4f75a..000000000
--- a/misc/battle_tower_5c.asm
+++ /dev/null
@@ -1,1772 +0,0 @@
-BattleTowerRoomMenu: ; 1700b0
-; special
- call InitBattleTowerChallengeRAM
- callba _BattleTowerRoomMenu
- ret
-; 1700ba
-
-Function1700ba: ; 1700ba
- call InitBattleTowerChallengeRAM
- callba Function11811a
- ret
-; 1700c4
-
-Function1700c4: ; 1700c4
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-
- call Function17042c
-
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$be45], a
- xor a
- ld [$be46], a
- ld hl, w3_dffc
- ld de, $aa41
- ld bc, 4
- call CopyBytes
- ld hl, w3_d202Name
- ld de, $aa8e
- ld bc, 7 * $cc ; length of battle tower struct from japanese games?
- call CopyBytes
- ld hl, $aa5d ; some sort of count
- ld a, [hl]
- inc [hl]
- inc hl
- sla a
- sla a
- ld e, a
- ld d, $0
- add hl, de
- ld e, l
- ld d, h
- ld hl, w3_dffc
- ld bc, 4
- call CopyBytes
- call CloseSRAM
- pop af
- ld [rSVBK], a
- ret
-; 170114
-
-Function170114: ; 170114
- call InitBattleTowerChallengeRAM
- call .Function170121
- callba Function11805f
- ret
-; 170121
-
-.Function170121: ; 170121
- ld a, $5
- call GetSRAMBank
- ld hl, $a948
- ld de, wMisc
- ld bc, $f6 ; 246
- call CopyBytes
- call CloseSRAM
- call Function170c8b
- ret
-; 170139
-
-Function170139: ; 170139
-; Convert the 4-digit decimal number at 5:aa41 into binary
- ld a, $5
- call GetSRAMBank
- ld de, $aa41
- ld h, $0
- ld l, h
- ld bc, 1000
- call .DecToBin
- ld bc, 100
- call .DecToBin
- ld bc, 10
- call .DecToBin
- ld a, [de]
- ld c, a
- ld b, $0
- add hl, bc
- call CloseSRAM
-; Store that number in wMisc
- ld a, h
- ld [wMisc], a
- ld a, l
- ld [wMisc + 1], a
- ld hl, wBT_OTTempPkmn1DVs
- ld a, [PlayerID]
- ld [hli], a
- ld a, [PlayerID + 1]
- ld [hli], a
- ld a, [wSecretID]
- ld [hli], a
- ld a, [wSecretID + 1]
- ld [hli], a
- ld e, l
- ld d, h
- ld hl, PlayerName
- ld bc, 5 ; Japanese name length
- call CopyBytes
- ld bc, PlayerID
- ld de, PlayerGender
- callba GetMobileOTTrainerClass
- ld de, wBT_OTTempPkmn1CaughtGender
- ld a, c
- ld [de], a
- inc de
- ld a, PartyMons % $100
- ld [wcd49], a
- ld a, PartyMons / $100
- ld [wcd4a], a
- ld a, PartyMonNicknames % $100
- ld [wcd4b], a
- ld a, PartyMonNicknames / $100
- ld [wcd4c], a
- ld a, 3
-.CopyLoop:
- push af
- ld a, [wcd49]
- ld l, a
- ld a, [wcd4a]
- ld h, a
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
- ld a, l
- ld [wcd49], a
- ld a, h
- ld [wcd4a], a
- ld a, [wcd4b]
- ld l, a
- ld a, [wcd4c]
- ld h, a
- ld bc, $0006
- call CopyBytes
- ld a, l
- ld [wcd4b], a
- ld a, h
- ld [wcd4c], a
- pop af
- dec a
- jr nz, .CopyLoop
- ld a, $4
- call GetSRAMBank
- ld hl, $a013
- ld bc, $24
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $a894
- ld bc, 6
- call CopyBytes
- ld hl, wMisc
- ld de, $a948
- ld bc, $f6
- call CopyBytes
- call CloseSRAM
- ret
-; 17020c
-
-.DecToBin: ; 17020c
- ld a, [de]
- inc de
- and a
- ret z
-
-.digit_loop
- add hl, bc
- dec a
- jr nz, .digit_loop
- ret
-; 170215
-
-BattleTowerBattle: ; 170215
- xor a
- ld [wBattleTowerBattleEnded], a
- call _BattleTowerBattle
- ret
-; 17021d
-
-EmptySpecial_17021d: ; 17021d
- ret
-; 17021e
-
-InitBattleTowerChallengeRAM: ; 17021e
- xor a
- ld [wBattleTowerBattleEnded], a
- ld [wNrOfBeatenBattleTowerTrainers], a
- ld [wcf65], a
- ld [wcf66], a
- ret
-; 17022c
-
-_BattleTowerBattle: ; 17022c
-.loop
- call .do_dw
- call DelayFrame
- ld a, [wBattleTowerBattleEnded]
- cp $1
- jr nz, .loop
- ret
-; 17023a
-
-.do_dw ; 17023a
- ld a, [wBattleTowerBattleEnded]
- ld e, a
- ld d, 0
- ld hl, .dw
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 170249
-
-.dw ; 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 TrainerRankings_Healings
- 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
- call CloseSRAM
- ld hl, StringBuffer3
- ld a, [wNrOfBeatenBattleTowerTrainers]
- 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 [wBattleTowerBattleEnded], 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
-
-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
-idx = $ff
-rept ($ff +- NUM_POKEMON)
- jr z, .invalid
- cp idx
-idx = idx +- 1
-endr
- jr nz, .valid
-
-.invalid
- ld a, SMEARGLE
- ld [hl], a
-
-.valid
- ld [CurSpecies], a
- call GetBaseData
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb] ; s5_b2fb ; max level?
- call CloseSRAM
- ld e, a
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- cp MIN_LEVEL
- ld a, MIN_LEVEL
- jr c, .load
- ld a, [hl]
- cp e
- jr c, .dont_load
- ld a, e
-
-.load
- ld [hl], a
-
-.dont_load
- ld [CurPartyLevel], a
- ld hl, MON_MOVES
- add hl, bc
- ld d, NUM_MOVES - 1
- ld a, [hli]
- and a
- jr z, .not_move
- cp NUM_ATTACKS + 1
- jr nc, .not_move
- jr .valid_move
-
-.not_move
- dec hl
- ld a, POUND
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- jr .done_moves
-
-.valid_move
- ld a, [hl]
- cp NUM_ATTACKS + 1
- jr c, .next
- ld [hl], $0
-
-.next
- inc hl
- dec d
- jr nz, .valid_move
-
-.done_moves
- ld hl, MON_MAXHP
- add hl, bc
- ld d, h
- ld e, l
- push hl
- push de
- ld hl, MON_STAT_EXP - 1
- add hl, bc
- ld b, $1
- predef CalcPkmnStats
- pop de
- pop hl
- dec de
- dec de
- 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, .pkmn_loop
- ret
-; 170426
-
-BT_ChrisName: ; 170426
- db "CHRIS@"
-; 17042c
-
-Function17042c: ; 17042c
- ld hl, w3_d202TrainerData
- ld a, BATTLETOWER_NROFTRAINERS
-.loop
- push af
- push hl
- ld c, BATTLETOWER_TRAINERDATALENGTH / 2
-.loop2
- ; First byte is a comparison value.
- ld a, [hli]
- ld b, a
- ; Second byte is a lookup index.
- ld a, [hli]
- and a
- jr z, .empty
- cp 15
- jr nc, .copy_data
-
- push hl
- ld hl, Unknown_170470
- dec a
- ld e, a
- ld d, 0
- add hl, de
- ld a, [hl]
- pop hl
-
- ; If Unknown_170470[a-1] <= b, overwrite the current trainer's data
- ; with Unknown17047e, and exit the inner loop.
- cp b
- jr c, .copy_data
- jr z, .copy_data
- jr .next_iteration
-
-.empty
- ; If a == 0 and b >= $fc, overwrite the current trainer's data with
- ; Unknown17047e, and exit the inner loop.
- ld a, b
- cp $fc
- jr nc, .copy_data
-
-.next_iteration
- dec c
- jr nz, .loop2
- jr .next_trainer
-
-.copy_data
- pop de
- push de
- ld hl, Unknown_17047e
- ld bc, BATTLETOWER_TRAINERDATALENGTH
- call CopyBytes
-
-.next_trainer
- pop hl
- ld de, BATTLE_TOWER_STRUCT_LENGTH
- add hl, de
- pop af
- dec a
- jr nz, .loop
- ret
-; 170470
-
-Unknown_170470:
- db $12
- db $24
- db $45
- db $45
- db $42
- db $42
- db $45
- db $42
- db $27
- db $27
- db $45
- db $27
- db $42
- db $24
-
-Unknown_17047e:
-; see data/battle_tower_2.asm
- db $03, 4
- db $05, 8
- db $03, 5
- db $0e, 6
- db $03, 2
- db $00, 0
- db $39, 7
- db $07, 4
- db $00, 5
- db $04, 7
- db $01, 5
- db $00, 0
- db $0f, 5
- db $14, 7
- db $05, 5
- db $11, 12
- db $0c, 6
- db $06, 4
-
-
-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 ; wMisc
- ld bc, BATTLE_TOWER_STRUCT_LENGTH
- call CopyBytes
-
- pop af
- ld [rSVBK], a
-
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, BATTLETOWER_CHALLENGE_IN_PROGESS
- ld [sBattleTowerChallengeState], a
- ld hl, sNrOfBeatenBattleTowerTrainers
- inc [hl]
- call CloseSRAM
-SkipBattleTowerTrainer: ; 1704c9
- ret
-; 1704ca
-
-Function1704ca: ; 1704ca
-; unreferenced mobile function
- ld a, [$be46]
- cp $7
- jr c, .asm_1704d3
- ld a, $6
-
-.asm_1704d3
- ld hl, $afce
- ld de, -$e0
-.asm_1704d9
- and a
- jr z, .asm_1704e0
- add hl, de
- dec a
- jr .asm_1704d9
-
-.asm_1704e0
- ret
-; 1704e1
-
-Function1704e1: ; 1704e1
-; unreferenced special
- call SpeechTextBox
- call FadeToMenu
- call InitBattleTowerChallengeRAM
- call .JumptableLoop
- call CloseSubmenu
- ret
-; 1704f1
-
-.JumptableLoop: ; 1704f1
- call ClearBGPalettes
- call ClearSprites
- call ClearScreen
-.loop
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .done
- call .DoJumptable
- callba ReloadMapPart
- jr .loop
-
-.done
- ret
-; 170510
-
-.DoJumptable: ; 170510
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .dw
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 17051f
-
-.dw ; 17051f
- dw .Jumptable_0
- dw .Jumptable_1
- dw .Jumptable_2
-; 170525
-
-.Jumptable_0: ; 170525
- ld a, $5
- call GetSRAMBank
-
- ld hl, $a89c
- ld de, StringBuffer3
- ld bc, $16
- call CopyBytes
-
- ld hl, $a8b2
- ld de, wMisc
- ld bc, $0096
- call CopyBytes
-
- call CloseSRAM
- hlcoord 1, 1
- ld de, StringBuffer3
- call PlaceString
- hlcoord 1, 3
- ld de, .String_Mail
- call PlaceString
- hlcoord 4, 3
- ld de, StringBuffer4
- call PlaceString
- hlcoord 8, 3
- ld de, .String_PastReaders
- call PlaceString
- call .DrawBorder
- call .PlaceTextItems
- jr .NextJumptableFunction
-
-
-.Jumptable_1:
- call SetPalettes
- call .NextJumptableFunction
-
-
-.Jumptable_2:
- ld hl, hJoyPressed
- ld a, [hl]
- and A_BUTTON
- jr nz, .pressed_a_or_b
- ld a, [hl]
- and B_BUTTON
- jr nz, .pressed_a_or_b
- ld a, [hl]
- and D_UP
- jr nz, .pressed_up
- ld a, [hl]
- and D_DOWN
- jr nz, .pressed_down
- ret
-
-.pressed_up
- ld a, [wNrOfBeatenBattleTowerTrainers]
- and a
- ret z
- sub 15
- ld [wNrOfBeatenBattleTowerTrainers], a
- call .PlaceTextItems
- ret
-
-.pressed_down
- ld a, [wNrOfBeatenBattleTowerTrainers]
- cp 60
- ret z
- add 15
- ld [wNrOfBeatenBattleTowerTrainers], a
- call .PlaceTextItems
- ret
-
-.pressed_a_or_b
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.NextJumptableFunction:
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 1705b7
-
-.DrawBorder: ; 1705b7
- hlcoord 0, 4
- ld a, $79
- ld [hli], a
- ld c, SCREEN_WIDTH - 2
-.top_border_loop
- ld a, $7a
- ld [hli], a
- dec c
- jr nz, .top_border_loop
- ld a, $7b
- ld [hli], a
- ld de, SCREEN_WIDTH
- ld c, 12
-.left_border_loop
- ld a, $7c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .left_border_loop
- ld a, $7d
- ld [hli], a
- ld c, SCREEN_WIDTH - 2
-.bottom_border_loop
- ld a, $7a
- ld [hli], a
- dec c
- jr nz, .bottom_border_loop
- ld a, $7e
- ld [hl], a
- ld de, -SCREEN_WIDTH
- add hl, de
- ld c, 12
-.right_border_loop
- ld a, $7c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .right_border_loop
- ret
-; 1705f0
-
-.PlaceTextItems: ; 1705f0
- call .ClearBox
- call .PlaceUpDownArrows
- ld a, $50
- ld [wcd4e], a
- ld hl, wMisc
- ld a, [wNrOfBeatenBattleTowerTrainers]
- ld c, a
- xor a
- ld b, a
- add hl, bc
- push hl
- pop bc
- hlcoord 1, 6
- ld a, 6
-.loop1
- push af
- push hl
- ld a, 3
-.loop2
- push af
- ld de, wcd49
- ld a, [bc]
- and a
- jr z, .fill_with_e3
-; .copy
- ld a, 5
-.loop3a
- push af
- ld a, [bc]
- ld [de], a
- inc bc
- inc de
- pop af
- dec a
- jr nz, .loop3a
- jr .rejoin
-
-.fill_with_e3
- ld a, 5
-.loop3b
- push af
- ld a, $e3
- ld [de], a
- inc de
- inc bc
- pop af
- dec a
- jr nz, .loop3b
-
-.rejoin
- ld de, wcd49
- push bc
- call PlaceString
- ld de, 6
- add hl, de
- pop bc
- pop af
- dec a
- jr nz, .loop2
- pop hl
- ld de, $28
- add hl, de
- pop af
- dec a
- jr nz, .loop1
- ret
-; 17064b
-
-.ClearBox: ; 17064b
- hlcoord 1, 5
- xor a
- ld b, 12
-.clearbox_row
- ld c, SCREEN_WIDTH - 2
-.clearbox_column
- ld [hli], a
- dec c
- jr nz, .clearbox_column
- inc hl
- inc hl
- dec b
- jr nz, .clearbox_row
- ret
-; 17065d
-
-.PlaceUpDownArrows: ; 17065d
- ld a, [wNrOfBeatenBattleTowerTrainers]
- and a
- jr z, .nope
- hlcoord 18, 5
- ld a, "▲"
- ld [hl], a
-
-.nope
- ld a, [wNrOfBeatenBattleTowerTrainers]
- cp 60
- ret z
- hlcoord 18, 16
- ld a, "▼"
- ld [hl], a
- ret
-; 170676
-
-.String_Mail: ; 170676
- db "ルーム@"
-; 17067a
-
-.String_PastReaders: ; 17067a
- db "れきだいりーダーいちらん@"
-; 170687
-
-BattleTowerAction: ; 170687
- ld a, [ScriptVar]
- ld e, a
- ld d, 0
- ld hl, .dw
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 170696
-
-
-.dw ; 170696 (5c:4696)
- dw BattleTowerAction_CheckExplanationRead ; 0x00
- dw BattleTowerAction_SetExplanationRead ; 0x01
- dw BattleTowerAction_GetChallengeState ; 0x02
- dw BattleTowerAction_SetByteToQuickSaveChallenge ; 0x03
- dw BattleTowerAction_SetByteToCancelChallenge ; 0x04
- dw Function1707ac ; 0x05
- dw Function1707f4 ; 0x06
- dw SaveBattleTowerLevelGroup ; 0x07
- dw LoadBattleTowerLevelGroup ; 0x08
- dw BattleTower_CheckSaveFileExistsAndIsYours ; 0x09
- dw Function1708b1 ; 0x0a
- dw CheckMobileEventIndex ; 0x0b
- dw Function1708c8 ; 0x0c
- dw Function1708f0 ; 0x0d
- dw BattleTowerAction_EggTicket ; 0x0e
- dw Function1709aa ; 0x0f
- dw Function1709bb ; 0x10
- dw Function170a9c ; 0x11
- dw Function170aa0 ; 0x12
- dw Function170aaf ; 0x13
- dw Function170abe ; 0x14
- dw Function170ad7 ; 0x15
- dw Function170807 ; 0x16
- dw Function17081d ; 0x17
- dw BattleTowerAction_LevelCheck ; 0x18
- dw BattleTowerAction_UbersCheck ; 0x19
- dw ResetBattleTowerTrainersSRAM ; 0x1a
- dw BattleTower_GiveReward ; 0x1b
- dw Function17071b ; 0x1c
- dw Function170729 ; 0x1d
- dw BattleTower_RandomlyChooseReward ; 0x1e
- dw BattleTower_SaveOptions ; 0x1f
-
-
-; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes)
-ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a
- ld a, BANK(sBTTrainers)
- call GetSRAMBank
-
- ld a, $ff
- ld hl, sBTTrainers
- ld bc, BATTLETOWER_NROFTRAINERS
- call ByteFill
-
- xor a
- ld [sNrOfBeatenBattleTowerTrainers], a
-
- call CloseSRAM
-
- ret
-
-BattleTower_GiveReward: ; 1706ee (5c:46ee) BattleTowerAction $1b
- ld a, BANK(sBattleTowerReward)
- call GetSRAMBank
-
- ld a, [sBattleTowerReward]
- call CloseSRAM
- ld [ScriptVar], a
- ld hl, NumItems
- ld a, [hli]
- cp MAX_ITEMS
- ret c
- ld b, MAX_ITEMS
- ld a, [ScriptVar]
- ld c, a
-.loop
- ld a, [hli]
- cp c
- jr nz, .next
- ld a, [hl]
- cp 95
- ret c
-.next
- inc hl
- dec b
- jr nz, .loop
- ld a, POTION
- ld [ScriptVar], a
- ret
-
-Function17071b: ; 17071b (5c:471b) BattleTowerAction $1c
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, BATTLETOWER_WON_CHALLENGE
- ld [sBattleTowerChallengeState], a
- call CloseSRAM
- ret
-
-Function170729: ; 170729 (5c:4729) BattleTowerAction $1d
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, BATTLETOWER_RECEIVED_REWARD
- ld [sBattleTowerChallengeState], a
- call CloseSRAM
- ret
-
-BattleTower_SaveOptions: ; 170737 (5c:4737) BattleTowerAction $1f
- callba SaveOptions
- ret
-
-BattleTower_RandomlyChooseReward: ; 17073e (5c:473e) BattleTowerAction $1e
-; Generate a random stat boosting item.
-.loop
- call Random
- ld a, [hRandomAdd]
- and $7
- cp 6
- jr c, .okay
- sub 6
-.okay
- add HP_UP
- cp LUCKY_PUNCH
- jr z, .loop
- push af
- ld a, BANK(sBattleTowerReward)
- call GetSRAMBank
- pop af
- ld [sBattleTowerReward], a
- call CloseSRAM
- ret
-
-BattleTowerAction_CheckExplanationRead: ; 17075f (5c:475f) BattleTowerAction $00
- call BattleTower_CheckSaveFileExistsAndIsYours
- ld a, [ScriptVar]
- and a
- ret z
-
- ld a, BANK(s1_be4f)
- call GetSRAMBank
- ld a, [s1_be4f]
- and $2
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-BattleTowerAction_GetChallengeState: ; 170778 (5c:4778) BattleTowerAction $02
- ld hl, sBattleTowerChallengeState
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, [hl]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-BattleTowerAction_SetExplanationRead: ; 170788 (5c:4788) BattleTowerAction $01
- ld a, BANK(s1_be4f)
- call GetSRAMBank
- ld a, [s1_be4f]
- or $2
- ld [s1_be4f], a
- call CloseSRAM
- ret
-
-BattleTowerAction_SetByteToQuickSaveChallenge: ; 170799 (5c:4799) BattleTowerAction $03
- ld c, BATTLETOWER_SAVED_AND_LEFT
- jr asm_17079f
-
-BattleTowerAction_SetByteToCancelChallenge: ; 17079d (5c:479d) BattleTowerAction $04
- ld c, BATTLETOWER_NO_CHALLENGE
-asm_17079f: ; 17079f (5c:479f)
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, c
- ld [sBattleTowerChallengeState], a
- call CloseSRAM
- ret
-
-Function1707ac: ; 1707ac (5c:47ac) BattleTowerAction $05
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8c]
- ld b, a
- ld a, [$be46]
- ld [ScriptVar], a
- call CloseSRAM
- and a
- ret z
- ld a, b
- cp $2
- jr nc, .asm_1707ef
- push bc
- call UpdateTime
- pop bc
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8b]
- call CloseSRAM
- ld c, a
- ld a, [CurDay]
- sub c
- jr c, .asm_1707e5
- cp $8
- jr nc, .asm_1707ef
- ld a, b
- and a
- jr nz, .asm_1707ef
- ret
-.asm_1707e5
- ld hl, CurDay
- ld a, $8c
- sub c
- add [hl]
- cp $8
- ret c
-.asm_1707ef
- ld a, $8
- ld [ScriptVar], a
-
-Function1707f4: ; 1707f4 (5c:47f4) BattleTowerAction $06
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$be46], a
- ld [$aa8b], a
- ld [$aa8c], a
- call CloseSRAM
- ret
-
-Function170807: ; 170807 (5c:4807) BattleTowerAction $16
- call UpdateTime
- ld a, $5
- call GetSRAMBank
- ld a, [CurDay]
- ld [$b2f9], a
- xor a
- ld [$b2fa], a
- call CloseSRAM
- ret
-
-Function17081d: ; 17081d (5c:481d) BattleTowerAction $17
- xor a
- ld [ScriptVar], a
- ld a, $5
- call GetSRAMBank
- ld a, [$b2f9]
- ld c, a
- ld a, [$b2fa]
- ld b, a
- call CloseSRAM
- cp $2
- jr nc, .asm_170853
- push bc
- call UpdateTime
- pop bc
- ld a, [CurDay]
- sub c
- jr c, .asm_170849
- cp $b
- jr nc, .asm_170853
- ld a, b
- and a
- jr nz, .asm_170853
- ret
-
-.asm_170849
- ld hl, CurDay
- ld a, 140
- sub c
- add [hl]
- cp $b
- ret c
-.asm_170853
- ld a, $1
- ld [ScriptVar], a
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$b2f9], a
- ld [$b2fa], a
- call CloseSRAM
- ret
-
-SaveBattleTowerLevelGroup: ; 170868 (5c:4868) BattleTowerAction $07
- ld a, BANK(sBTChoiceOfLevelGroup)
- call GetSRAMBank
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, [wBTChoiceOfLvlGroup]
- ld [sBTChoiceOfLevelGroup], a
- pop af
- ld [rSVBK], a
- call CloseSRAM
- ret
-
-LoadBattleTowerLevelGroup: ; 170881 (5c:4881) BattleTowerAction $08 ; Load level group choice
- ld a, BANK(sBTChoiceOfLevelGroup)
- call GetSRAMBank
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, [sBTChoiceOfLevelGroup]
- ld [wBTChoiceOfLvlGroup], a
- pop af
- ld [rSVBK], a
- call CloseSRAM
- ret
-
-BattleTower_CheckSaveFileExistsAndIsYours: ; 17089a BattleTowerAction $09
- ld a, [wSaveFileExists]
- and a
- jr z, .nope
- callba CompareLoadedAndSavedPlayerID
- jr z, .yes
- xor a
- jr .nope
-
-.yes
- ld a, $1
-
-.nope
- ld [ScriptVar], a
- ret
-; 1708b1
-
-
-Function1708b1: ; 1708b1 (5c:48b1) BattleTowerAction $0a
- xor a
- ld [MusicFade], a
- call MaxVolume
- ret
-
-CheckMobileEventIndex: ; 1708b9 (5c:48b9) BattleTowerAction $0b something to do with GS Ball
- ld a, BANK(sMobileEventIndex)
- call GetSRAMBank
- ld a, [sMobileEventIndex]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function1708c8: ; 1708c8 (5c:48c8) BattleTowerAction $0c
- call UpdateTime
- ld a, $5
- call GetSRAMBank
- ld a, [CurDay]
- ld [$aa8b], a
- xor a
- ld [$aa8c], a
- ld a, [$aa5d]
- cp $2
- jr nc, .asm_1708ec
- ld a, [CurDay]
- ld [$aa48], a
- ld a, $1
- ld [$aa47], a
-.asm_1708ec
- call CloseSRAM
- ret
-
-Function1708f0: ; 1708f0 (5c:48f0) BattleTowerAction $0d
- xor a
- ld [ScriptVar], a
- call UpdateTime
- ld a, $5
- call GetSRAMBank
- ld a, [$aa48]
- ld c, a
- ld a, [$aa47]
- call CloseSRAM
- and a
- ret z
- ld hl, CurDay
- ld a, c
- cp [hl]
- jr nz, Function170923
- ld a, $5
- call GetSRAMBank
- ld a, [$aa5d]
- call CloseSRAM
- cp $5
- ret c
- ld a, $1
- ld [ScriptVar], a
- ret
-
-
-Function170923: ; 170923
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$aa48], a
- ld [$aa47], a
- ld hl, $aa5d
- ld bc, $0011
- call ByteFill
- call CloseSRAM
- ret
-; 17093c
-
-
-BattleTowerAction_EggTicket: ; 17093c (5c:493c) BattleTowerAction $0e
- xor a
- ld [ScriptVar], a
- ld a, EGG_TICKET
- ld [CurItem], a
- ld hl, NumItems
- call CheckItem
- ret nc
- ld a, [PartyCount]
- ld b, 0
- ld c, a
- ld hl, PartySpecies
-.loop
- ld a, [hli]
- cp EGG
- jr nz, .not_egg
- push hl
- ld hl, PartyMonOT
- ld de, $6 ; NAME_LENGTH
- ld a, b
- and a
- jr z, .skip
-.loop2
- add hl, de
- dec a
- jr nz, .loop2
-.skip
- ld de, String_1709a4
- ld a, $6 ; NAME_LENGTH
-.compare_loop
- push af
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr nz, .different
- pop af
- dec a
- jr nz, .compare_loop
-rept 4
- dec hl
-endr
- ld a, "@"
- ld [hli], a
- ld [hli], a
- pop hl
- ld a, EGG_TICKET
- ld [CurItem], a
- ld a, 1
- ld [wItemQuantityChangeBuffer], a
- ld a, -1
- ld [CurItemQuantity], a
- ld hl, NumItems
- call TossItem
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.different
- pop af
- pop hl
-.not_egg
- inc b
- dec c
- jr nz, .loop
- ret
-; 1709a4 (5c:49a4)
-
-String_1709a4: ; 1709a4
- db "なぞナゾ@@"
-
-Function1709aa: ; 1709aa (5c:49aa) BattleTowerAction $0f
- ld a, [rSVBK]
- push af
- ld a, BANK(w3_d090)
- ld [rSVBK], a
- ld a, [w3_d090]
- ld [ScriptVar], a
- pop af
- ld [rSVBK], a
- ret
-
-Function1709bb: ; 1709bb (5c:49bb) BattleTowerAction $10
- xor a
- ld [ScriptVar], a
- ld a, $5
- call GetSRAMBank
- ld a, [$a800]
- call CloseSRAM
- cp 6
- jr nc, .invalid
- ld e, a
- ld d, 0
- ld hl, Jumptable_1709e7
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.invalid
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$a800], a
- call CloseSRAM
- ret
-; 1709e7 (5c:49e7)
-
-Jumptable_1709e7: ; 1709e7
- dw .NoAction
- dw .NoAction
- dw .DoAction1
- dw .DoAction1
- dw .Action4
- dw .Action5
-; 1709f3
-
-.DoAction1: ; 1709f3
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$a800], a
- call CloseSRAM
-
-.NoAction: ; 170a00
- ret
-; 170a01
-
-.Action4: ; 170a01
- ld a, $5
- call GetSRAMBank
- ld hl, $b023
- ld de, wMisc
- ld bc, $0069
- call CopyBytes
- ld a, [$a825]
- ld [wcd30], a
- ld a, [$a826]
- ld [wcd31], a
- call CloseSRAM
- callba Function11b6b4
- callba Function17d0f3
- ld a, $1
- ld [ScriptVar], a
- ret
-; 170a33
-
-.Action5: ; 170a33
- ld a, $0
- call GetSRAMBank
- ld hl, wRTC
- ld de, wMisc
- ld bc, $0004
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $b08c
- ld de, wMisc
- ld c, $4
-.compare_loop
- ld a, [de]
- inc de
- cp [hl]
- jr nz, .different
- inc hl
- dec c
- jr nz, .compare_loop
- call CloseSRAM
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetMapTrigger
- ld a, d
- or e
- jr z, .no_trigger
- ld a, [de]
- and a
- ret nz
-
-.no_trigger
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.different
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$a800], a
- call CloseSRAM
- ld [ScriptVar], a
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetMapTrigger
- ld a, d
- or e
- jr z, .no_trigger_2
- xor a
- ld [de], a
-
-.no_trigger_2
- ret
-; 170a9c
-
-Function170a9c: ; 170a9c (5c:4a9c) BattleTowerAction $11
- ld c, $0
- jr asm_170aa2
-
-Function170aa0: ; 170aa0 (5c:4aa0) BattleTowerAction $12
- ld c, $1
-asm_170aa2: ; 170aa2 (5c:4aa2)
- ld a, $5
- call GetSRAMBank
- ld a, c
- ld [$aa8d], a
- call CloseSRAM
- ret
-
-Function170aaf: ; 170aaf (5c:4aaf) BattleTowerAction $13
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8d]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function170abe: ; 170abe (5c:4abe) BattleTowerAction $14
- call BattleTower_CheckSaveFileExistsAndIsYours
- ld a, [ScriptVar]
- and a
- ret z
-
- ld a, BANK(s1_be4f)
- call GetSRAMBank
- ld a, [s1_be4f]
- and $1
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function170ad7: ; 170ad7 (5c:4ad7) BattleTowerAction $15
- ld a, BANK(s1_be4f)
- call GetSRAMBank
- ld a, [s1_be4f]
- or $1
- ld [s1_be4f], a
- call CloseSRAM
- ret
-
-BattleTowerAction_LevelCheck: ; 170ae8 (5c:4ae8) BattleTowerAction $18
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld c, 10
- call SimpleDivide
- ld a, b
- ld [wcd4f], a
- xor a
- ld [ScriptVar], a
- callba BattleTower_LevelCheck ; level check
- ret nc
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld [ScriptVar], a
- ret
-
-BattleTowerAction_UbersCheck: ; 170b16 (5c:4b16) BattleTowerAction $19
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld c, 10
- call SimpleDivide
- ld a, b
- ld [wcd4f], a
- xor a
- ld [ScriptVar], a
- callba BattleTower_UbersCheck
- ret nc
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld [ScriptVar], a
- ret
-
-Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44
- callba Function_LoadOpponentTrainerAndPokemons
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld hl, BT_OTTrainerClass
- ld a, [hl]
- dec a
- ld c, a
- ld b, $0
- pop af
- ld [rSVBK], a
- ld hl, .Sprites
- add hl, bc
- ld a, [hl]
- ld [wBTTempOTSprite], a
-
-; Load sprite of the opponent trainer
-; because s/he is chosen randomly and appears out of nowhere
- ld a, [ScriptVar]
- dec a
- sla a
- ld e, a
- sla a
- sla a
- sla a
- ld c, a
- ld b, 0
- ld d, 0
- ld hl, MapObjects
- add hl, bc
- inc hl
- ld a, [wBTTempOTSprite]
- ld [hl], a
- ld hl, UsedSprites
- add hl, de
- ld [hli], a
- ld [hUsedSpriteIndex], a
- ld a, [hl]
- ld [hUsedSpriteTile], a
- callba GetUsedSprite
- ret
-; 170b90
-
-.Sprites:
- db SPRITE_FALKNER
- db SPRITE_WHITNEY
- db SPRITE_BUGSY
- db SPRITE_MORTY
- db SPRITE_PRYCE
- db SPRITE_JASMINE
- db SPRITE_CHUCK
- db SPRITE_CLAIR
- db SPRITE_SILVER
- db SPRITE_OAK
- db SPRITE_WILL
- db SPRITE_CHRIS
- db SPRITE_BRUNO
- db SPRITE_KAREN
- db SPRITE_KOGA
- db SPRITE_LANCE
- db SPRITE_BROCK
- db SPRITE_MISTY
- db SPRITE_SURGE
- db SPRITE_SCIENTIST
- db SPRITE_ERIKA
- db SPRITE_YOUNGSTER
- db SPRITE_YOUNGSTER
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_JANINE
- db SPRITE_COOLTRAINER_M
- db SPRITE_COOLTRAINER_F
- db SPRITE_BUENA
- db SPRITE_SUPER_NERD
- db SPRITE_ROCKET
- db SPRITE_GENTLEMAN
- db SPRITE_BUENA
- db SPRITE_TEACHER
- db SPRITE_SABRINA
- db SPRITE_BUG_CATCHER
- db SPRITE_FISHER
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_F
- db SPRITE_SAILOR
- db SPRITE_SUPER_NERD
- db SPRITE_BLUE
- db SPRITE_ROCKER
- db SPRITE_POKEFAN_M
- db SPRITE_BIKER
- db SPRITE_BLAINE
- db SPRITE_PHARMACIST
- db SPRITE_FISHER
- db SPRITE_SUPER_NERD
- db SPRITE_BLACK_BELT
- db SPRITE_ROCKET
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_YOUNGSTER
- db SPRITE_ROCKET_GIRL
- db SPRITE_SAGE
- db SPRITE_GRANNY
- db SPRITE_ROCKER
- db SPRITE_POKEFAN_M
- db SPRITE_KIMONO_GIRL
- db SPRITE_TWIN
- db SPRITE_POKEFAN_F
- db SPRITE_RED
- db SPRITE_BLUE
- db SPRITE_OFFICER
- db SPRITE_ROCKET_GIRL
-
-ret_170bd2: ; 170bd2
- ret
-; 170bd3
-
-SpecialCheckForBattleTowerRules: ; 170bd3
- callba CheckForBattleTowerRules
- jr c, .asm_170bde
- xor a
- jr .asm_170be0
-
-.asm_170bde
- ld a, $1
-
-.asm_170be0
- ld [ScriptVar], a
- ret
-; 170be4