More battle tower shenanigans

This commit is contained in:
PikalaxALT
2015-12-08 16:06:13 -05:00
parent 0549e3413f
commit 5b7fc7b0fa
10 changed files with 359 additions and 224 deletions

View File

@@ -1,11 +1,11 @@
Function1700b0: ; 1700b0
call Bank5c_ClearJumptableRAM
call InitBattleTowerChallengeRAM
callba Function118121
ret
; 1700ba
Function1700ba: ; 1700ba
call Bank5c_ClearJumptableRAM
call InitBattleTowerChallengeRAM
callba Function11811a
ret
; 1700c4
@@ -53,7 +53,7 @@ Function1700c4: ; 1700c4
; 170114
Function170114: ; 170114
call Bank5c_ClearJumptableRAM
call InitBattleTowerChallengeRAM
call Function170121
callba Function11805f
ret
@@ -64,7 +64,7 @@ Function170121: ; 170121
call GetSRAMBank
ld hl, $a948
ld de, wMisc
ld bc, $00f6
ld bc, $00f6 ; 246
call CopyBytes
call CloseSRAM
call Function170c8b
@@ -183,7 +183,7 @@ Function170139: ; 170139
BattleTowerBattle: ; 170215
xor a
ld [wcf63], a
ld [wBattleTowerBattleEnded], a
call _BattleTowerBattle
ret
; 17021d
@@ -192,10 +192,10 @@ EmptySpecial_17021d: ; 17021d
ret
; 17021e
Bank5c_ClearJumptableRAM: ; 17021e
InitBattleTowerChallengeRAM: ; 17021e
xor a
ld [wcf63], a
ld [wcf64], a
ld [wBattleTowerBattleEnded], a
ld [wNrOfBeatenBattleTowerTrainers], a
ld [wcf65], a
ld [wcf66], a
ret
@@ -205,14 +205,14 @@ _BattleTowerBattle: ; 17022c
.loop
call .do_jumptable
call DelayFrame
ld a, [wcf63]
ld a, [wBattleTowerBattleEnded]
cp $1
jr nz, .loop
ret
; 17023a
.do_jumptable: ; 17023a
ld a, [wcf63]
ld a, [wBattleTowerBattleEnded]
ld e, a
ld d, 0
ld hl, .jumptable
@@ -259,10 +259,10 @@ RunBattleTowerTrainer: ; 17024d
ld a, BANK(sNrOfBeatenBattleTowerTrainers)
call GetSRAMBank
ld a, [sNrOfBeatenBattleTowerTrainers]
ld [wNrOfBeatenBattleTowerTrainers], a ; wcf64
ld [wNrOfBeatenBattleTowerTrainers], a
call CloseSRAM
ld hl, StringBuffer3
ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64
ld a, [wNrOfBeatenBattleTowerTrainers]
add "1"
ld [hli], a
ld a, "@"
@@ -274,7 +274,7 @@ RunBattleTowerTrainer: ; 17024d
pop af
ld [Options], a
ld a, $1
ld [wcf63], a
ld [wBattleTowerBattleEnded], a
ret
@@ -661,7 +661,7 @@ Function1704e1: ; 1704e1
; unreferenced special
call SpeechTextBox
call FadeToMenu
call Bank5c_ClearJumptableRAM
call InitBattleTowerChallengeRAM
call .JumptableLoop
call CloseSubmenu
ret
@@ -758,20 +758,20 @@ endr
ret
.pressed_up
ld a, [wcf64]
ld a, [wNrOfBeatenBattleTowerTrainers]
and a
ret z
sub 15
ld [wcf64], a
ld [wNrOfBeatenBattleTowerTrainers], a
call .PlaceTextItems
ret
.pressed_down
ld a, [wcf64]
ld a, [wNrOfBeatenBattleTowerTrainers]
cp 60
ret z
add 15
ld [wcf64], a
ld [wNrOfBeatenBattleTowerTrainers], a
call .PlaceTextItems
ret
@@ -834,7 +834,7 @@ endr
ld a, $50
ld [wcd4e], a
ld hl, wMisc
ld a, [wcf64]
ld a, [wNrOfBeatenBattleTowerTrainers]
ld c, a
xor a
ld b, a
@@ -916,7 +916,7 @@ endr
; 17065d
.PlaceUpDownArrows: ; 17065d
ld a, [wcf64]
ld a, [wNrOfBeatenBattleTowerTrainers]
and a
jr z, .nope
hlcoord 18, 5
@@ -924,7 +924,7 @@ endr
ld [hl], a
.nope
ld a, [wcf64]
ld a, [wNrOfBeatenBattleTowerTrainers]
cp 60
ret z
hlcoord 18, 16
@@ -984,11 +984,11 @@ endr
dw Function170ae8 ; 0x18
dw Function170b16 ; 0x19
dw ResetBattleTowerTrainersSRAM ; 0x1a
dw Function1706ee ; 0x1b
dw BattleTower_GiveReward ; 0x1b
dw Function17071b ; 0x1c
dw Function170729 ; 0x1d
dw BattleTower_RandomlyChooseReward ; 0x1e
dw Function170737 ; 0x1f
dw BattleTower_SaveOptions ; 0x1f
; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes)
@@ -1008,7 +1008,7 @@ ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a
ret
Function1706ee: ; 1706ee (5c:46ee) BattleTowerAction $1b
BattleTower_GiveReward: ; 1706ee (5c:46ee) BattleTowerAction $1b
ld a, BANK(sBattleTowerReward)
call GetSRAMBank
@@ -1053,11 +1053,11 @@ Function170729: ; 170729 (5c:4729) BattleTowerAction $1d
call CloseSRAM
ret
Function170737: ; 170737 (5c:4737) BattleTowerAction $1e
BattleTower_SaveOptions: ; 170737 (5c:4737) BattleTowerAction $1f
callba SaveOptions
ret
BattleTower_RandomlyChooseReward: ; 17073e (5c:473e) BattleTowerAction $1f
BattleTower_RandomlyChooseReward: ; 17073e (5c:473e) BattleTowerAction $1e
; Generate a random stat boosting item.
.loop
call Random
@@ -1646,3 +1646,134 @@ Function170b16: ; 170b16 (5c:4b16) BattleTowerAction $19
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

File diff suppressed because it is too large Load Diff

View File

@@ -34,6 +34,7 @@ Function170000: ; 170000
ld bc, $008f
call CopyBytes
ret
; 17005a
Function17005a: ; 17005a
@@ -71,85 +72,11 @@ Function17005a: ; 17005a
ld [wc74e], a
call CloseSRAM
ret
; 1700b0
INCLUDE "misc/battle_tower_5c.asm"
Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44
callba Function_LoadOpponentTrainerAndPokemons
ld a, [rSVBK]
push af
ld a, $3
ld [rSVBK], a
ld hl, wd10a
ld a, [hl]
dec a
ld c, a
ld b, $0
pop af
ld [rSVBK], a
ld hl, Unknown_170b90
add hl, bc
ld a, [hl]
ld [wcd49], 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, [wcd49]
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
Unknown_170b90:
db $12, $13, $14, $15, $18, $17
db $16, $19, $04, $05, $11, $01
db $1c, $1b, $21, $1e, $1a, $1d
db $1f, $3c, $20, $27, $27, $27
db $28, $0a, $23, $24, $2a, $2b
db $35, $40, $2a, $29, $22, $25
db $3a, $2b, $24, $49, $2b, $07
db $2c, $2d, $4a, $0d, $4b, $3a
db $2b, $41, $35, $27, $28, $27
db $36, $3e, $30, $2c, $2d, $3d
db $26, $2e, $06, $07, $43, $36
Function170bd2: ; 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
Function170be4: ; 170be4
ld a, $5
call GetSRAMBank
@@ -159,6 +86,7 @@ Function170be4: ; 170be4
call ByteFill
call CloseSRAM
ret
; 170bf7
Clears5_a89a: ; 170bf7
@@ -170,6 +98,7 @@ Clears5_a89a: ; 170bf7
ld [hl], a
call CloseSRAM
ret
; 170c06
Function170c06: ; 170c06
@@ -275,6 +204,7 @@ endr
ld [hl], a
call CloseSRAM
ret
; 170c8b
Function170c8b: ; 170c8b
@@ -287,6 +217,7 @@ Function170c8b: ; 170c8b
dec b
jr nz, .asm_170c90
ret
; 170c98
CheckBTMonMovesForErrors: ; 170c98
@@ -330,6 +261,7 @@ CheckBTMonMovesForErrors: ; 170c98
dec c
jr nz, .loop
ret
; 170cc6
Function170cc6: ; 170cc6
@@ -338,7 +270,7 @@ Function170cc6: ; 170cc6
ld a, $6
ld [rSVBK], a
ld hl, LZ_170d16
ld de, wd000
ld de, wBackupTilemap
call Decompress
ld a, $1
ld [rVBK], a
@@ -358,6 +290,7 @@ Function170cc6: ; 170cc6
pop af
ld [rSVBK], a
ret
; 170d02
Function170d02: ; 170d02
@@ -370,6 +303,7 @@ Function170d02: ; 170d02
xor a
ld [rVBK], a
ret
; 170d16
LZ_170d16:
@@ -417,15 +351,16 @@ Function1719ed: ; 1719ed (5c:59ed)
ret
Function171a11: ; 171a11 (5c:5a11)
.loop
call JoyTextDelay
ld a, [wcd49]
bit 7, a
jr nz, .asm_171a2c
jr nz, .done
call Function171a36
callba PlaySpriteAnimations
callba ReloadMapPart
jr Function171a11
.asm_171a2c
jr .loop
.done
callba ClearSpriteAnims
call ClearSprites
ret
@@ -465,6 +400,7 @@ Function171a5d: ; 171a5d (5c:5a5d)
bit 0, a
ret nz
jp Function171c66
.asm_171a6a
ld a, $0
call Function3e32
@@ -492,6 +428,7 @@ Function171a95: ; 171a95 (5c:5a95)
ld de, String_171aa7
call PlaceString
jp Function171c66
; 171aa7 (5c:5aa7)
String_171aa7: ; 171aa7
@@ -626,6 +563,7 @@ Function171b9f: ; 171b9f (5c:5b9f)
ld a, $80
ld [wcd49], a
ret
asm_171ba5: ; 171ba5 (5c:5ba5)
ld a, [wcd4a]
and a
@@ -633,6 +571,7 @@ asm_171ba5: ; 171ba5 (5c:5ba5)
dec a
ld [wcd4a], a
ret
asm_171baf: ; 171baf (5c:5baf)
ld a, [wcd4b]
ld c, a
@@ -729,6 +668,7 @@ Function171c66: ; 171c66 (5c:5c66)
ld hl, wcd49
inc [hl]
ret
; 171c6b (5c:5c6b)
MenuDataHeader_171c6b: ; 171c6b
@@ -807,6 +747,7 @@ endr
hlcoord 3, 16
ld de, String_172e3f
jp PlaceString
.asm_171d16
ld hl, Tilemap_1725f9
decoord 0, 7
@@ -841,6 +782,7 @@ Function171d2b: ; 171d2b (5c:5d2b)
ld de, String_172e58
call PlaceString
ret
; 171d71 (5c:5d71)
Palette_171d71:
@@ -931,6 +873,7 @@ Function172e78: ; 172e78 (5c:6e78)
ld bc, $168
call CopyBytes
ret
; 172eb9 (5c:6eb9)
Function172eb9:
@@ -950,6 +893,7 @@ Function172eb9:
pop af
ld [rSVBK], a
ret
; 172edf (5c:6edf)
Palette_172edf: