diff options
Diffstat (limited to 'misc/battle_tower_5c.asm')
-rwxr-xr-x | misc/battle_tower_5c.asm | 1772 |
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 |