mirror of
https://github.com/pret/pokeyellow.git
synced 2026-09-28 20:27:21 -05:00
Add FightDebugMenu labels and battle class constants (#165)
This commit is contained in:
@@ -2690,10 +2690,10 @@ SelectMenuItem:
|
||||
call PlaceString
|
||||
jr .select
|
||||
.battleselect
|
||||
; Hide move swap cursor in TestBattle.
|
||||
; Hide move swap cursor in FightDebugMenu.
|
||||
ld a, [wStatusFlags7]
|
||||
bit BIT_TEST_BATTLE, a
|
||||
; This causes PrintMenuItem to not run in TestBattle.
|
||||
; This causes PrintMenuItem to not run in FightDebugMenu.
|
||||
; MoveSelectionMenu still draws part of its window, an issue
|
||||
; which did not seem to exist in the Japanese versions.
|
||||
jr nz, .select
|
||||
@@ -6148,7 +6148,7 @@ GetCurrentMove:
|
||||
jr .selected
|
||||
.player
|
||||
ld de, wPlayerMoveNum
|
||||
; Apply InitBattleVariables to TestBattle.
|
||||
; Apply InitBattleVariables to FightDebugMenu.
|
||||
ld a, [wStatusFlags7]
|
||||
bit BIT_TEST_BATTLE, a
|
||||
ld a, [wTestBattlePlayerSelectedMove]
|
||||
|
||||
@@ -47,7 +47,7 @@ InitBattleCommon:
|
||||
predef CopyUncompressedPicToTilemap
|
||||
ld a, $ff
|
||||
ld [wEnemyMonPartyPos], a
|
||||
ld a, $2
|
||||
ld a, TRAINER_BATTLE
|
||||
ld [wIsInBattle], a
|
||||
|
||||
; Is this a major story battle?
|
||||
@@ -58,7 +58,7 @@ InitBattleCommon:
|
||||
jp _InitBattleCommon
|
||||
|
||||
InitWildBattle:
|
||||
ld a, $1
|
||||
ld a, WILD_BATTLE
|
||||
ld [wIsInBattle], a
|
||||
callfar LoadEnemyMonData
|
||||
callfar DoBattleTransitionAndInitBattleVariables
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
892
engine/debug/fight_debug_menu.asm
Normal file
892
engine/debug/fight_debug_menu.asm
Normal file
@@ -0,0 +1,892 @@
|
||||
FightDebugMenu:
|
||||
ld a, 1
|
||||
ldh [hJoy7], a
|
||||
|
||||
; Don't mess around with obedience.
|
||||
ld a, 1 << BIT_EARTHBADGE
|
||||
ld [wObtainedBadges], a
|
||||
|
||||
ld hl, wStatusFlags7
|
||||
set BIT_TEST_BATTLE, [hl]
|
||||
|
||||
ld hl, wNumBagItems
|
||||
ld de, .ItemTable
|
||||
.loop
|
||||
ld a, [de]
|
||||
cp -1
|
||||
jr z, .done
|
||||
inc de
|
||||
ld [wCurItem], a
|
||||
ld a, [de]
|
||||
inc de
|
||||
ld [wItemQuantity], a
|
||||
push de
|
||||
call AddItemToInventory
|
||||
pop de
|
||||
jr .loop
|
||||
.done
|
||||
call LoadHpBarAndStatusTilePatterns
|
||||
call ClearScreen
|
||||
call ClearSprites
|
||||
hlcoord 0, 0
|
||||
lb bc, 1, 18
|
||||
call TextBoxBorder
|
||||
hlcoord 6, 1
|
||||
ld de, .FightTestText
|
||||
call PlaceString
|
||||
hlcoord 4, 4
|
||||
ld de, .NumNameLevelText
|
||||
call PlaceString
|
||||
hlcoord 1, 6
|
||||
ld de, .LayoutText
|
||||
call PlaceString
|
||||
xor a
|
||||
ld [wWhichPokemon], a
|
||||
ld [wEnemyMon], a
|
||||
ld [wEnemyMonLevel], a
|
||||
ld [wTrainerClass], a
|
||||
ld [wLinkEnemyTrainerName + 2], a
|
||||
ld b, a
|
||||
ld c, a
|
||||
ld hl, wEnemyPartySpecies
|
||||
call .ClearMonsData
|
||||
ld hl, wPartyCount
|
||||
call .ClearMonsData
|
||||
ld de, wPartySpecies
|
||||
hlcoord 4, 6
|
||||
; fallthrough
|
||||
.MonsNumber:
|
||||
push hl ; monster number print position
|
||||
push bc ; b = monster number c = level
|
||||
dec hl
|
||||
ld a, '▶'
|
||||
ld [hl], a
|
||||
ld bc, NAME_LENGTH
|
||||
add hl, bc
|
||||
ld a, ' '
|
||||
ld [hl], a
|
||||
push de
|
||||
pop de
|
||||
pop bc ; b = monster number c = level
|
||||
pop hl ; monster number print position
|
||||
; fallthrough
|
||||
.MonsNumberLoop:
|
||||
push bc ; b = monster number c = level
|
||||
push de
|
||||
call JoypadLowSensitivity
|
||||
pop de
|
||||
pop bc ; b = monster number c = level
|
||||
ldh a, [hJoy5]
|
||||
bit B_PAD_A, a
|
||||
jp nz, .CountUp
|
||||
bit B_PAD_B, a
|
||||
jp nz, .CountDown
|
||||
bit B_PAD_SELECT, a
|
||||
jp nz, DebugMenu
|
||||
bit B_PAD_START, a
|
||||
jp nz, .EnemySet
|
||||
bit B_PAD_RIGHT, a
|
||||
jp nz, .MonsLevel
|
||||
bit B_PAD_UP, a
|
||||
jp nz, .BeforeMons
|
||||
bit B_PAD_DOWN, a
|
||||
jp nz, .NextMons
|
||||
jr .MonsNumberLoop
|
||||
|
||||
.ClearMonsData:
|
||||
xor a
|
||||
rept PARTY_LENGTH
|
||||
ld [hli], a
|
||||
endr
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
.CountUp:
|
||||
inc b ; monster number
|
||||
ld a, b
|
||||
cp NUM_POKEMON_INDEXES + 1
|
||||
jr c, .CountUp_1
|
||||
xor a
|
||||
ld b, a
|
||||
; fallthrough
|
||||
.CountUp_1:
|
||||
ld [de], a
|
||||
ld [wTempByteValue], a
|
||||
push bc
|
||||
push hl
|
||||
push de
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
|
||||
call PrintNumber
|
||||
inc hl
|
||||
push hl
|
||||
ld de, .5SpacesText
|
||||
call PlaceString
|
||||
ld bc, -SCREEN_WIDTH
|
||||
add hl, bc
|
||||
ld de, .5SpacesText
|
||||
call PlaceString
|
||||
pop hl
|
||||
ld a, [wNamedObjectIndex]
|
||||
and a
|
||||
jr nz, .CountUp_2
|
||||
|
||||
ld de, .5DashesText
|
||||
jr .CountUp_3
|
||||
.CountUp_2
|
||||
call GetMonName
|
||||
.CountUp_3
|
||||
call PlaceString
|
||||
pop de
|
||||
pop hl
|
||||
pop bc
|
||||
jr .MonsNumberLoop
|
||||
|
||||
.CountDown:
|
||||
dec b ; monster number
|
||||
ld a, b
|
||||
cp OPP_ID_OFFSET + 1
|
||||
jp c, .CountUp_1
|
||||
ld a, NUM_POKEMON_INDEXES
|
||||
ld b, a
|
||||
jp .CountUp_1
|
||||
|
||||
.BeforeMons:
|
||||
ld a, [wWhichPokemon]
|
||||
dec a
|
||||
cp -1
|
||||
jp z, .MonsNumberLoop
|
||||
ld [wWhichPokemon], a
|
||||
dec de
|
||||
dec hl
|
||||
ld a, ' '
|
||||
ld [hl], a
|
||||
push bc
|
||||
ld bc, -SCREEN_WIDTH * 2
|
||||
add hl, bc
|
||||
pop bc
|
||||
ld a, '▶'
|
||||
ld [hl], a
|
||||
inc hl
|
||||
push hl
|
||||
call .PositionMove
|
||||
pop hl
|
||||
jp .MonsNumberLoop
|
||||
|
||||
.NextMons:
|
||||
ld a, [wWhichPokemon]
|
||||
inc a
|
||||
cp PARTY_LENGTH
|
||||
jp nc, .MonsNumberLoop
|
||||
ld [wWhichPokemon], a
|
||||
inc de
|
||||
dec hl
|
||||
ld a, ' '
|
||||
ld [hl], a
|
||||
ld bc, SCREEN_WIDTH * 2
|
||||
add hl, bc
|
||||
ld a, '▶'
|
||||
ld [hl], a
|
||||
inc hl
|
||||
push hl
|
||||
call .PositionMove
|
||||
pop hl
|
||||
jp .MonsNumberLoop
|
||||
|
||||
.MonsLevel:
|
||||
push hl ; monster number print posision
|
||||
push bc ; b = monster number c = level
|
||||
dec hl
|
||||
ld a, ' '
|
||||
ld [hl], a
|
||||
ld bc, NAME_LENGTH
|
||||
add hl, bc
|
||||
ld a, '▶'
|
||||
ld [hl], a
|
||||
pop bc ; b = monster number c = level
|
||||
pop hl ; monster number print posision
|
||||
; fallthrough
|
||||
.MonsLevelLoop:
|
||||
push bc ; b = monster number c = level
|
||||
push de
|
||||
call JoypadLowSensitivity
|
||||
pop de
|
||||
pop bc ; b = monster number c = level
|
||||
ldh a, [hJoy5]
|
||||
bit B_PAD_A, a
|
||||
jp nz, .LevelCountUp
|
||||
bit B_PAD_B, a
|
||||
jp nz, .LevelCountDown
|
||||
bit B_PAD_START, a
|
||||
jp nz, .EnemySet
|
||||
bit B_PAD_LEFT, a
|
||||
jp nz, .MonsNumber
|
||||
bit B_PAD_UP, a
|
||||
jp nz, .LevelBeforeMons
|
||||
bit B_PAD_DOWN, a
|
||||
jp nz, .LevelNextMons
|
||||
jr .MonsLevelLoop
|
||||
|
||||
.LevelCountUp:
|
||||
inc c ; monster level
|
||||
ld a, c
|
||||
cp MAX_LEVEL + 1
|
||||
jr c, .LevelCountUp_1
|
||||
ld a, 1
|
||||
ld c, a
|
||||
; fallthrough
|
||||
.LevelCountUp_1:
|
||||
ld a, [wWhichPokemon]
|
||||
push de
|
||||
ld de, wEnemyPartySpecies
|
||||
add e
|
||||
ld e, a
|
||||
jr nc, .LevelCountUp_2
|
||||
inc d
|
||||
.LevelCountUp_2
|
||||
ld a, c
|
||||
ld [de], a
|
||||
push bc ; b = monster No. c = level
|
||||
push hl ; monster number print posision
|
||||
ld bc, NAME_LENGTH
|
||||
add hl, bc ; level print position
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
|
||||
pop hl ; monster number print position
|
||||
pop bc ; b = monster No. c = level
|
||||
pop de
|
||||
jp .MonsLevelLoop
|
||||
.LevelCountDown:
|
||||
dec c ; monster level
|
||||
ld a, c
|
||||
cp MAX_LEVEL + 1
|
||||
jr nc, .LevelCountDown_1
|
||||
and a
|
||||
jp nz, .LevelCountUp_1
|
||||
.LevelCountDown_1
|
||||
ld a, MAX_LEVEL
|
||||
ld c, a
|
||||
jp .LevelCountUp_1
|
||||
|
||||
.LevelBeforeMons:
|
||||
ld a, [wWhichPokemon]
|
||||
dec a
|
||||
cp -1
|
||||
jp z, .MonsLevelLoop
|
||||
ld [wWhichPokemon], a
|
||||
dec de
|
||||
push hl ; monster number print position
|
||||
ld bc, NAME_LENGTH - 1
|
||||
add hl, bc
|
||||
ld a, ' '
|
||||
ld [hl], a
|
||||
pop hl
|
||||
ld bc, -SCREEN_WIDTH * 2
|
||||
add hl, bc
|
||||
push hl
|
||||
ld bc, NAME_LENGTH - 1
|
||||
add hl, bc
|
||||
ld a, '▶'
|
||||
ld [hl], a
|
||||
call .PositionMove
|
||||
pop hl ; monster number print position
|
||||
jp .MonsLevelLoop
|
||||
|
||||
.LevelNextMons:
|
||||
ld a, [wWhichPokemon]
|
||||
inc a
|
||||
cp PARTY_LENGTH
|
||||
jp nc, .MonsLevelLoop
|
||||
ld [wWhichPokemon], a
|
||||
inc de
|
||||
push hl ; monster number print position
|
||||
ld bc, NAME_LENGTH - 1
|
||||
add hl, bc
|
||||
ld a, ' '
|
||||
ld [hl], a
|
||||
pop hl
|
||||
ld bc, SCREEN_WIDTH * 2
|
||||
add hl, bc
|
||||
push hl
|
||||
ld bc, NAME_LENGTH - 1
|
||||
add hl, bc
|
||||
ld a, '▶'
|
||||
ld [hl], a
|
||||
call .PositionMove
|
||||
pop hl ; monster number print position
|
||||
jp .MonsLevelLoop
|
||||
|
||||
.PositionMove:
|
||||
ld hl, wPartySpecies
|
||||
ld a, [wWhichPokemon]
|
||||
add l
|
||||
ld l, a
|
||||
jr nc, .PositionMove_1
|
||||
inc h
|
||||
.PositionMove_1
|
||||
ld a, [hl] ; monster number
|
||||
ld b, a
|
||||
ld hl, wEnemyPartySpecies
|
||||
ld a, [wWhichPokemon]
|
||||
add l
|
||||
ld l, a
|
||||
jr nc, .PositionMove_2
|
||||
inc h
|
||||
.PositionMove_2
|
||||
ld a, [hl] ; monster level
|
||||
ld c, a
|
||||
ret
|
||||
|
||||
.EnemySet:
|
||||
ld hl, wPartyCount
|
||||
ld de, wEnemyPartyCount ; level saved
|
||||
xor a
|
||||
ld [hl], a
|
||||
inc hl
|
||||
ld a, [hli] ; first monster number
|
||||
ld b, a
|
||||
ld c, PARTY_LENGTH
|
||||
xor a
|
||||
ld [wIsInBattle], a
|
||||
|
||||
.EnemySet_1
|
||||
ld a, b ; monster number
|
||||
ld [wCurPartySpecies], a
|
||||
ld a, [hl] ; next monster number
|
||||
ld b, a
|
||||
inc de
|
||||
ld a, [de] ; level
|
||||
and a
|
||||
jr z, .EnemySet_2
|
||||
|
||||
ld [wCurEnemyLevel], a
|
||||
xor a
|
||||
ld [wMonDataLocation], a ; 0 = none
|
||||
ld a, [wCurPartySpecies]
|
||||
and a
|
||||
jr z, .EnemySet_2
|
||||
|
||||
call AddPartyMon
|
||||
.EnemySet_2
|
||||
inc hl
|
||||
dec c
|
||||
jr nz, .EnemySet_1
|
||||
|
||||
ld b, PARTY_LENGTH + 1
|
||||
ld hl, wPartySpecies
|
||||
ld de, wEnemyPartyCount
|
||||
|
||||
.EnemySet_2_0
|
||||
inc de
|
||||
dec b
|
||||
jp z, FightDebugMenu
|
||||
ld a, [hli]
|
||||
and a
|
||||
jr z, .EnemySet_2_0
|
||||
ld a, [de]
|
||||
and a
|
||||
jr z, .EnemySet_2_0
|
||||
|
||||
hlcoord 0, 3
|
||||
lb bc, 15, 20
|
||||
call ClearScreenArea
|
||||
hlcoord 0, 3
|
||||
lb bc, 15, 20
|
||||
call ClearScreenArea
|
||||
hlcoord 0, 3
|
||||
lb bc, 15, 20
|
||||
call ClearScreenArea
|
||||
|
||||
ld c, 20
|
||||
call DelayFrames
|
||||
|
||||
ld a, WILD_BATTLE
|
||||
ld [wIsInBattle], a
|
||||
ld de, .WildPokemonText
|
||||
ld a, [wLinkEnemyTrainerName + 2]
|
||||
cp MAX_LEVEL + 1
|
||||
jr c, .EnemySet_2_1
|
||||
ld a, TRAINER_BATTLE
|
||||
ld [wIsInBattle], a
|
||||
ld de, .TrainerText
|
||||
|
||||
.EnemySet_2_1
|
||||
hlcoord 1, 4
|
||||
call PlaceString
|
||||
hlcoord 1, 6
|
||||
ld de, .EnemyNumNameLevelText
|
||||
call PlaceString
|
||||
|
||||
ld a, [wEnemyMon]
|
||||
ld b, a
|
||||
ld a, [wIsInBattle]
|
||||
dec a
|
||||
jr z, .EnemySet_3
|
||||
|
||||
ld a, [wTrainerClass]
|
||||
ld [wTempByteValue], a
|
||||
ld b, a
|
||||
ld de, wTempByteValue
|
||||
hlcoord 1, 8
|
||||
push bc
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
hlcoord 5, 8
|
||||
ld de, .10SpacesText
|
||||
call PlaceString
|
||||
call GetTrainerName
|
||||
hlcoord 5, 8
|
||||
ld de, wTrainerName
|
||||
call PlaceString
|
||||
pop bc
|
||||
jr .EnemySet_4
|
||||
|
||||
.EnemySet_3
|
||||
ld a, b
|
||||
and a
|
||||
jr z, .EnemySet_4
|
||||
|
||||
ld de, wTempByteValue
|
||||
ld [de], a
|
||||
hlcoord 1, 8
|
||||
push bc
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
|
||||
hlcoord 5, 8
|
||||
ld de, .10SpacesText
|
||||
call PlaceString
|
||||
|
||||
call GetMonName
|
||||
hlcoord 5, 8
|
||||
call PlaceString
|
||||
pop bc
|
||||
|
||||
.EnemySet_4
|
||||
ld a, [wEnemyMonLevel]
|
||||
ld c, a ; level
|
||||
ld de, wTempByteValue
|
||||
ld [de], a
|
||||
hlcoord 16, 8
|
||||
push bc
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
pop bc
|
||||
; fallthrough
|
||||
.EnemyType:
|
||||
ld a, ' '
|
||||
ldcoord_a 0, 8
|
||||
ldcoord_a 15, 8
|
||||
ld a, '▶'
|
||||
ldcoord_a 0, 4
|
||||
; fallthrough
|
||||
.EnemyTypeLoop:
|
||||
push bc ; b = monster number c = level
|
||||
call JoypadLowSensitivity
|
||||
pop bc ; b = monster number c = level
|
||||
ldh a, [hJoy5]
|
||||
bit B_PAD_A, a
|
||||
jp nz, .TypeChange
|
||||
bit B_PAD_START, a
|
||||
jp nz, .GoFight
|
||||
bit B_PAD_DOWN, a
|
||||
jp nz, .EnemyMons
|
||||
jr .EnemyTypeLoop
|
||||
|
||||
.TypeChange:
|
||||
hlcoord 1, 8
|
||||
ld de, .EnemyLayoutText
|
||||
call PlaceString
|
||||
hlcoord 5, 7
|
||||
ld de, .10SpacesText
|
||||
call PlaceString
|
||||
|
||||
xor a
|
||||
ld b, a ; monster or trainer number
|
||||
ld c, a ; monster or trainer level
|
||||
ld a, [wIsInBattle]
|
||||
dec a
|
||||
jr nz, .TypeChange_1
|
||||
|
||||
ld a, TRAINER_BATTLE
|
||||
ld [wIsInBattle], a
|
||||
ld a, ' '
|
||||
ldcoord_a 4, 3
|
||||
hlcoord 1, 4
|
||||
ld de, .TrainerText
|
||||
call PlaceString
|
||||
|
||||
jp .EnemyTypeLoop
|
||||
|
||||
.TypeChange_1
|
||||
ld a, 1
|
||||
ld [wIsInBattle], a
|
||||
ld a, ' '
|
||||
ldcoord_a 1, 3
|
||||
hlcoord 1, 4
|
||||
ld de, .WildPokemonText
|
||||
call PlaceString
|
||||
|
||||
jp .EnemyTypeLoop
|
||||
|
||||
.EnemyMons:
|
||||
ld a, '▶'
|
||||
ldcoord_a 0, 8
|
||||
ld a, ' '
|
||||
ldcoord_a 15, 8
|
||||
ldcoord_a 0, 4
|
||||
; fallthrough
|
||||
.EnemyMonsLoop:
|
||||
push bc ; b = monster number c = level
|
||||
call JoypadLowSensitivity
|
||||
pop bc ; b = monster number c = level
|
||||
ldh a, [hJoy5]
|
||||
bit B_PAD_A, a
|
||||
jp nz, .EnemyMonsCountUp
|
||||
bit B_PAD_B, a
|
||||
jp nz, .EnemyMonsCountDown
|
||||
bit B_PAD_START, a
|
||||
jp nz, .GoFight
|
||||
bit B_PAD_RIGHT, a
|
||||
jp nz, .EnemyLevel
|
||||
bit B_PAD_UP, a
|
||||
jp nz, .EnemyType
|
||||
jr .EnemyMonsLoop
|
||||
|
||||
.EnemyMonsCountUp:
|
||||
push bc ; b = monster number c = level
|
||||
hlcoord 5, 7
|
||||
ld de, .10SpacesText
|
||||
call PlaceString
|
||||
hlcoord 5, 8
|
||||
ld de, .10SpacesText
|
||||
call PlaceString
|
||||
pop bc ; b = monster number c = level
|
||||
ld a, [wIsInBattle]
|
||||
dec a
|
||||
jr z, .MonsCountUp
|
||||
inc b ; trainer number
|
||||
ld a, b
|
||||
cp NUM_TRAINERS + 1
|
||||
jr c, .TrainerCountUp
|
||||
|
||||
ld b, 1
|
||||
; fallthrough
|
||||
.TrainerCountUp:
|
||||
ld a, b
|
||||
ld [wTempByteValue], a ; trainer number
|
||||
ld de, wTempByteValue
|
||||
hlcoord 1, 8
|
||||
push bc ; b = monster number c = level
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
ld a, [wTempByteValue]
|
||||
ld [wTrainerClass], a
|
||||
call GetTrainerName
|
||||
hlcoord 5, 8
|
||||
ld de, wTrainerName
|
||||
call PlaceString
|
||||
|
||||
pop bc ; b = monster number c = level
|
||||
jp .EnemyMonsLoop
|
||||
.MonsCountUp
|
||||
inc b
|
||||
ld a, b
|
||||
cp NUM_POKEMON_INDEXES + 1
|
||||
jr c, .MonsCountUp_1
|
||||
|
||||
ld b, 1
|
||||
; fallthrough
|
||||
.MonsCountUp_1:
|
||||
ld a, b
|
||||
ld [wTempByteValue], a
|
||||
ld de, wTempByteValue
|
||||
hlcoord 1, 8
|
||||
push bc
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
call GetMonName
|
||||
hlcoord 5, 8
|
||||
call PlaceString
|
||||
|
||||
pop bc
|
||||
jp .EnemyMonsLoop
|
||||
|
||||
.EnemyMonsCountDown:
|
||||
push bc
|
||||
hlcoord 5, 7
|
||||
ld de, .10SpacesText
|
||||
call PlaceString
|
||||
hlcoord 5, 8
|
||||
ld de, .10SpacesText
|
||||
call PlaceString
|
||||
pop bc
|
||||
|
||||
ld a, [wIsInBattle]
|
||||
dec a
|
||||
jr z, .MonsCountDown
|
||||
|
||||
dec b
|
||||
ld a, b
|
||||
cp NUM_TRAINERS + 1
|
||||
jr nc, .TrainerCountDown
|
||||
and a
|
||||
jp nz, .TrainerCountUp
|
||||
|
||||
.TrainerCountDown
|
||||
ld b, NUM_TRAINERS
|
||||
jp .TrainerCountUp
|
||||
|
||||
.MonsCountDown
|
||||
dec b ; monster number
|
||||
ld a, b
|
||||
cp NUM_POKEMON_INDEXES + 1
|
||||
jr nc, .MonsCountDown_1
|
||||
and a
|
||||
jp nz, .MonsCountUp_1
|
||||
.MonsCountDown_1
|
||||
ld b, NUM_POKEMON_INDEXES ; monster number
|
||||
jp .MonsCountUp_1
|
||||
|
||||
.EnemyLevel:
|
||||
ld a, ' '
|
||||
ldcoord_a 0, 8
|
||||
ld a, '▶'
|
||||
ldcoord_a 15, 8
|
||||
; fallthrough
|
||||
.EnemyLevelLoop:
|
||||
push bc ; b = monster number c = level
|
||||
call JoypadLowSensitivity
|
||||
pop bc ; b = monster number c = level
|
||||
ldh a, [hJoy5]
|
||||
bit B_PAD_A, a
|
||||
jp nz, .EnemyLevelCountUp
|
||||
bit B_PAD_B, a
|
||||
jp nz, .EnemyLevelCountDown
|
||||
bit B_PAD_START, a
|
||||
jp nz, .GoFight
|
||||
bit B_PAD_LEFT, a
|
||||
jp nz, .EnemyMons
|
||||
bit B_PAD_UP, a
|
||||
jp nz, .EnemyType
|
||||
jr .EnemyLevelLoop
|
||||
|
||||
.EnemyLevelCountUp:
|
||||
inc c ; level
|
||||
ld a, c
|
||||
cp MAX_LEVEL + 1
|
||||
jr c, .EnemyLevelCountUp_1
|
||||
|
||||
ld c, 1
|
||||
|
||||
.EnemyLevelCountUp_1:
|
||||
hlcoord 16, 8
|
||||
ld a, c
|
||||
ld de, wCurEnemyLevel
|
||||
ld [de], a
|
||||
push bc
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
pop bc
|
||||
jp .EnemyLevelLoop
|
||||
|
||||
.EnemyLevelCountDown:
|
||||
dec c ; level
|
||||
ld a, c
|
||||
cp MAX_LEVEL + 1
|
||||
jr nc, .EnemyLevelCountDown_1
|
||||
and a
|
||||
jp nz, .EnemyLevelCountUp_1
|
||||
|
||||
.EnemyLevelCountDown_1
|
||||
ld c, MAX_LEVEL
|
||||
jp .EnemyLevelCountUp_1
|
||||
|
||||
.GoFight:
|
||||
ld a, b
|
||||
and a
|
||||
jp z, .EnemyType
|
||||
ld a, c
|
||||
and a
|
||||
jp z, .EnemyType
|
||||
|
||||
ld a, [wIsInBattle]
|
||||
dec a
|
||||
jr z, .GoFight_1
|
||||
|
||||
ld a, b ; trainer number
|
||||
add OPP_ID_OFFSET
|
||||
ld b, a
|
||||
ld a, c
|
||||
ld [wTrainerNo], a
|
||||
.GoFight_1
|
||||
ld a, c
|
||||
ld [wCurEnemyLevel], a
|
||||
ld a, b
|
||||
ld [wCurOpponent], a
|
||||
|
||||
xor a
|
||||
ld [wStatusFlags3], a
|
||||
predef InitOpponent
|
||||
|
||||
xor a
|
||||
ld [wNumRunAttempts], a
|
||||
|
||||
ld hl, wPlayerStatsToDouble
|
||||
ld bc, wPlayerBattleStatusEnd - wPlayerStatsToDouble
|
||||
call FillMemory
|
||||
|
||||
ld hl, wEnemyStatsToDouble
|
||||
ld bc, wEnemyBattleStatusEnd - wEnemyStatsToDouble
|
||||
call FillMemory
|
||||
|
||||
call LoadFontTilePatterns
|
||||
call ClearScreen
|
||||
call ClearSprites
|
||||
ld a, %11100100
|
||||
ldh [rBGP], a
|
||||
ldh [rOBP0], a
|
||||
ldh [rOBP1], a
|
||||
call UpdateCGBPal_BGP
|
||||
call UpdateCGBPal_OBP0
|
||||
call UpdateCGBPal_OBP1
|
||||
hlcoord 0, 0
|
||||
lb bc, 1, 18
|
||||
call TextBoxBorder
|
||||
hlcoord 6, 1
|
||||
ld de, .FightTestText
|
||||
call PlaceString
|
||||
|
||||
hlcoord 4, 4
|
||||
ld de, .NumNameLevelText
|
||||
call PlaceString
|
||||
|
||||
hlcoord 1, 6
|
||||
ld de, .LayoutText
|
||||
call PlaceString
|
||||
|
||||
ld de, wPartyCount
|
||||
xor a
|
||||
ld [de], a
|
||||
ld [wWhichPokemon], a
|
||||
inc de
|
||||
hlcoord 4, 6
|
||||
|
||||
push de
|
||||
push hl
|
||||
; fallthrough
|
||||
.GoFight_2:
|
||||
ld a, [wWhichPokemon]
|
||||
ld de, wPartySpecies
|
||||
add e
|
||||
ld e, a
|
||||
jr nc, .GoFight_3
|
||||
inc d
|
||||
|
||||
.GoFight_3
|
||||
ld a, [de]
|
||||
cp -1
|
||||
jp z, .GoFight_5
|
||||
|
||||
ld [wTempByteValue], a
|
||||
push hl
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
inc hl
|
||||
ld de, .5SpacesText
|
||||
call PlaceString
|
||||
call GetMonName
|
||||
call PlaceString
|
||||
pop hl
|
||||
push hl
|
||||
ld bc, NAME_LENGTH
|
||||
add hl, bc
|
||||
push hl
|
||||
|
||||
ld a, [wWhichPokemon]
|
||||
ld hl, wPartyMon1Level
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
call AddNTimes
|
||||
ld d, h
|
||||
ld e, l
|
||||
ld a, [de]
|
||||
ld [wCurEnemyLevel], a
|
||||
pop hl
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
ld a, [wWhichPokemon]
|
||||
ld de, wEnemyPartySpecies
|
||||
add e
|
||||
ld e, a
|
||||
jr nc, .GoFight_4
|
||||
inc d
|
||||
.GoFight_4
|
||||
ld a, [wCurEnemyLevel]
|
||||
ld [de], a
|
||||
pop hl
|
||||
ld a, [wWhichPokemon]
|
||||
inc a
|
||||
ld [wWhichPokemon], a
|
||||
ld bc, SCREEN_WIDTH * 2
|
||||
add hl, bc
|
||||
jp .GoFight_2
|
||||
|
||||
.GoFight_5:
|
||||
pop hl
|
||||
pop de
|
||||
ld a, [wPartyMon1]
|
||||
ld b, a
|
||||
ld a, [wPartyMon1Level]
|
||||
ld c, a
|
||||
xor a
|
||||
ld [wWhichPokemon], a
|
||||
jp .MonsNumber
|
||||
|
||||
.PlayerNameText:
|
||||
db "けんしろう@" ; "KENSHIROU@"
|
||||
|
||||
.FightTestText:
|
||||
db "テスト ファイト@" ; "FIGHT TEST@"
|
||||
|
||||
.NumNameLevelText:
|
||||
db "№. なまえ レべル@" ; "№. NAME LEVEL@"
|
||||
|
||||
.LayoutText:
|
||||
db "1.▶000 ーーーーー 000"
|
||||
for x, 2, PARTY_LENGTH + 1
|
||||
next "{d:x}. 000 ーーーーー 000"
|
||||
endr
|
||||
db "@"
|
||||
|
||||
.5SpacesText:
|
||||
db " @"
|
||||
|
||||
.5DashesText:
|
||||
db "ーーーーー@"
|
||||
|
||||
.WildPokemonText :
|
||||
db "ワイルドモンスター@" ; "WILD #MON@"
|
||||
|
||||
.TrainerText:
|
||||
db "ディーラー @" ; "TRAINER @"
|
||||
|
||||
.EnemyNumNameLevelText:
|
||||
db "№. なまえ レべル" ; "№. NAME LABEL"
|
||||
next ""
|
||||
.EnemyLayoutText:
|
||||
db "000 ーーーーーーーーーー 000@"
|
||||
|
||||
.10SpacesText:
|
||||
db " @"
|
||||
|
||||
.ItemTable:
|
||||
db GREAT_BALL, 99
|
||||
db POKE_BALL, 99
|
||||
db ANTIDOTE, 99
|
||||
db FULL_RESTORE, 99
|
||||
db MAX_POTION, 99
|
||||
db HYPER_POTION, 99
|
||||
db SUPER_POTION, 99
|
||||
db POTION, 99
|
||||
db -1 ; end
|
||||
726
engine/debug/set_box_debug_menu.asm
Normal file
726
engine/debug/set_box_debug_menu.asm
Normal file
@@ -0,0 +1,726 @@
|
||||
; unreferenced debug code for pc boxes.
|
||||
Func_fedfe:
|
||||
ld a, [wBoxCount]
|
||||
cp 30
|
||||
jp nc, Func_ff1ad
|
||||
call ClearScreen
|
||||
call UpdateSprites
|
||||
ld a, [wLetterPrintingDelayFlags]
|
||||
push af
|
||||
xor a
|
||||
ld [wLetterPrintingDelayFlags], a
|
||||
ld hl, wEnemyMonOT
|
||||
ld [hli], a
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
inc a
|
||||
ldh [hJoy7], a
|
||||
ld [wCurPartySpecies], a
|
||||
ld [wCurEnemyLevel], a
|
||||
; fallthrough
|
||||
Func_fee23:
|
||||
hlcoord 0, 3
|
||||
ld [hl], ' '
|
||||
hlcoord 0, 1
|
||||
ld [hl], '▶'
|
||||
call Func_fee60
|
||||
.asm_fee30
|
||||
call DelayFrame
|
||||
call JoypadLowSensitivity
|
||||
ldh a, [hJoy5]
|
||||
bit B_PAD_A, a
|
||||
jp nz, Func_fee49
|
||||
bit B_PAD_B, a
|
||||
jp nz, Func_fee56
|
||||
bit B_PAD_DOWN, a
|
||||
jp nz, Func_fee96
|
||||
jr .asm_fee30
|
||||
|
||||
Func_fee49:
|
||||
ld hl, wCurPartySpecies
|
||||
inc [hl]
|
||||
ld a, [hl]
|
||||
cp NUM_POKEMON + 1
|
||||
jr c, Func_fee23
|
||||
ld [hl], DEX_BULBASAUR
|
||||
jr Func_fee23
|
||||
|
||||
Func_fee56:
|
||||
ld hl, wCurPartySpecies
|
||||
dec [hl]
|
||||
jr nz, Func_fee23
|
||||
ld [hl], DEX_MEW
|
||||
jr Func_fee23
|
||||
|
||||
Func_fee60:
|
||||
hlcoord 1, 0
|
||||
lb bc, 2, 9
|
||||
call ClearScreenArea
|
||||
hlcoord 1, 1
|
||||
ld de, wCurPartySpecies
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
inc hl
|
||||
push hl
|
||||
ld a, [wCurPartySpecies]
|
||||
ld [wPokedexNum], a
|
||||
callfar PokedexToIndex
|
||||
call GetMonName
|
||||
pop hl
|
||||
call PlaceString
|
||||
ld a, [wPokedexNum]
|
||||
ld [wCurSpecies], a
|
||||
call GetMonHeader
|
||||
ret
|
||||
|
||||
Func_fee96:
|
||||
hlcoord 0, 1
|
||||
ld [hl], ' '
|
||||
hlcoord 0, 3
|
||||
ld [hl], '▶'
|
||||
hlcoord 0, 5
|
||||
ld [hl], ' '
|
||||
call Func_feee2
|
||||
call Func_feeef
|
||||
.asm_feeab
|
||||
call DelayFrame
|
||||
call JoypadLowSensitivity
|
||||
ld hl, wCurEnemyLevel
|
||||
ldh a, [hJoy5]
|
||||
bit B_PAD_A, a
|
||||
jp nz, Func_feed1
|
||||
bit B_PAD_B, a
|
||||
jp nz, Func_feedb
|
||||
bit B_PAD_START, a
|
||||
jp nz, Func_ff12c
|
||||
bit B_PAD_UP, a
|
||||
jp nz, Func_fee23
|
||||
bit B_PAD_DOWN, a
|
||||
jp nz, Func_fef60
|
||||
jr .asm_feeab
|
||||
|
||||
Func_feed1:
|
||||
inc [hl]
|
||||
ld a, [hl]
|
||||
cp MAX_LEVEL + 1
|
||||
jr c, Func_fee96
|
||||
ld [hl], 1
|
||||
jr Func_fee96
|
||||
|
||||
Func_feedb:
|
||||
dec [hl]
|
||||
jr nz, Func_fee96
|
||||
ld [hl], MAX_LEVEL
|
||||
jr Func_fee96
|
||||
|
||||
Func_feee2:
|
||||
hlcoord 1, 3
|
||||
ld de, wCurEnemyLevel
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
ret
|
||||
|
||||
Func_feeef:
|
||||
hlcoord 1, 4
|
||||
lb bc, 8, 11
|
||||
call ClearScreenArea
|
||||
ld a, [wCurPartySpecies]
|
||||
push af
|
||||
ld [wPokedexNum], a
|
||||
ld hl, BaseStats + 15
|
||||
dec a
|
||||
ld bc, BASE_DATA_SIZE
|
||||
call AddNTimes
|
||||
ld de, wMoves
|
||||
ld bc, NUM_MOVES
|
||||
ld a, BANK(BaseStats)
|
||||
call FarCopyData
|
||||
callfar PokedexToIndex
|
||||
ld a, [wPokedexNum]
|
||||
ld [wCurPartySpecies], a
|
||||
xor a
|
||||
ld [wChangeMonPicEnemyTurnSpecies], a
|
||||
ld de, wMoves
|
||||
predef WriteMonMoves
|
||||
hlcoord 1, 5
|
||||
ld de, wMoves
|
||||
ld b, NUM_MOVES
|
||||
.asm_fef36
|
||||
ld a, [de]
|
||||
inc de
|
||||
and a
|
||||
jr z, .asm_fef5b
|
||||
push de
|
||||
push bc
|
||||
push hl
|
||||
ld [wTempByteValue], a
|
||||
ld de, wTempByteValue
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
inc hl
|
||||
call GetMoveName
|
||||
call PlaceString
|
||||
pop hl
|
||||
ld bc, SCREEN_WIDTH * 2
|
||||
add hl, bc
|
||||
pop bc
|
||||
pop de
|
||||
dec b
|
||||
jr nz, .asm_fef36
|
||||
.asm_fef5b
|
||||
pop af
|
||||
ld [wCurPartySpecies], a
|
||||
ret
|
||||
|
||||
Func_fef60:
|
||||
ld de, wMoves
|
||||
hlcoord 0, 5
|
||||
ld b, 1
|
||||
; fallthrough
|
||||
Func_fef68:
|
||||
call Func_fefc5
|
||||
.asm_fef6b
|
||||
call DelayFrame
|
||||
push de
|
||||
push bc
|
||||
call JoypadLowSensitivity
|
||||
pop bc
|
||||
pop de
|
||||
ldh a, [hJoy5]
|
||||
bit B_PAD_A, a
|
||||
jp nz, Func_fef92
|
||||
bit B_PAD_B, a
|
||||
jp nz, Func_fef9e
|
||||
bit B_PAD_START, a
|
||||
jp nz, Func_ff12c
|
||||
bit B_PAD_UP, a
|
||||
jp nz, Func_fefa8
|
||||
bit B_PAD_DOWN, a
|
||||
jp nz, Func_fefb5
|
||||
jr .asm_fef6b
|
||||
|
||||
Func_fef92:
|
||||
ld a, [de]
|
||||
inc a
|
||||
ld [de], a
|
||||
cp NUM_ATTACKS
|
||||
jr c, Func_fef68
|
||||
ld a, 1
|
||||
ld [de], a
|
||||
jr Func_fef68
|
||||
|
||||
Func_fef9e:
|
||||
ld a, [de]
|
||||
dec a
|
||||
ld [de], a
|
||||
jr nz, Func_fef68
|
||||
ld a, NUM_ATTACKS - 1
|
||||
ld [de], a
|
||||
jr Func_fef68
|
||||
|
||||
Func_fefa8:
|
||||
dec de
|
||||
dec b
|
||||
jp z, Func_fee96
|
||||
push bc
|
||||
ld bc, hMovingBGTilesCounter1
|
||||
add hl, bc
|
||||
pop bc
|
||||
jr Func_fef68
|
||||
|
||||
Func_fefb5:
|
||||
inc de
|
||||
inc b
|
||||
ld a, b
|
||||
cp 5
|
||||
jp z, Func_ff03b
|
||||
push bc
|
||||
ld bc, SCREEN_WIDTH * 2
|
||||
add hl, bc
|
||||
pop bc
|
||||
jr Func_fef68
|
||||
|
||||
Func_fefc5:
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
push hl
|
||||
push de
|
||||
ld bc, hSpriteMapYCoord
|
||||
add hl, bc
|
||||
lb bc, 2, 11
|
||||
call ClearScreenArea
|
||||
pop de
|
||||
pop hl
|
||||
push hl
|
||||
ld [hl], '▶'
|
||||
ld bc, hMovingBGTilesCounter1
|
||||
add hl, bc
|
||||
ld [hl], ' '
|
||||
ld bc, SCREEN_WIDTH * 4
|
||||
add hl, bc
|
||||
ld [hl], ' '
|
||||
pop hl
|
||||
inc hl
|
||||
ld a, [de]
|
||||
ld de, wTempByteValue
|
||||
ld [de], a
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
ld a, [wTempByteValue]
|
||||
and a
|
||||
jr z, .asm_ff002
|
||||
call Func_ff006
|
||||
inc hl
|
||||
call GetMoveName
|
||||
call PlaceString
|
||||
.asm_ff002
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
|
||||
Func_ff006:
|
||||
ld a, [wCurPartySpecies]
|
||||
push af
|
||||
ld a, [wPokedexNum]
|
||||
push af
|
||||
push hl
|
||||
ld a, [wCurPartySpecies]
|
||||
ld [wPokedexNum], a
|
||||
callfar PokedexToIndex
|
||||
ld a, [wPokedexNum]
|
||||
ld [wCurPartySpecies], a
|
||||
pop hl
|
||||
pop af
|
||||
ld [wPokedexNum], a
|
||||
push hl
|
||||
callfar Func_3b079
|
||||
pop hl
|
||||
jr c, .asm_ff036
|
||||
ld [hl], '×'
|
||||
.asm_ff036
|
||||
pop af
|
||||
ld [wCurPartySpecies], a
|
||||
ret
|
||||
|
||||
Func_ff03b:
|
||||
ld de, wEnemyMonOT
|
||||
hlcoord 0, 13
|
||||
ld b, 1
|
||||
; fallthrough
|
||||
Func_ff043:
|
||||
call Func_ff09e
|
||||
.asm_ff046
|
||||
call DelayFrame
|
||||
push de
|
||||
push bc
|
||||
call JoypadLowSensitivity
|
||||
pop bc
|
||||
pop de
|
||||
ldh a, [hJoy5]
|
||||
bit B_PAD_A, a
|
||||
jp nz, Func_ff06d
|
||||
bit B_PAD_B, a
|
||||
jp nz, Func_ff072
|
||||
bit B_PAD_START, a
|
||||
jp nz, Func_ff12c
|
||||
bit B_PAD_UP, a
|
||||
jp nz, Func_ff077
|
||||
bit B_PAD_DOWN, a
|
||||
jp nz, Func_ff08f
|
||||
jr .asm_ff046
|
||||
|
||||
Func_ff06d:
|
||||
ld a, [de]
|
||||
inc a
|
||||
ld [de], a
|
||||
jr Func_ff043
|
||||
|
||||
Func_ff072:
|
||||
ld a, [de]
|
||||
dec a
|
||||
ld [de], a
|
||||
jr Func_ff043
|
||||
|
||||
Func_ff077:
|
||||
dec de
|
||||
dec b
|
||||
jp z, Func_ff084
|
||||
push bc
|
||||
ld bc, hMovingBGTilesCounter1
|
||||
add hl, bc
|
||||
pop bc
|
||||
jr Func_ff043
|
||||
|
||||
Func_ff084:
|
||||
ld de, wMoves + 3
|
||||
hlcoord 0, 11
|
||||
ld b, NUM_MOVES
|
||||
jp Func_fef68
|
||||
|
||||
Func_ff08f:
|
||||
ld a, b
|
||||
cp 3
|
||||
jr z, Func_ff043
|
||||
inc b
|
||||
inc de
|
||||
push bc
|
||||
ld bc, SCREEN_WIDTH * 2
|
||||
add hl, bc
|
||||
pop bc
|
||||
jr Func_ff043
|
||||
|
||||
Func_ff09e:
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
push hl
|
||||
ld [hl], '▶'
|
||||
ld bc, hMovingBGTilesCounter1
|
||||
add hl, bc
|
||||
ld [hl], ' '
|
||||
ld bc, SCREEN_WIDTH * 4
|
||||
add hl, bc
|
||||
ld [hl], ' '
|
||||
pop hl
|
||||
inc hl
|
||||
ld a, [de]
|
||||
ld de, wTempByteValue
|
||||
ld [de], a
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
call Func_ff0c4
|
||||
pop bc
|
||||
pop de
|
||||
pop hl
|
||||
ret
|
||||
|
||||
Func_ff0c4:
|
||||
hlcoord 12, 0
|
||||
lb bc, 18, 8
|
||||
call ClearScreenArea
|
||||
hlcoord 13, 1
|
||||
ld de, Text_ff113
|
||||
call PlaceString
|
||||
ld b, 10
|
||||
ld hl, wLoadedMonHPExp
|
||||
ld a, [wEnemyMonOT + 2]
|
||||
.asm_ff0de
|
||||
ld [hli], a
|
||||
dec b
|
||||
jr nz, .asm_ff0de
|
||||
ld a, [wEnemyMonOT]
|
||||
ld [hli], a
|
||||
ld a, [wEnemyMonOT + 1]
|
||||
ld [hl], a
|
||||
ld hl, wLoadedMonExp + 2
|
||||
ld de, wLoadedMonStats
|
||||
ld b, 1
|
||||
call CalcStats
|
||||
hlcoord 17, 1
|
||||
ld de, wLoadedMonStats
|
||||
ld b, 5
|
||||
.asm_ff0fd
|
||||
push bc
|
||||
push de
|
||||
push hl
|
||||
lb bc, LEADING_ZEROES | 2, 3
|
||||
call PrintNumber
|
||||
pop hl
|
||||
ld bc, SCREEN_WIDTH * 2
|
||||
add hl, bc
|
||||
pop de
|
||||
inc de
|
||||
inc de
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .asm_ff0fd
|
||||
ret
|
||||
|
||||
Text_ff113:
|
||||
db "たいりき" ; hp
|
||||
next "こうげき" ; attack
|
||||
next "ぼうぎょ" ; defense
|
||||
next "すばやさ" ; speed
|
||||
next "とくしゅ@" ; special
|
||||
|
||||
Func_ff12c:
|
||||
ld a, [wCurEnemyLevel]
|
||||
ld [wEnemyMonLevel], a
|
||||
ld a, [wCurPartySpecies]
|
||||
ld [wPokedexNum], a
|
||||
callfar PokedexToIndex
|
||||
ld a, [wPokedexNum]
|
||||
ld [wCurPartySpecies], a
|
||||
ld [wCurSpecies], a
|
||||
call GetMonHeader
|
||||
ld hl, wEnemyMon
|
||||
ld a, [wCurPartySpecies]
|
||||
ld [hli], a
|
||||
ld a, [wLoadedMonStats]
|
||||
ld [hli], a
|
||||
ld a, [wLoadedMonStats + 1]
|
||||
ld [hli], a
|
||||
xor a
|
||||
ld [hli], a
|
||||
ld [hli], a
|
||||
ld a, [wMonHTypes]
|
||||
ld [hli], a
|
||||
ld a, [wMonHType2]
|
||||
ld [hli], a
|
||||
ld a, [wMonHCatchRate]
|
||||
ld [hli], a
|
||||
ld a, [wMoves]
|
||||
ld [hli], a
|
||||
ld a, [wMoves + 1]
|
||||
ld [hli], a
|
||||
ld a, [wMoves + 2]
|
||||
ld [hli], a
|
||||
ld a, [wMoves + 3]
|
||||
ld [hl], a
|
||||
ld hl, wEnemyMonPP
|
||||
xor a
|
||||
ld [hli], a
|
||||
ld [hli], a
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
ld a, [wEnemyMonOT]
|
||||
ld [wEnemyMonDVs], a
|
||||
ld a, [wEnemyMonOT + 1]
|
||||
ld [wEnemyMonDVs + 1], a
|
||||
callfar SendNewMonToBox
|
||||
ld b, 10
|
||||
ld hl, wBoxMon1HPExp
|
||||
ld a, [wEnemyMonOT + 2]
|
||||
.asm_ff19e
|
||||
ld [hli], a
|
||||
dec b
|
||||
jr nz, .asm_ff19e
|
||||
ld a, 1
|
||||
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
|
||||
pop af
|
||||
ld [wLetterPrintingDelayFlags], a
|
||||
jr Func_ff1b3
|
||||
Func_ff1ad:
|
||||
ld hl, Text_ff1b4
|
||||
call PrintText
|
||||
Func_ff1b3:
|
||||
ret
|
||||
|
||||
Text_ff1b4:
|
||||
text_far _BoxFullDebugText
|
||||
text_end
|
||||
|
||||
Func_ff1b9:
|
||||
ld a, 1
|
||||
ldh [hJoy7], a
|
||||
ld a, 2
|
||||
ld [wCurEnemyLevel], a
|
||||
ld hl, Text_ff290
|
||||
call PrintText
|
||||
call YesNoChoice
|
||||
ld a, [wCurrentMenuItem]
|
||||
and a
|
||||
jp nz, Func_ff286
|
||||
ld hl, Text_ff28f
|
||||
call PrintText
|
||||
callfar EmptyAllSRAMBoxes
|
||||
ld hl, wBoxCount
|
||||
xor a
|
||||
ld [hli], a
|
||||
dec a
|
||||
ld [hl], a
|
||||
; fallthrough
|
||||
Func_ff1e7:
|
||||
hlcoord 2, 13
|
||||
ld [hl], '゙'
|
||||
hlcoord 1, 14
|
||||
ld [hl], 'レ'
|
||||
inc hl
|
||||
ld [hl], 'へ'
|
||||
inc hl
|
||||
ld [hl], 'ル'
|
||||
inc hl
|
||||
inc hl
|
||||
ld de, wCurEnemyLevel
|
||||
lb bc, LEADING_ZEROES | 1, 3
|
||||
call PrintNumber
|
||||
call DelayFrame
|
||||
call JoypadLowSensitivity
|
||||
ldh a, [hJoy5]
|
||||
bit B_PAD_A, a
|
||||
jp nz, Func_ff21b
|
||||
bit B_PAD_B, a
|
||||
jp nz, Func_ff227
|
||||
bit B_PAD_START, a
|
||||
jp nz, Func_ff236
|
||||
jr Func_ff1e7
|
||||
|
||||
Func_ff21b:
|
||||
ld a, [wCurEnemyLevel]
|
||||
inc a
|
||||
cp MAX_LEVEL + 1
|
||||
jr c, Func_ff231
|
||||
ld a, 2
|
||||
jr Func_ff231
|
||||
Func_ff227:
|
||||
ld a, [wCurEnemyLevel]
|
||||
dec a
|
||||
cp 2
|
||||
jr nc, Func_ff231
|
||||
ld a, MAX_LEVEL
|
||||
Func_ff231:
|
||||
ld [wCurEnemyLevel], a
|
||||
jr Func_ff1e7
|
||||
|
||||
Func_ff236:
|
||||
ld c, 0
|
||||
ld d, 0
|
||||
.asm_ff23a
|
||||
push bc
|
||||
push de
|
||||
call Func_ff295
|
||||
ld hl, wChangeMonPicEnemyTurnSpecies
|
||||
inc [hl]
|
||||
pop de
|
||||
pop bc
|
||||
ld b, 30
|
||||
.asm_ff247
|
||||
inc c
|
||||
push bc
|
||||
push de
|
||||
ld a, c
|
||||
ld [wPokedexNum], a
|
||||
callfar PokedexToIndex
|
||||
ld a, [wPokedexNum]
|
||||
ld [wEnemyMonSpecies2], a
|
||||
ld [wCurPartySpecies], a
|
||||
xor a
|
||||
ld [wEnemyBattleStatus3], a
|
||||
callfar LoadEnemyMonData
|
||||
ld a, [wEnemyMonSpecies2]
|
||||
ld [wCurPartySpecies], a
|
||||
callfar SendNewMonToBox
|
||||
pop de
|
||||
pop bc
|
||||
ld a, c
|
||||
cp NUM_POKEMON
|
||||
jr z, Func_ff286
|
||||
dec b
|
||||
jr nz, .asm_ff247
|
||||
inc d
|
||||
jr .asm_ff23a
|
||||
; fallthrough
|
||||
Func_ff286:
|
||||
ld a, 1
|
||||
ld [wDoNotWaitForButtonPressAfterDisplayingText], a
|
||||
xor a
|
||||
ldh [hJoy7], a
|
||||
ret
|
||||
|
||||
Text_ff28f:
|
||||
text_end
|
||||
|
||||
Text_ff290:
|
||||
text_far _BoxWillBeClearedText
|
||||
text_end
|
||||
|
||||
Func_ff295:
|
||||
push de
|
||||
ld a, SFX_SAVE
|
||||
call PlaySoundWaitForCurrent
|
||||
call WaitForSoundToFinish
|
||||
call Func_ff2d1
|
||||
ld e, l
|
||||
ld d, h
|
||||
ld hl, wBoxCount
|
||||
call Func_ff2f3
|
||||
pop de
|
||||
ld a, d
|
||||
set BIT_HAS_CHANGED_BOXES, a
|
||||
ld [wCurrentBoxNum], a
|
||||
push de
|
||||
call Func_ff2d1
|
||||
ld de, wBoxCount
|
||||
call Func_ff2f3
|
||||
ld a, [wLetterPrintingDelayFlags]
|
||||
push af
|
||||
ld a, 1 << BIT_FAST_TEXT_DELAY
|
||||
ld [wLetterPrintingDelayFlags], a
|
||||
callfar SaveGameData
|
||||
pop af
|
||||
ld [wLetterPrintingDelayFlags], a
|
||||
pop de
|
||||
ret
|
||||
|
||||
Func_ff2d1:
|
||||
ld hl, Data_ff2eb
|
||||
ld a, [wCurrentBoxNum]
|
||||
and %01111111
|
||||
cp 4
|
||||
ld b, 2
|
||||
jr c, .asm_ff2e2
|
||||
inc b
|
||||
and 3
|
||||
.asm_ff2e2
|
||||
ld e, a
|
||||
ld d, 0
|
||||
add hl, de
|
||||
add hl, de
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
ret
|
||||
|
||||
Data_ff2eb:
|
||||
dw sBox1
|
||||
dw sBox2
|
||||
dw sBox3
|
||||
dw sBox4
|
||||
|
||||
Func_ff2f3:
|
||||
push hl
|
||||
call DebugEnableSRAM
|
||||
ld a, b
|
||||
ld [rRAMB], a
|
||||
ld bc, sBox2 - sBox1
|
||||
call CopyData
|
||||
pop hl
|
||||
xor a
|
||||
ld [hli], a
|
||||
dec a
|
||||
ld [hl], a
|
||||
ld hl, sBox1
|
||||
ld bc, sBox5 - sBox1 + 1 ; BUG: SBox5 should be sBank2AllBoxesChecksum
|
||||
call Func_ff32a
|
||||
ld [sBox5], a ; BUG: SBox5 should be sBank2AllBoxesChecksum
|
||||
call DebugDisableSRAM
|
||||
ret
|
||||
|
||||
DebugEnableSRAM: ; duplicate of EnableSRAM
|
||||
ld a, BMODE_ADVANCED
|
||||
ld [rBMODE], a
|
||||
ld a, RAMG_SRAM_ENABLE
|
||||
ld [rRAMG], a
|
||||
ret
|
||||
|
||||
DebugDisableSRAM: ; duplicate of DisableSRAM
|
||||
ld a, 0
|
||||
ld [rBMODE], a
|
||||
ld [rRAMG], a
|
||||
ret
|
||||
|
||||
Func_ff32a:
|
||||
ld d, 0
|
||||
.asm_ff32c
|
||||
ld a, [hli]
|
||||
add d
|
||||
ld d, a
|
||||
dec bc
|
||||
ld a, b
|
||||
or c
|
||||
jr nz, .asm_ff32c
|
||||
ld a, d
|
||||
cpl
|
||||
ret
|
||||
@@ -36,7 +36,7 @@ PrepareOakSpeech:
|
||||
and a
|
||||
call z, InitOptions
|
||||
; These debug names are used for StartNewGameDebug.
|
||||
; TestBattle uses the debug names from DebugMenu.
|
||||
; FightDebugMenu uses the debug names from DebugMenu.
|
||||
; A variant of this process is performed in PrepareTitleScreen.
|
||||
ld hl, DebugNewGamePlayerName
|
||||
ld de, wPlayerName
|
||||
|
||||
@@ -595,7 +595,7 @@ wAILayer2Encouragement:: db
|
||||
wPlayerSubstituteHP:: db
|
||||
wEnemySubstituteHP:: db
|
||||
|
||||
; used for TestBattle (unused in non-debug builds)
|
||||
; used for FightDebugMenu (unused in non-debug builds)
|
||||
wTestBattlePlayerSelectedMove:: db
|
||||
|
||||
ds 1
|
||||
@@ -1462,6 +1462,7 @@ wPlayerStatsToHalve:: db
|
||||
wPlayerBattleStatus1:: db
|
||||
wPlayerBattleStatus2:: db
|
||||
wPlayerBattleStatus3:: db
|
||||
wPlayerBattleStatusEnd::
|
||||
|
||||
; always 0
|
||||
wEnemyStatsToDouble:: db
|
||||
@@ -1471,6 +1472,7 @@ wEnemyStatsToHalve:: db
|
||||
wEnemyBattleStatus1:: db
|
||||
wEnemyBattleStatus2:: db
|
||||
wEnemyBattleStatus3:: db
|
||||
wEnemyBattleStatusEnd::
|
||||
|
||||
; when the player is attacking multiple times, the number of attacks left
|
||||
wPlayerNumAttacksLeft:: db
|
||||
|
||||
@@ -348,7 +348,7 @@ MtMoonB2FScript13:
|
||||
ld a, PAD_BUTTONS | PAD_CTRL_PAD
|
||||
ld [wJoyIgnore], a
|
||||
ld a, [wIsInBattle]
|
||||
cp $ff
|
||||
cp LOST_BATTLE
|
||||
jp z, MtMoonB2FResetScripts
|
||||
ld a, $2
|
||||
ld [wSprite02StateData1MovementStatus], a
|
||||
|
||||
@@ -170,7 +170,7 @@ PokemonTower7FScript8:
|
||||
ld a, PAD_BUTTONS | PAD_CTRL_PAD
|
||||
ld [wJoyIgnore], a
|
||||
ld a, [wIsInBattle]
|
||||
cp $ff
|
||||
cp LOST_BATTLE
|
||||
jp z, PokemonTower7FSetDefaultScript
|
||||
ld a, $2
|
||||
ld [wSprite01StateData1MovementStatus], a
|
||||
|
||||
@@ -224,7 +224,7 @@ RocketHideoutB4FScript11:
|
||||
ld a, PAD_BUTTONS | PAD_CTRL_PAD
|
||||
ld [wJoyIgnore], a
|
||||
ld a, [wIsInBattle]
|
||||
cp $ff
|
||||
cp LOST_BATTLE
|
||||
jp z, RocketHideoutB4FResetScripts
|
||||
ld a, $2
|
||||
ld [wSprite02StateData1MovementStatus], a
|
||||
|
||||
@@ -404,7 +404,7 @@ SilphCo11FScript12:
|
||||
ld a, PAD_BUTTONS | PAD_CTRL_PAD
|
||||
ld [wJoyIgnore], a
|
||||
ld a, [wIsInBattle]
|
||||
cp $ff
|
||||
cp LOST_BATTLE
|
||||
jp z, SilphCo11FResetCurScript
|
||||
ld a, $2
|
||||
ld [wSprite04StateData1MovementStatus], a
|
||||
|
||||
Reference in New Issue
Block a user