ref: f599e477fc3306dbca9cad4aeadfe7a66b84c7bc
dir: /misc/battle_tower_5c.asm/
Function1700b0: ; 1700b0 call Function17021e callba Function118121 ret ; 1700ba Function1700ba: ; 1700ba call Function17021e 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, $dffc ld de, $aa41 ld bc, $0004 call CopyBytes ld hl, $d202 ld de, $aa8e ld bc, $0594 call CopyBytes ld hl, $aa5d 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, $dffc ld bc, $0004 call CopyBytes call CloseSRAM pop af ld [rSVBK], a ret ; 170114 Function170114: ; 170114 call Function17021e call Function170121 callba Function11805f ret ; 170121 Function170121: ; 170121 ld a, $5 call GetSRAMBank ld hl, $a948 ld de, $c608 ld bc, $00f6 call CopyBytes call CloseSRAM call Function170c8b ret ; 170139 Function170139: ; 170139 ld a, $5 call GetSRAMBank ld de, $aa41 ld h, $0 ld l, h ld bc, $03e8 call Function17020c ld bc, $0064 call Function17020c ld bc, $000a call Function17020c ld a, [de] ld c, a ld b, $0 add hl, bc call CloseSRAM ld a, h ld [$c608], a ld a, l ld [$c608 + 1], a ld hl, $c628 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, $0005 ; Japanese name length call CopyBytes ld bc, PlayerID ld de, PlayerGender callba Function4e929 ld de, $c62c + 5 ld a, c ld [de], a inc de ld a, $df ld [wcd49], a ld a, $dc ld [wcd4a], a ld a, $41 ld [wcd4b], a ld a, $de ld [wcd4c], a ld a, $3 .asm_1701ac push af ld a, [wcd49] ld l, a ld a, [wcd4a] ld h, a ld bc, $0030 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, .asm_1701ac ld a, $4 call GetSRAMBank ld hl, $a013 ld bc, $0024 call CopyBytes call CloseSRAM ld a, $5 call GetSRAMBank ld hl, $a894 ld bc, $0006 call CopyBytes ld hl, $c608 ld de, $a948 ld bc, $00f6 call CopyBytes call CloseSRAM ret ; 17020c Function17020c: ; 17020c ld a, [de] inc de and a ret z .loop add hl, bc dec a jr nz, .loop ret ; 170215 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 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 rept 2 ld [hli], a endr 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_EXP + 2 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, .pkmn_loop ret ; 170426 BT_ChrisName: ; 170426 db "CHRIS@" ; 17042c Function17042c: ; 17042c ld hl, w3_d202TrainerData ld a, 7 .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 $f 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 ; $c608 ld bc, BATTLE_TOWER_STRUCT_LENGTH call CopyBytes pop af ld [rSVBK], a ld a, BANK(sBattleTowerChallengeState) call GetSRAMBank ld a, $2 ld [sBattleTowerChallengeState], a ld hl, sNrOfBeatenBattleTowerTrainers inc [hl] call CloseSRAM SkipBattleTowerTrainer: ; 1704c9 ret ; 1704ca Function1704ca: ; 1704ca 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 call SpeechTextBox call FadeToMenu call Function17021e call Function1704f1 call ReturnToCallingMenu ret ; 1704f1 Function1704f1: ; 1704f1 call ClearBGPalettes call ClearSprites call ClearScreen .asm_1704fa call JoyTextDelay ld a, [wJumptableIndex] bit 7, a jr nz, .asm_17050f call Function170510 callba ReloadMapPart jr .asm_1704fa .asm_17050f ret ; 170510 Function170510: ; 170510 ld a, [wJumptableIndex] ld e, a ld d, 0 ld hl, Jumptable_17051f rept 2 add hl, de endr ld a, [hli] ld h, [hl] ld l, a jp [hl] ; 17051f Jumptable_17051f: ; 17051f dw Function170525 dw Function170571 dw Function170577 ; 170525 Function170525: ; 170525 ld a, $5 call GetSRAMBank ld hl, $a89c ld de, StringBuffer3 ld bc, $0016 call CopyBytes ld hl, $a8b2 ld de, $c608 ld bc, $0096 call CopyBytes call CloseSRAM hlcoord 1, 1 ld de, StringBuffer3 call PlaceString hlcoord 1, 3 ld de, String_170676 call PlaceString hlcoord 4, 3 ld de, StringBuffer4 call PlaceString hlcoord 8, 3 ld de, String_17067a call PlaceString call Function1705b7 call Function1705f0 jr Function1705b2 Function170571: call SetPalettes call Function1705b2 Function170577: ld hl, hJoyPressed ld a, [hl] and $1 jr nz, .asm_1705ac ld a, [hl] and $2 jr nz, .asm_1705ac ld a, [hl] and $40 jr nz, .asm_17058f ld a, [hl] and $80 jr nz, .asm_17059d ret .asm_17058f ld a, [wcf64] and a ret z sub $f ld [wcf64], a call Function1705f0 ret .asm_17059d ld a, [wcf64] cp $3c ret z add $f ld [wcf64], a call Function1705f0 ret .asm_1705ac ld hl, wJumptableIndex set 7, [hl] ret Function1705b2: ld hl, wJumptableIndex inc [hl] ret ; 1705b7 Function1705b7: ; 1705b7 hlcoord 0, 4 ld a, $79 ld [hli], a ld c, $12 .asm_1705bf ld a, $7a ld [hli], a dec c jr nz, .asm_1705bf ld a, $7b ld [hli], a ld de, $0014 ld c, $c .asm_1705cd ld a, $7c ld [hl], a add hl, de dec c jr nz, .asm_1705cd ld a, $7d ld [hli], a ld c, $12 .asm_1705d9 ld a, $7a ld [hli], a dec c jr nz, .asm_1705d9 ld a, $7e ld [hl], a ld de, $ffec add hl, de ld c, $c .asm_1705e8 ld a, $7c ld [hl], a add hl, de dec c jr nz, .asm_1705e8 ret ; 1705f0 Function1705f0: ; 1705f0 call Function17064b call Function17065d ld a, $50 ld [wcd4e], a ld hl, $c608 ld a, [wcf64] ld c, a xor a ld b, a add hl, bc push hl pop bc hlcoord 1, 6 ld a, $6 .asm_17060c push af push hl ld a, $3 .asm_170610 push af ld de, wcd49 ld a, [bc] and a jr z, .asm_170625 ld a, $5 .asm_17061a push af ld a, [bc] ld [de], a inc bc inc de pop af dec a jr nz, .asm_17061a jr .asm_170631 .asm_170625 ld a, $5 .asm_170627 push af ld a, $e3 ld [de], a inc de inc bc pop af dec a jr nz, .asm_170627 .asm_170631 ld de, wcd49 push bc call PlaceString ld de, $0006 add hl, de pop bc pop af dec a jr nz, .asm_170610 pop hl ld de, $0028 add hl, de pop af dec a jr nz, .asm_17060c ret ; 17064b Function17064b: ; 17064b hlcoord 1, 5 xor a ld b, $c .asm_170651 ld c, $12 .asm_170653 ld [hli], a dec c jr nz, .asm_170653 rept 2 inc hl endr dec b jr nz, .asm_170651 ret ; 17065d Function17065d: ; 17065d ld a, [wcf64] and a jr z, .asm_170669 hlcoord 18, 5 ld a, $61 ld [hl], a .asm_170669 ld a, [wcf64] cp $3c ret z hlcoord 18, 16 ld a, $ee ld [hl], a ret ; 170676 String_170676: ; 170676 db "ルーム@" ; 17067a String_17067a: ; 17067a db "れきだいりーダーいちらん@" ; 170687 BattleTowerAction: ; 170687 ld a, [ScriptVar] 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] ; 170696 .jumptable: ; 170696 (5c:4696) dw Function17075f ; 0x00 dw Function170788 ; 0x01 dw Function170778 ; 0x02 dw Function170799 ; 0x03 dw Function17079d ; 0x04 dw Function1707ac ; 0x05 dw Function1707f4 ; 0x06 dw Function170868 ; 0x07 dw Function170881 ; 0x08 dw Function17089a ; 0x09 dw Function1708b1 ; 0x0a dw CheckMobileEventIndex ; 0x0b dw Function1708c8 ; 0x0c dw Function1708f0 ; 0x0d dw Function17093c ; 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 Function170ae8 ; 0x18 dw Function170b16 ; 0x19 dw ResetBattleTowerTrainersSRAM ; 0x1a dw Function1706ee ; 0x1b dw Function17071b ; 0x1c dw Function170729 ; 0x1d dw Function17073e ; 0x1e dw Function170737 ; 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 Function1706ee: ; 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, $3 ld [sBattleTowerChallengeState], a call CloseSRAM ret Function170729: ; 170729 (5c:4729) BattleTowerAction $1d ld a, BANK(sBattleTowerChallengeState) call GetSRAMBank ld a, $4 ld [sBattleTowerChallengeState], a call CloseSRAM ret Function170737: ; 170737 (5c:4737) BattleTowerAction $1e callba SaveOptions ret Function17073e: ; 17073e (5c:473e) BattleTowerAction $1f ; 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 Function17075f: ; 17075f (5c:475f) BattleTowerAction $00 call Function17089a ld a, [ScriptVar] and a ret z ld a, BANK(sbe4f) call GetSRAMBank ld a, [sbe4f] and $2 ld [ScriptVar], a call CloseSRAM ret Function170778: ; 170778 (5c:4778) BattleTowerAction $02 ld hl, sBattleTowerChallengeState ld a, BANK(sBattleTowerChallengeState) call GetSRAMBank ld a, [hl] ld [ScriptVar], a call CloseSRAM ret Function170788: ; 170788 (5c:4788) BattleTowerAction $01 ld a, BANK(sbe4f) call GetSRAMBank ld a, [sbe4f] or $2 ld [sbe4f], a call CloseSRAM ret Function170799: ; 170799 (5c:4799) BattleTowerAction $03 ld c, $1 jr asm_17079f Function17079d: ; 17079d (5c:479d) BattleTowerAction $04 ld c, $0 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, $8c 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 Function170868: ; 170868 (5c:4868) BattleTowerAction $07 ld a, BANK(sbe47) call GetSRAMBank ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a ld a, [wd000 + $800] ld [sbe47], a pop af ld [rSVBK], a call CloseSRAM ret Function170881: ; 170881 (5c:4881) BattleTowerAction $08 ld a, BANK(sbe47) call GetSRAMBank ld a, [rSVBK] push af ld a, $3 ld [rSVBK], a ld a, [sbe47] ld [wd000 + $800], a pop af ld [rSVBK], a call CloseSRAM ret Function17089a: ; 17089a BattleTowerAction $09 ld a, [wSaveFileExists] and a jr z, .nope callba Function14bcb 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 Function17093c: ; 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 ; wddff (aliases: PartyMonOT) ld de, $6 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 .asm_17096e push af ld a, [de] inc de cp [hl] inc hl jr nz, .asm_17099d pop af dec a jr nz, .asm_17096e rept 4 dec hl endr ld a, $50 rept 2 ld [hli], a endr pop hl ld a, EGG_TICKET ld [CurItem], a ld a, $1 ld [wItemQuantityChangeBuffer], a ld a, $ff ld [wd107], a ld hl, NumItems call TossItem ld a, $1 ld [ScriptVar], a ret .asm_17099d 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 rept 2 add hl, de endr 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 Function170a00 dw Function170a00 dw Function1709f3 dw Function1709f3 dw Function170a01 dw Function170a33 ; 1709f3 Function1709f3: ; 1709f3 ld a, $5 call GetSRAMBank ld a, $1 ld [$a800], a call CloseSRAM Function170a00: ; 170a00 ret ; 170a01 Function170a01: ; 170a01 ld a, $5 call GetSRAMBank ld hl, $b023 ld de, $c608 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 Function170a33: ; 170a33 ld a, $0 call GetSRAMBank ld hl, wRTC ld de, $c608 ld bc, $0004 call CopyBytes call CloseSRAM ld a, $5 call GetSRAMBank ld hl, $b08c ld de, $c608 ld c, $4 .asm_170a54 ld a, [de] inc de cp [hl] jr nz, .asm_170a78 inc hl dec c jr nz, .asm_170a54 call CloseSRAM ld a, [MapGroup] ld b, a ld a, [MapNumber] ld c, a call GetMapTrigger ld a, d or e jr z, .asm_170a72 ld a, [de] and a ret nz .asm_170a72 ld a, $1 ld [ScriptVar], a ret .asm_170a78 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, .asm_170a9b xor a ld [de], a .asm_170a9b 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 Function17089a ld a, [ScriptVar] and a ret z ld a, BANK(sbe4f) call GetSRAMBank ld a, [sbe4f] and $1 ld [ScriptVar], a call CloseSRAM ret Function170ad7: ; 170ad7 (5c:4ad7) BattleTowerAction $15 ld a, BANK(sbe4f) call GetSRAMBank ld a, [sbe4f] or $1 ld [sbe4f], a call CloseSRAM ret Function170ae8: ; 170ae8 (5c:4ae8) BattleTowerAction $18 ld a, $5 call GetSRAMBank ld a, [$b2fb] call CloseSRAM ld c, $a call SimpleDivide ld a, b ld [wcd4f], a xor a ld [ScriptVar], a callba Function119d93 ret nc ld a, $5 call GetSRAMBank ld a, [$b2fb] call CloseSRAM ld [ScriptVar], a ret Function170b16: ; 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 Function119dd1 ret nc ld a, $5 call GetSRAMBank ld a, [$b2fb] call CloseSRAM ld [ScriptVar], a ret