mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-12-05 11:04:30 +13:00
commented battle stuff
This commit is contained in:
parent
72265ab92a
commit
4fd7a42b23
|
|
@ -1,4 +1,4 @@
|
|||
Func_525af: ; 525af (14:65af)
|
||||
InitBattleVariables: ; 525af (14:65af)
|
||||
ld a, [hTilesetType]
|
||||
ld [wd0d4], a
|
||||
xor a
|
||||
|
|
@ -9,7 +9,7 @@ Func_525af: ; 525af (14:65af)
|
|||
ld [hli], a
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
ld [wListScrollOffset], a ; wcc36
|
||||
ld [wListScrollOffset], a
|
||||
ld [wCriticalHitOrOHKO], a
|
||||
ld [wBattleMonSpecies], a
|
||||
ld [wPartyGainExpFlags], a
|
||||
|
|
@ -21,73 +21,73 @@ Func_525af: ; 525af (14:65af)
|
|||
ld [hl], a
|
||||
ld hl, wccd3
|
||||
ld b, $3c
|
||||
.asm_525e1
|
||||
.loop
|
||||
ld [hli], a
|
||||
dec b
|
||||
jr nz, .asm_525e1
|
||||
jr nz, .loop
|
||||
inc a
|
||||
ld [wccd9], a
|
||||
ld a, [W_CURMAP]
|
||||
cp SAFARI_ZONE_EAST
|
||||
jr c, .asm_525f9
|
||||
jr c, .notSafariBattle
|
||||
cp SAFARI_ZONE_REST_HOUSE_1
|
||||
jr nc, .asm_525f9
|
||||
ld a, $2
|
||||
ld [W_BATTLETYPE], a ; wd05a
|
||||
.asm_525f9
|
||||
jr nc, .notSafariBattle
|
||||
ld a, $2 ; safari battle
|
||||
ld [W_BATTLETYPE], a
|
||||
.notSafariBattle
|
||||
ld hl, PlayBattleMusic
|
||||
ld b, BANK(PlayBattleMusic)
|
||||
jp Bankswitch
|
||||
|
||||
ParalyzeEffect_: ; 52601 (14:6601)
|
||||
ld hl, wEnemyMonStatus ; wcfe9
|
||||
ld de, W_PLAYERMOVETYPE ; wcfd5
|
||||
ld a, [H_WHOSETURN] ; $fff3
|
||||
ld hl, wEnemyMonStatus
|
||||
ld de, W_PLAYERMOVETYPE
|
||||
ld a, [H_WHOSETURN]
|
||||
and a
|
||||
jp z, .asm_52613
|
||||
jp z, .next
|
||||
ld hl, wBattleMonStatus
|
||||
ld de, W_ENEMYMOVETYPE ; wcfcf
|
||||
|
||||
.asm_52613
|
||||
ld de, W_ENEMYMOVETYPE
|
||||
.next
|
||||
ld a, [hl]
|
||||
and a
|
||||
jr nz, .asm_52659
|
||||
and a ; does the target already have a status ailment?
|
||||
jr nz, .didntAffect
|
||||
; check if the target is immune due to types
|
||||
ld a, [de]
|
||||
cp EVASION_DOWN1_EFFECT
|
||||
jr nz, .asm_5262a
|
||||
cp ELECTRIC
|
||||
jr nz, .hitTest
|
||||
ld b, h
|
||||
ld c, l
|
||||
inc bc
|
||||
ld a, [bc]
|
||||
cp $4
|
||||
jr z, .asm_52666
|
||||
cp GROUND
|
||||
jr z, .doesntAffect
|
||||
inc bc
|
||||
ld a, [bc]
|
||||
cp $4
|
||||
jr z, .asm_52666
|
||||
.asm_5262a
|
||||
cp GROUND
|
||||
jr z, .doesntAffect
|
||||
.hitTest
|
||||
push hl
|
||||
callab MoveHitTest
|
||||
pop hl
|
||||
ld a, [W_MOVEMISSED]
|
||||
and a
|
||||
jr nz, .asm_52659
|
||||
jr nz, .didntAffect
|
||||
set PAR, [hl]
|
||||
callab QuarterSpeedDueToParalysis
|
||||
ld c, $1e
|
||||
ld c, 30
|
||||
call DelayFrames
|
||||
callab Func_3fba8
|
||||
callab PlayCurrentMoveAnimation
|
||||
ld hl, PrintMayNotAttackText
|
||||
ld b, BANK(PrintMayNotAttackText)
|
||||
jp Bankswitch
|
||||
.asm_52659
|
||||
ld c, $32
|
||||
.didntAffect
|
||||
ld c, 50
|
||||
call DelayFrames
|
||||
ld hl, PrintDidntAffectText
|
||||
ld b, BANK(PrintDidntAffectText)
|
||||
jp Bankswitch
|
||||
.asm_52666
|
||||
ld c, $32
|
||||
.doesntAffect
|
||||
ld c, 50
|
||||
call DelayFrames
|
||||
ld hl, PrintDoesntAffectText
|
||||
ld b, BANK(PrintDoesntAffectText)
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ PrintBeginningBattleText: ; 58d99 (16:4d99)
|
|||
ld hl, UnveiledGhostText
|
||||
call PrintText
|
||||
callab LoadEnemyMonData
|
||||
callab Func_708ca
|
||||
callab DoGhostMarowakRevelationAnimation
|
||||
ld hl, WildMonAppearedText
|
||||
call PrintText
|
||||
|
||||
|
|
|
|||
|
|
@ -1,85 +1,90 @@
|
|||
Func_708ca: ; 708ca (1c:48ca)
|
||||
DoGhostMarowakRevelationAnimation: ; 708ca (1c:48ca)
|
||||
ld a, $e4
|
||||
ld [rOBP1], a ; $ff49
|
||||
call Func_7092a
|
||||
ld [rOBP1], a
|
||||
call CopyMonPicFromBGToSpriteVRAM ; cover the BG ghost pic with a sprite ghost pic that looks the same
|
||||
; now that the ghost pic is being displayed using sprites, clear the ghost pic from the BG tilemap
|
||||
hlCoord 12, 0
|
||||
ld bc, $707
|
||||
call ClearScreenArea
|
||||
call Delay3
|
||||
xor a
|
||||
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||||
ld a, $91
|
||||
ld [H_AUTOBGTRANSFERENABLED], a ; disable BG transfer so we don't see the Marowak too soon
|
||||
; replace ghost pic with Marowak in BG
|
||||
ld a, MAROWAK
|
||||
ld [wHPBarMaxHP], a
|
||||
ld a, $1
|
||||
ld [H_WHOSETURN], a ; $fff3
|
||||
ld [H_WHOSETURN], a
|
||||
callab Func_79793
|
||||
; alternate between black and light grey 8 times.
|
||||
; this makes the ghost's body appear to flash
|
||||
ld d, $80
|
||||
call Func_704f3
|
||||
.asm_708f6
|
||||
ld c, $a
|
||||
call FlashSprite8Times
|
||||
.fadeOutGhostLoop
|
||||
ld c, 10
|
||||
call DelayFrames
|
||||
ld a, [rOBP1] ; $ff49
|
||||
ld a, [rOBP1]
|
||||
sla a
|
||||
sla a
|
||||
ld [rOBP1], a ; $ff49
|
||||
jr nz, .asm_708f6
|
||||
ld [rOBP1], a
|
||||
jr nz, .fadeOutGhostLoop
|
||||
call ClearSprites
|
||||
call Func_7092a
|
||||
call CopyMonPicFromBGToSpriteVRAM ; copy Marowak pic from BG to sprite VRAM
|
||||
ld b, $e4
|
||||
.asm_7090d
|
||||
ld c, $a
|
||||
.fadeInMarowakLoop
|
||||
ld c, 10
|
||||
call DelayFrames
|
||||
ld a, [rOBP1] ; $ff49
|
||||
ld a, [rOBP1]
|
||||
srl b
|
||||
rra
|
||||
srl b
|
||||
rra
|
||||
ld [rOBP1], a ; $ff49
|
||||
ld [rOBP1], a
|
||||
ld a, b
|
||||
and a
|
||||
jr nz, .asm_7090d
|
||||
jr nz, .fadeInMarowakLoop
|
||||
ld a, $1
|
||||
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||||
ld [H_AUTOBGTRANSFERENABLED], a ; enable BG transfer so the BG Marowak pic will be visible after the sprite one is cleared
|
||||
call Delay3
|
||||
jp ClearSprites
|
||||
|
||||
Func_7092a: ; 7092a (1c:492a)
|
||||
; copies a mon pic's from background VRAM to sprite VRAM and sets up OAM
|
||||
CopyMonPicFromBGToSpriteVRAM: ; 7092a (1c:492a)
|
||||
ld de, vFrontPic
|
||||
ld hl, vSprites
|
||||
ld bc, 7 * 7
|
||||
call CopyVideoData
|
||||
ld a, $10
|
||||
ld [W_BASECOORDY], a ; wd082
|
||||
ld [W_BASECOORDY], a
|
||||
ld a, $70
|
||||
ld [W_BASECOORDX], a ; wd081
|
||||
ld [W_BASECOORDX], a
|
||||
ld hl, wOAMBuffer
|
||||
ld bc, $606
|
||||
ld d, $8
|
||||
.asm_70948
|
||||
.oamLoop
|
||||
push bc
|
||||
ld a, [W_BASECOORDY] ; wd082
|
||||
ld a, [W_BASECOORDY]
|
||||
ld e, a
|
||||
.asm_7094d
|
||||
.oamInnerLoop
|
||||
ld a, e
|
||||
add $8
|
||||
ld e, a
|
||||
ld [hli], a
|
||||
ld a, [W_BASECOORDX] ; wd081
|
||||
ld a, [W_BASECOORDX]
|
||||
ld [hli], a
|
||||
ld a, d
|
||||
ld [hli], a
|
||||
ld a, $10
|
||||
ld a, $10 ; use OBP1
|
||||
ld [hli], a
|
||||
inc d
|
||||
dec c
|
||||
jr nz, .asm_7094d
|
||||
jr nz, .oamInnerLoop
|
||||
inc d
|
||||
ld a, [W_BASECOORDX] ; wd081
|
||||
ld a, [W_BASECOORDX]
|
||||
add $8
|
||||
ld [W_BASECOORDX], a ; wd081
|
||||
ld [W_BASECOORDX], a
|
||||
pop bc
|
||||
dec b
|
||||
jr nz, .asm_70948
|
||||
jr nz, .oamLoop
|
||||
ret
|
||||
|
||||
BattleTransition: ; 7096d (1c:496d)
|
||||
|
|
@ -270,9 +275,9 @@ BattleTransitionTile: ; 70a59 (1c:4a59)
|
|||
|
||||
BattleTransition_BlackScreen: ; 70a69 (1c:4a69)
|
||||
ld a, $ff
|
||||
ld [rBGP], a ; $ff47
|
||||
ld [rOBP0], a ; $ff48
|
||||
ld [rOBP1], a ; $ff49
|
||||
ld [rBGP], a
|
||||
ld [rOBP0], a
|
||||
ld [rOBP1], a
|
||||
ret
|
||||
|
||||
; for non-dungeon trainer battles
|
||||
|
|
|
|||
|
|
@ -1,14 +1,14 @@
|
|||
Func_128d8: ; 128d8 (4:68d8)
|
||||
ld a, [W_YCOORD] ; wd361
|
||||
; returns whether the player is one tile outside the map in Z
|
||||
IsPlayerJustOutsideMap: ; 128d8 (4:68d8)
|
||||
ld a, [W_YCOORD]
|
||||
ld b, a
|
||||
ld a, [W_CURMAPHEIGHT] ; wd368
|
||||
call Func_128ea
|
||||
ld a, [W_CURMAPHEIGHT]
|
||||
call .compareCoordWithMapDimension
|
||||
ret z
|
||||
ld a, [W_XCOORD] ; wd362
|
||||
ld a, [W_XCOORD]
|
||||
ld b, a
|
||||
ld a, [W_CURMAPWIDTH] ; wd369
|
||||
|
||||
Func_128ea: ; 128ea (4:68ea)
|
||||
ld a, [W_CURMAPWIDTH]
|
||||
.compareCoordWithMapDimension
|
||||
add a
|
||||
cp b
|
||||
ret z
|
||||
|
|
@ -24,7 +24,7 @@ Func_128f6: ; 128f6 (4:68f6)
|
|||
call GetPredefRegisters
|
||||
ld a, $2
|
||||
asm_128fb: ; 128fb (4:68fb)
|
||||
ld [wListMenuID], a ; wListMenuID
|
||||
ld [wListMenuID], a
|
||||
push hl
|
||||
ld a, [wcf99]
|
||||
ld b, a
|
||||
|
|
@ -37,7 +37,7 @@ asm_128fb: ; 128fb (4:68fb)
|
|||
ld e, a
|
||||
ld a, $6
|
||||
ld d, a
|
||||
jp Func_12924
|
||||
jp DrawHPBarAndFraction
|
||||
.asm_12913
|
||||
ld a, [wcfba]
|
||||
ld d, a
|
||||
|
|
@ -48,21 +48,21 @@ asm_128fb: ; 128fb (4:68fb)
|
|||
ld d, a
|
||||
ld c, a
|
||||
|
||||
Func_12924: ; 12924 (4:6924)
|
||||
DrawHPBarAndFraction: ; 12924 (4:6924)
|
||||
pop hl
|
||||
push de
|
||||
push hl
|
||||
push hl
|
||||
call DrawHPBar
|
||||
pop hl
|
||||
ld a, [$fff6]
|
||||
ld a, [hFlags_0xFFF6]
|
||||
bit 0, a
|
||||
jr z, .asm_12937
|
||||
ld bc, $9
|
||||
jr .asm_1293a
|
||||
.asm_12937
|
||||
ld bc, $15
|
||||
.asm_1293a
|
||||
jr z, .printFractionBelowBar
|
||||
ld bc, $9 ; right of bar
|
||||
jr .printHPFraction
|
||||
.printFractionBelowBar
|
||||
ld bc, SCREEN_WIDTH + 1 ; below bar
|
||||
.printHPFraction
|
||||
add hl, bc
|
||||
ld de, wcf99
|
||||
ld bc, $203
|
||||
|
|
|
|||
|
|
@ -87,7 +87,9 @@ PickUpPayDayMoneyText: ; 1386b (4:786b)
|
|||
TX_FAR _PickUpPayDayMoneyText
|
||||
db "@"
|
||||
|
||||
Func_13870: ; 13870 (4:7870)
|
||||
; try to initiate a wild pokemon encounter
|
||||
; returns success in Z
|
||||
TryDoWildEncounter: ; 13870 (4:7870)
|
||||
ld a, [wNPCMovementScriptPointerTableNum]
|
||||
and a
|
||||
ret nz
|
||||
|
|
@ -95,14 +97,14 @@ Func_13870: ; 13870 (4:7870)
|
|||
and a
|
||||
ret nz
|
||||
callab IsPlayerStandingOnDoorTileOrWarpTile
|
||||
jr nc, .asm_13888
|
||||
.asm_13884
|
||||
jr nc, .notStandingOnDoorOrWarpTile
|
||||
.CantEncounter
|
||||
ld a, $1
|
||||
and a
|
||||
ret
|
||||
.asm_13888
|
||||
callab Func_128d8
|
||||
jr z, .asm_13884
|
||||
.notStandingOnDoorOrWarpTile
|
||||
callab IsPlayerJustOutsideMap
|
||||
jr z, .CantEncounter
|
||||
ld a, [wRepelRemainingSteps]
|
||||
and a
|
||||
jr z, .asm_1389e
|
||||
|
|
@ -110,8 +112,8 @@ Func_13870: ; 13870 (4:7870)
|
|||
jr z, .lastRepelStep
|
||||
ld [wRepelRemainingSteps], a
|
||||
.asm_1389e
|
||||
; determine if wild pokémon can appear in the half-block we’re standing
|
||||
; is the bottom right tile (9,9) of the half-block are we standing a grass/water tile?
|
||||
; determine if wild pokémon can appear in the half-block we’re standing in
|
||||
; is the bottom right tile (9,9) of the half-block we're standing in a grass/water tile?
|
||||
hlCoord 9, 9
|
||||
ld c, [hl]
|
||||
ld a, [W_GRASSTILE]
|
||||
|
|
@ -127,17 +129,17 @@ Func_13870: ; 13870 (4:7870)
|
|||
; …as long as it’s not Viridian Forest or Safari Zone.
|
||||
ld a, [W_CURMAP]
|
||||
cp REDS_HOUSE_1F ; is this an indoor map?
|
||||
jr c, .CantEncounter
|
||||
jr c, .CantEncounter2
|
||||
ld a, [W_CURMAPTILESET]
|
||||
cp FOREST ; Viridian Forest/Safari Zone
|
||||
jr z, .CantEncounter
|
||||
jr z, .CantEncounter2
|
||||
ld a, [W_GRASSRATE]
|
||||
.CanEncounter
|
||||
; weigh encounter chance to a random number to determine if there will be an encounter
|
||||
; compare encounter chance with a random number to determine if there will be an encounter
|
||||
ld b, a
|
||||
ld a, [hRandomAdd]
|
||||
cp b
|
||||
jr nc, .CantEncounter
|
||||
jr nc, .CantEncounter2
|
||||
ld a, [hRandomSub]
|
||||
ld b, a
|
||||
ld hl, WildMonEncounterSlotChances
|
||||
|
|
@ -148,15 +150,15 @@ Func_13870: ; 13870 (4:7870)
|
|||
inc hl
|
||||
jr .determineEncounterSlot
|
||||
.gotEncounterSlot
|
||||
; determine which wild pokémon (grass or water) can appear in the half-block we’re standing
|
||||
; determine which wild pokémon (grass or water) can appear in the half-block we’re standing in
|
||||
ld c, [hl]
|
||||
ld hl, W_GRASSMONS
|
||||
aCoord 8, 9
|
||||
cp $14 ; is the bottom left tile (8,9) of the half-block are we standing a water tile?
|
||||
cp $14 ; is the bottom left tile (8,9) of the half-block we're standing in a water tile?
|
||||
jr nz, .gotWildEncounterType ; else, it's treated as a grass tile by default
|
||||
ld hl, W_WATERMONS
|
||||
; since the bottom right tile of a "left shore" half-block is $14 but the bottom left tile is not,
|
||||
; "left shore" half-blocks (such as the one in the east coast of Cinnabar), load grass encounters.
|
||||
; "left shore" half-blocks (such as the one in the east coast of Cinnabar) load grass encounters.
|
||||
.gotWildEncounterType
|
||||
ld b, $0
|
||||
add hl, bc
|
||||
|
|
@ -172,15 +174,15 @@ Func_13870: ; 13870 (4:7870)
|
|||
ld b, a
|
||||
ld a, [W_CURENEMYLVL]
|
||||
cp b
|
||||
jr c, .CantEncounter
|
||||
jr c, .CantEncounter2 ; repel prevents encounters if the leading party mon's level is higher than the wild mon
|
||||
jr .willEncounter
|
||||
.lastRepelStep
|
||||
ld [wRepelRemainingSteps], a
|
||||
ld a, $d2
|
||||
ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
|
||||
ld [H_DOWNARROWBLINKCNT2], a
|
||||
call EnableAutoTextBoxDrawing
|
||||
call DisplayTextID
|
||||
.CantEncounter
|
||||
.CantEncounter2
|
||||
ld a, $1
|
||||
and a
|
||||
ret
|
||||
|
|
@ -293,8 +295,8 @@ ConversionEffect_: ; 139a3 (4:79a3)
|
|||
inc de
|
||||
ld a, [hl]
|
||||
ld [de], a
|
||||
ld hl, Func_3fba8
|
||||
call Func_139d5
|
||||
ld hl, PlayCurrentMoveAnimation
|
||||
call CallBankF
|
||||
ld hl, ConvertedTypeText
|
||||
jp PrintText
|
||||
|
||||
|
|
@ -304,22 +306,22 @@ ConvertedTypeText: ; 139cd (4:79cd)
|
|||
|
||||
PrintButItFailedText: ; 139d2 (4:79d2)
|
||||
ld hl, PrintButItFailedText_
|
||||
Func_139d5: ; 139d5 (4:79d5)
|
||||
CallBankF: ; 139d5 (4:79d5)
|
||||
ld b, BANK(PrintButItFailedText_)
|
||||
jp Bankswitch
|
||||
|
||||
HazeEffect_: ; 139da (4:79da)
|
||||
ld a, $7
|
||||
ld hl, wPlayerMonAttackMod
|
||||
call Func_13a43
|
||||
call ResetStatMods
|
||||
ld hl, wEnemyMonAttackMod
|
||||
call Func_13a43
|
||||
call ResetStatMods
|
||||
ld hl, wPlayerMonUnmodifiedAttack
|
||||
ld de, wBattleMonAttack
|
||||
call Func_13a4a
|
||||
call ResetStats
|
||||
ld hl, wEnemyMonUnmodifiedAttack
|
||||
ld de, wEnemyMonAttack
|
||||
call Func_13a4a
|
||||
call ResetStats
|
||||
ld hl, wEnemyMonStatus
|
||||
ld de, wEnemySelectedMove
|
||||
ld a, [H_WHOSETURN]
|
||||
|
|
@ -347,8 +349,8 @@ HazeEffect_: ; 139da (4:79da)
|
|||
call CureStatuses
|
||||
ld hl, W_ENEMYBATTSTATUS1
|
||||
call CureStatuses
|
||||
ld hl, Func_3fba8
|
||||
call Func_139d5
|
||||
ld hl, PlayCurrentMoveAnimation
|
||||
call CallBankF
|
||||
ld hl, StatusChangesEliminatedText
|
||||
jp PrintText
|
||||
|
||||
|
|
@ -363,7 +365,7 @@ CureStatuses: ; 13a37 (4:7a37)
|
|||
ld [hl], a
|
||||
ret
|
||||
|
||||
Func_13a43: ; 13a43 (4:7a43)
|
||||
ResetStatMods: ; 13a43 (4:7a43)
|
||||
ld b, $8
|
||||
.loop
|
||||
ld [hli], a
|
||||
|
|
@ -371,7 +373,7 @@ Func_13a43: ; 13a43 (4:7a43)
|
|||
jr nz, .loop
|
||||
ret
|
||||
|
||||
Func_13a4a: ; 13a4a (4:7a4a)
|
||||
ResetStats: ; 13a4a (4:7a4a)
|
||||
ld b, $8
|
||||
.loop
|
||||
ld a, [hli]
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ SubstituteEffectHandler: ; 17dad (5:7dad)
|
|||
ld hl, wBattleMonMaxHP
|
||||
ld de, wPlayerSubstituteHP
|
||||
ld bc, W_PLAYERBATTSTATUS2
|
||||
ld a, [$fff3] ;whose turn?
|
||||
ld a, [H_WHOSETURN]
|
||||
and a
|
||||
jr z, .notEnemy
|
||||
ld hl, wEnemyMonMaxHP
|
||||
|
|
@ -23,8 +23,8 @@ SubstituteEffectHandler: ; 17dad (5:7dad)
|
|||
srl a
|
||||
rr b
|
||||
push de
|
||||
ld de, $fff2 ;subtract 8 to point to [current hp] instead of [max hp]
|
||||
add hl, de ;HL -= 8
|
||||
ld de, wBattleMonHP - wBattleMonMaxHP
|
||||
add hl, de ; point hl to current HP
|
||||
pop de
|
||||
ld a, b
|
||||
ld [de], a ;save copy of HP to subtract in ccd7/ccd8 [how much HP substitute has]
|
||||
|
|
@ -44,8 +44,8 @@ SubstituteEffectHandler: ; 17dad (5:7dad)
|
|||
set HasSubstituteUp, [hl] ;set bit 4 of flags, user now has substitute
|
||||
ld a, [W_OPTIONS] ;load options
|
||||
bit 7, a ;battle animation is enabled?
|
||||
ld hl, Func_3fba8 ;animation enabled: 0F:7BA8
|
||||
ld b, BANK(Func_3fba8)
|
||||
ld hl, PlayCurrentMoveAnimation ;animation enabled: 0F:7BA8
|
||||
ld b, BANK(PlayCurrentMoveAnimation)
|
||||
jr z, .animationEnabled
|
||||
ld hl, AnimationSubstitute ;animation disabled: 1E:56E0
|
||||
ld b, BANK(AnimationSubstitute)
|
||||
|
|
|
|||
|
|
@ -1,35 +1,43 @@
|
|||
Func_27d6b: ; 27d6b (9:7d6b)
|
||||
; [wd0b5] = pokemon ID
|
||||
; hl = dest addr
|
||||
PrintMonType: ; 27d6b (9:7d6b)
|
||||
call GetPredefRegisters
|
||||
push hl
|
||||
call GetMonHeader
|
||||
pop hl
|
||||
push hl
|
||||
ld a, [W_MONHTYPE1]
|
||||
call Func_27d89
|
||||
call PrintType
|
||||
ld a, [W_MONHTYPE1]
|
||||
ld b, a
|
||||
ld a, [W_MONHTYPE2]
|
||||
cp b
|
||||
pop hl
|
||||
jr z, asm_27d8c
|
||||
ld bc, $28
|
||||
jr z, EraseType2Text
|
||||
ld bc, SCREEN_WIDTH * 2
|
||||
add hl, bc
|
||||
|
||||
Func_27d89: ; 27d89 (9:7d89)
|
||||
; a = type
|
||||
; hl = dest addr
|
||||
PrintType: ; 27d89 (9:7d89)
|
||||
push hl
|
||||
jr asm_27d9f
|
||||
asm_27d8c: ; 27d8c (9:7d8c)
|
||||
ld a, $7f
|
||||
jr PrintType_
|
||||
|
||||
; erase "TYPE2/" if the mon only has 1 type
|
||||
EraseType2Text: ; 27d8c (9:7d8c)
|
||||
ld a, " "
|
||||
ld bc, $13
|
||||
add hl, bc
|
||||
ld bc, $6
|
||||
jp FillMemory
|
||||
|
||||
Func_27d98: ; 27d98 (9:7d98)
|
||||
PrintMoveType: ; 27d98 (9:7d98)
|
||||
call GetPredefRegisters
|
||||
push hl
|
||||
ld a, [W_PLAYERMOVETYPE] ; wcfd5
|
||||
asm_27d9f: ; 27d9f (9:7d9f)
|
||||
ld a, [W_PLAYERMOVETYPE]
|
||||
; fall through
|
||||
|
||||
PrintType_: ; 27d9f (9:7d9f)
|
||||
add a
|
||||
ld hl, TypeNames
|
||||
ld e, a
|
||||
|
|
@ -157,19 +165,19 @@ CooltrainerFName: ; 27f79 (9:7f79)
|
|||
db "COOLTRAINER♀@"
|
||||
|
||||
FocusEnergyEffect_: ; 27f86 (9:7f86)
|
||||
ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
|
||||
ld a, [H_WHOSETURN] ; $fff3
|
||||
ld hl, W_PLAYERBATTSTATUS2
|
||||
ld a, [H_WHOSETURN]
|
||||
and a
|
||||
jr z, .asm_27f91
|
||||
ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
|
||||
.asm_27f91
|
||||
jr z, .notEnemy
|
||||
ld hl, W_ENEMYBATTSTATUS2
|
||||
.notEnemy
|
||||
bit GettingPumped, [hl] ; is mon already using focus energy?
|
||||
jr nz, .asm_27fa5
|
||||
jr nz, .alreadyUsing
|
||||
set GettingPumped, [hl] ; mon is now using focus energy
|
||||
callab Func_3fba8
|
||||
ld hl, GettingPumpedText ; $7fb2
|
||||
callab PlayCurrentMoveAnimation
|
||||
ld hl, GettingPumpedText
|
||||
jp PrintText
|
||||
.asm_27fa5
|
||||
.alreadyUsing
|
||||
ld c, $32
|
||||
call DelayFrames
|
||||
ld hl, PrintButItFailedText_
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ LeechSeedEffect_: ; 2bea9 (a:7ea9)
|
|||
bit Seeded, [hl]
|
||||
jr nz, .asm_2bee7
|
||||
set Seeded, [hl]
|
||||
callab Func_3fba8
|
||||
callab PlayCurrentMoveAnimation
|
||||
ld hl, WasSeededText ; $7ef2
|
||||
jp PrintText
|
||||
.asm_2bee7
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ MistEffect_: ; 33f2b (c:7f2b)
|
|||
bit ProtectedByMist, [hl] ; is mon protected by mist?
|
||||
jr nz, .asm_33f4a
|
||||
set ProtectedByMist, [hl] ; mon is now protected by mist
|
||||
callab Func_3fba8
|
||||
callab PlayCurrentMoveAnimation
|
||||
ld hl, ShroudedInMistText
|
||||
jp PrintText
|
||||
.asm_33f4a
|
||||
|
|
|
|||
|
|
@ -2541,13 +2541,13 @@ MoveSelectionMenu: ; 3d219 (f:5219)
|
|||
|
||||
.writemoves
|
||||
ld de, wd0e1
|
||||
ld a, [$fff6]
|
||||
ld a, [hFlags_0xFFF6]
|
||||
set 2, a
|
||||
ld [$fff6], a
|
||||
ld [hFlags_0xFFF6], a
|
||||
call PlaceString
|
||||
ld a, [$fff6]
|
||||
ld a, [hFlags_0xFFF6]
|
||||
res 2, a
|
||||
ld [$fff6], a
|
||||
ld [hFlags_0xFFF6], a
|
||||
ret
|
||||
|
||||
.regularmenu
|
||||
|
|
@ -2666,10 +2666,10 @@ SelectMenuItem: ; 3d2fe (f:52fe)
|
|||
call AddNTimes
|
||||
ld [hl], $ec
|
||||
.select
|
||||
ld hl, $fff6
|
||||
ld hl, hFlags_0xFFF6
|
||||
set 1, [hl]
|
||||
call HandleMenuInput
|
||||
ld hl, $fff6
|
||||
ld hl, hFlags_0xFFF6
|
||||
res 1, [hl]
|
||||
bit 6, a
|
||||
jp nz, CursorUp ; up
|
||||
|
|
@ -2959,7 +2959,7 @@ PrintMenuItem: ; 3d4b6 (f:54b6)
|
|||
call PrintNumber
|
||||
call GetCurrentMove
|
||||
hlCoord 2, 10
|
||||
predef Func_27d98
|
||||
predef PrintMoveType
|
||||
.moveDisabled
|
||||
ld a, $1
|
||||
ld [H_AUTOBGTRANSFERENABLED], a
|
||||
|
|
@ -6814,7 +6814,7 @@ asm_3ef23: ; 3ef23 (f:6f23)
|
|||
ld a, [wNumberOfNoRandomBattleStepsLeft]
|
||||
and a
|
||||
ret nz
|
||||
callab Func_13870
|
||||
callab TryDoWildEncounter
|
||||
ret nz
|
||||
asm_3ef3d: ; 3ef3d (f:6f3d)
|
||||
ld a, [wMapPalOffset]
|
||||
|
|
@ -6823,7 +6823,7 @@ asm_3ef3d: ; 3ef3d (f:6f3d)
|
|||
ld a, [hl]
|
||||
push af
|
||||
res 1, [hl]
|
||||
callab Func_525af
|
||||
callab InitBattleVariables
|
||||
ld a, [wEnemyMonSpecies2]
|
||||
sub $c8
|
||||
jp c, InitWildBattle
|
||||
|
|
@ -7637,7 +7637,7 @@ UpdateStatDone: ; 3f4ca (f:74ca)
|
|||
call nz, Bankswitch ; play Minimize animation unless there's Substitute involved
|
||||
pop de
|
||||
.asm_3f4f9
|
||||
call Func_3fba8
|
||||
call PlayCurrentMoveAnimation
|
||||
ld a, [de]
|
||||
cp MINIMIZE
|
||||
jr nz, .applyBadgeBoostsAndStatusPenalties
|
||||
|
|
@ -8451,7 +8451,7 @@ MimicEffect: ; 3f9ed (f:79ed)
|
|||
ld [hl], a
|
||||
ld [wd11e], a
|
||||
call GetMoveName
|
||||
call Func_3fba8
|
||||
call PlayCurrentMoveAnimation
|
||||
ld hl, MimicLearnedMoveText
|
||||
jp PrintText
|
||||
.asm_3fa74
|
||||
|
|
@ -8467,7 +8467,7 @@ LeechSeedEffect: ; 3fa7c (f:7a7c)
|
|||
jp Bankswitch
|
||||
|
||||
SplashEffect: ; 3fa84 (f:7a84)
|
||||
call Func_3fba8
|
||||
call PlayCurrentMoveAnimation
|
||||
jp PrintNoEffectText
|
||||
|
||||
DisableEffect: ; 3fa8a (f:7a8a)
|
||||
|
|
@ -8662,15 +8662,15 @@ Func_3fb96: ; 3fb96 (f:7b96)
|
|||
ld [wcc5b], a
|
||||
jp Func_3fbbc
|
||||
|
||||
Func_3fba8: ; 3fba8 (f:7ba8)
|
||||
PlayCurrentMoveAnimation: ; 3fba8 (f:7ba8)
|
||||
xor a
|
||||
ld [wcc5b], a
|
||||
ld a, [H_WHOSETURN]
|
||||
and a
|
||||
ld a, [W_PLAYERMOVENUM]
|
||||
jr z, .asm_3fbb7
|
||||
jr z, .notEnemyTurn
|
||||
ld a, [W_ENEMYMOVENUM]
|
||||
.asm_3fbb7
|
||||
.notEnemyTurn
|
||||
and a
|
||||
ret z
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
HealEffect_: ; 3b9ec (e:79ec)
|
||||
ld a, [H_WHOSETURN] ; $fff3
|
||||
ld a, [H_WHOSETURN]
|
||||
and a
|
||||
ld de, wBattleMonHP ; wd015
|
||||
ld hl, wBattleMonMaxHP ; wd023
|
||||
ld a, [W_PLAYERMOVENUM] ; wcfd2
|
||||
ld de, wBattleMonHP
|
||||
ld hl, wBattleMonMaxHP
|
||||
ld a, [W_PLAYERMOVENUM]
|
||||
jr z, .asm_3ba03
|
||||
ld de, wEnemyMonHP ; wEnemyMonHP
|
||||
ld hl, wEnemyMonMaxHP ; wEnemyMonMaxHP
|
||||
ld a, [W_ENEMYMOVENUM] ; W_ENEMYMOVENUM
|
||||
ld de, wEnemyMonHP
|
||||
ld hl, wEnemyMonMaxHP
|
||||
ld a, [W_ENEMYMOVENUM]
|
||||
.asm_3ba03
|
||||
ld b, a
|
||||
ld a, [de]
|
||||
|
|
@ -16,27 +16,27 @@ HealEffect_: ; 3b9ec (e:79ec)
|
|||
inc hl
|
||||
ld a, [de]
|
||||
sbc [hl]
|
||||
jp z, Func_3ba97
|
||||
jp z, .failed
|
||||
ld a, b
|
||||
cp REST
|
||||
jr nz, .asm_3ba37
|
||||
push hl
|
||||
push de
|
||||
push af
|
||||
ld c, $32
|
||||
ld c, 50
|
||||
call DelayFrames
|
||||
ld hl, wBattleMonStatus ; wBattleMonStatus
|
||||
ld a, [H_WHOSETURN] ; $fff3
|
||||
ld hl, wBattleMonStatus
|
||||
ld a, [H_WHOSETURN]
|
||||
and a
|
||||
jr z, .asm_3ba25
|
||||
ld hl, wEnemyMonStatus ; wcfe9
|
||||
ld hl, wEnemyMonStatus
|
||||
.asm_3ba25
|
||||
ld a, [hl]
|
||||
and a
|
||||
ld [hl], 2 ; Number of turns from Rest
|
||||
ld hl, StartedSleepingEffect ; $7aa2
|
||||
ld hl, StartedSleepingEffect
|
||||
jr z, .asm_3ba31
|
||||
ld hl, FellAsleepBecameHealthyText ; $7aa7
|
||||
ld hl, FellAsleepBecameHealthyText
|
||||
.asm_3ba31
|
||||
call PrintText
|
||||
pop af
|
||||
|
|
@ -81,9 +81,9 @@ HealEffect_: ; 3b9ec (e:79ec)
|
|||
ld [de], a
|
||||
ld [wHPBarNewHP], a
|
||||
.asm_3ba6f
|
||||
ld hl, Func_3fba8 ; $7ba8
|
||||
ld hl, PlayCurrentMoveAnimation
|
||||
call BankswitchEtoF
|
||||
ld a, [H_WHOSETURN] ; $fff3
|
||||
ld a, [H_WHOSETURN]
|
||||
and a
|
||||
hlCoord 10, 9
|
||||
ld a, $1
|
||||
|
|
@ -91,15 +91,14 @@ HealEffect_: ; 3b9ec (e:79ec)
|
|||
hlCoord 2, 2
|
||||
xor a
|
||||
.asm_3ba83
|
||||
ld [wListMenuID], a ; wListMenuID
|
||||
ld [wListMenuID], a
|
||||
predef UpdateHPBar2
|
||||
ld hl, DrawHUDsAndHPBars ; $4d5a
|
||||
ld hl, DrawHUDsAndHPBars
|
||||
call BankswitchEtoF
|
||||
ld hl, RegainedHealthText ; $7aac
|
||||
ld hl, RegainedHealthText
|
||||
jp PrintText
|
||||
|
||||
Func_3ba97: ; 3ba97 (e:7a97)
|
||||
ld c, $32
|
||||
.failed
|
||||
ld c, 50
|
||||
call DelayFrames
|
||||
ld hl, PrintButItFailedText_
|
||||
jp BankswitchEtoF
|
||||
|
|
@ -119,37 +118,37 @@ RegainedHealthText: ; 3baac (e:7aac)
|
|||
TransformEffect_: ; 3bab1 (e:7ab1)
|
||||
ld hl, wBattleMonSpecies
|
||||
ld de, wEnemyMonSpecies
|
||||
ld bc, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
|
||||
ld a, [W_ENEMYBATTSTATUS1] ; W_ENEMYBATTSTATUS1
|
||||
ld a, [H_WHOSETURN] ; $fff3
|
||||
ld bc, W_ENEMYBATTSTATUS3
|
||||
ld a, [W_ENEMYBATTSTATUS1]
|
||||
ld a, [H_WHOSETURN]
|
||||
and a
|
||||
jr nz, .asm_3bad1
|
||||
ld hl, wEnemyMonSpecies
|
||||
ld de, wBattleMonSpecies
|
||||
ld bc, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
|
||||
ld [wPlayerMoveListIndex], a ; wPlayerMoveListIndex
|
||||
ld a, [W_PLAYERBATTSTATUS1] ; W_PLAYERBATTSTATUS1
|
||||
ld bc, W_PLAYERBATTSTATUS3
|
||||
ld [wPlayerMoveListIndex], a
|
||||
ld a, [W_PLAYERBATTSTATUS1]
|
||||
.asm_3bad1
|
||||
bit Invulnerable, a ; is mon invulnerable to typical attacks? (fly/dig)
|
||||
jp nz, Func_3bb8c
|
||||
jp nz, .failed
|
||||
push hl
|
||||
push de
|
||||
push bc
|
||||
ld hl, W_PLAYERBATTSTATUS2 ; W_PLAYERBATTSTATUS2
|
||||
ld a, [H_WHOSETURN] ; $fff3
|
||||
ld hl, W_PLAYERBATTSTATUS2
|
||||
ld a, [H_WHOSETURN]
|
||||
and a
|
||||
jr z, .asm_3bae4
|
||||
ld hl, W_ENEMYBATTSTATUS2 ; W_ENEMYBATTSTATUS2
|
||||
ld hl, W_ENEMYBATTSTATUS2
|
||||
.asm_3bae4
|
||||
bit HasSubstituteUp, [hl]
|
||||
push af
|
||||
ld hl, Func_79747
|
||||
ld b, BANK(Func_79747)
|
||||
call nz, Bankswitch
|
||||
ld a, [W_OPTIONS] ; W_OPTIONS
|
||||
ld a, [W_OPTIONS]
|
||||
add a
|
||||
ld hl, Func_3fba8 ; $7ba8
|
||||
ld b, BANK(Func_3fba8)
|
||||
ld hl, PlayCurrentMoveAnimation
|
||||
ld b, BANK(PlayCurrentMoveAnimation)
|
||||
jr nc, .asm_3baff
|
||||
ld hl, AnimationTransformMon
|
||||
ld b, BANK(AnimationTransformMon)
|
||||
|
|
@ -178,7 +177,7 @@ TransformEffect_: ; 3bab1 (e:7ab1)
|
|||
inc bc
|
||||
inc bc
|
||||
call CopyData
|
||||
ld a, [H_WHOSETURN] ; $fff3
|
||||
ld a, [H_WHOSETURN]
|
||||
and a
|
||||
jr z, .asm_3bb32
|
||||
ld a, [de]
|
||||
|
|
@ -228,15 +227,15 @@ TransformEffect_: ; 3bab1 (e:7ab1)
|
|||
call GetMonName
|
||||
ld hl, wEnemyMonUnmodifiedAttack
|
||||
ld de, wPlayerMonUnmodifiedAttack
|
||||
call Func_3bb7d
|
||||
ld hl, wEnemyMonStatMods ; wcd2e
|
||||
ld de, wPlayerMonStatMods ; wcd1a
|
||||
call Func_3bb7d
|
||||
ld hl, TransformedText ; $7b92
|
||||
call .copyBasedOnTurn
|
||||
ld hl, wEnemyMonStatMods
|
||||
ld de, wPlayerMonStatMods
|
||||
call .copyBasedOnTurn
|
||||
ld hl, TransformedText
|
||||
jp PrintText
|
||||
|
||||
Func_3bb7d: ; 3bb7d (e:7b7d)
|
||||
ld a, [H_WHOSETURN] ; $fff3
|
||||
.copyBasedOnTurn
|
||||
ld a, [H_WHOSETURN]
|
||||
and a
|
||||
jr z, .asm_3bb86
|
||||
push hl
|
||||
|
|
@ -247,8 +246,8 @@ Func_3bb7d: ; 3bb7d (e:7b7d)
|
|||
ld bc, $8
|
||||
jp CopyData
|
||||
|
||||
Func_3bb8c: ; 3bb8c (e:7b8c)
|
||||
ld hl, PrintButItFailedText_ ; $7b53
|
||||
.failed
|
||||
ld hl, PrintButItFailedText_
|
||||
jp BankswitchEtoF
|
||||
|
||||
TransformedText: ; 3bb92 (e:7b92)
|
||||
|
|
@ -256,13 +255,13 @@ TransformedText: ; 3bb92 (e:7b92)
|
|||
db "@"
|
||||
|
||||
ReflectLightScreenEffect_: ; 3bb97 (e:7b97)
|
||||
ld hl, W_PLAYERBATTSTATUS3 ; W_PLAYERBATTSTATUS3
|
||||
ld de, W_PLAYERMOVEEFFECT ; wcfd3
|
||||
ld a, [H_WHOSETURN] ; $fff3
|
||||
ld hl, W_PLAYERBATTSTATUS3
|
||||
ld de, W_PLAYERMOVEEFFECT
|
||||
ld a, [H_WHOSETURN]
|
||||
and a
|
||||
jr z, .asm_3bba8
|
||||
ld hl, W_ENEMYBATTSTATUS3 ; W_ENEMYBATTSTATUS3
|
||||
ld de, W_ENEMYMOVEEFFECT ; W_ENEMYMOVEEFFECT
|
||||
ld hl, W_ENEMYBATTSTATUS3
|
||||
ld de, W_ENEMYMOVEEFFECT
|
||||
.asm_3bba8
|
||||
ld a, [de]
|
||||
cp LIGHT_SCREEN_EFFECT
|
||||
|
|
@ -270,23 +269,23 @@ ReflectLightScreenEffect_: ; 3bb97 (e:7b97)
|
|||
bit HasLightScreenUp, [hl] ; is mon already protected by light screen?
|
||||
jr nz, .moveFailed
|
||||
set HasLightScreenUp, [hl] ; mon is now protected by light screen
|
||||
ld hl, LightScreenProtectedText ; $7bd7
|
||||
ld hl, LightScreenProtectedText
|
||||
jr .asm_3bbc1
|
||||
.reflect
|
||||
bit HasReflectUp, [hl] ; is mon already protected by reflect?
|
||||
jr nz, .moveFailed
|
||||
set HasReflectUp, [hl] ; mon is now protected by reflect
|
||||
ld hl, ReflectGainedArmorText ; $7bdc
|
||||
ld hl, ReflectGainedArmorText
|
||||
.asm_3bbc1
|
||||
push hl
|
||||
ld hl, Func_3fba8 ; $7ba8
|
||||
ld hl, PlayCurrentMoveAnimation
|
||||
call BankswitchEtoF
|
||||
pop hl
|
||||
jp PrintText
|
||||
.moveFailed
|
||||
ld c, $32
|
||||
call DelayFrames
|
||||
ld hl, PrintButItFailedText_ ; $7b53
|
||||
ld hl, PrintButItFailedText_
|
||||
jp BankswitchEtoF
|
||||
|
||||
LightScreenProtectedText: ; 3bbd7 (e:7bd7)
|
||||
|
|
|
|||
|
|
@ -338,10 +338,10 @@ TradeCenter_SelectMon:
|
|||
ld a, 1
|
||||
ld [wTopMenuItemX], a
|
||||
.enemyMonMenu_HandleInput
|
||||
ld hl, $fff6
|
||||
ld hl, hFlags_0xFFF6
|
||||
set 1, [hl]
|
||||
call HandleMenuInput
|
||||
ld hl, $fff6
|
||||
ld hl, hFlags_0xFFF6
|
||||
res 1, [hl]
|
||||
and a
|
||||
jp z, .getNewInput
|
||||
|
|
@ -403,10 +403,10 @@ TradeCenter_SelectMon:
|
|||
ld bc, $0601
|
||||
call ClearScreenArea
|
||||
.playerMonMenu_HandleInput
|
||||
ld hl, $fff6
|
||||
ld hl, hFlags_0xFFF6
|
||||
set 1, [hl]
|
||||
call HandleMenuInput
|
||||
ld hl, $fff6
|
||||
ld hl, hFlags_0xFFF6
|
||||
res 1, [hl]
|
||||
and a ; was anything pressed?
|
||||
jr nz, .playerMonMenu_SomethingPressed
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ Func_702f0: ; 702f0 (1c:42f0)
|
|||
ld a, [wWhichTrade] ; wWhichTrade
|
||||
ld [wd0b5], a
|
||||
hlCoord 3, 9
|
||||
predef Func_27d6b
|
||||
predef PrintMonType
|
||||
ld a, [wWhichTrade] ; wWhichTrade
|
||||
jp PlayCry
|
||||
|
||||
|
|
|
|||
|
|
@ -211,7 +211,7 @@ UpdateHPBar_PrintHPNumber: ; faf5 (3:7af5)
|
|||
ld a, [wHPBarOldHP+1]
|
||||
ld [wcef0], a
|
||||
push hl
|
||||
ld a, [$fff6]
|
||||
ld a, [hFlags_0xFFF6]
|
||||
bit 0, a
|
||||
jr z, .asm_fb15
|
||||
ld de, $9
|
||||
|
|
|
|||
|
|
@ -919,15 +919,15 @@ ItemUseMedicine: ; dabb (3:5abb)
|
|||
call AddNTimes ; calculate coordinates of HP bar of pokemon that used Softboiled
|
||||
ld a,(SFX_02_3d - SFX_Headers_02) / 3
|
||||
call PlaySoundWaitForCurrent ; play sound
|
||||
ld a,[$fff6]
|
||||
ld a,[hFlags_0xFFF6]
|
||||
set 0,a
|
||||
ld [$fff6],a
|
||||
ld [hFlags_0xFFF6],a
|
||||
ld a,$02
|
||||
ld [wListMenuID],a
|
||||
predef UpdateHPBar2 ; animate HP bar decrease of pokemon that used Softboiled
|
||||
ld a,[$fff6]
|
||||
ld a,[hFlags_0xFFF6]
|
||||
res 0,a
|
||||
ld [$fff6],a
|
||||
ld [hFlags_0xFFF6],a
|
||||
pop af
|
||||
ld b,a ; store heal amount (1/5 of max HP)
|
||||
ld hl,wHPBarOldHP + 1
|
||||
|
|
@ -1069,15 +1069,15 @@ ItemUseMedicine: ; dabb (3:5abb)
|
|||
jr z,.playStatusAilmentCuringSound
|
||||
ld a,(SFX_02_3d - SFX_Headers_02) / 3 ; HP healing sound
|
||||
call PlaySoundWaitForCurrent ; play sound
|
||||
ld a,[$fff6]
|
||||
ld a,[hFlags_0xFFF6]
|
||||
set 0,a
|
||||
ld [$fff6],a
|
||||
ld [hFlags_0xFFF6],a
|
||||
ld a,$02
|
||||
ld [wListMenuID],a
|
||||
predef UpdateHPBar2 ; animate the HP bar lengthening
|
||||
ld a,[$fff6]
|
||||
ld a,[hFlags_0xFFF6]
|
||||
res 0,a
|
||||
ld [$fff6],a
|
||||
ld [hFlags_0xFFF6],a
|
||||
ld a,$f7 ; revived message
|
||||
ld [wd07d],a
|
||||
ld a,[wcf91]
|
||||
|
|
|
|||
|
|
@ -126,13 +126,13 @@ TryingToLearn: ; 6f07 (1:6f07)
|
|||
call TextBoxBorder
|
||||
hlCoord 6, 8
|
||||
ld de, wd0e1
|
||||
ld a, [$fff6]
|
||||
ld a, [hFlags_0xFFF6]
|
||||
set 2, a
|
||||
ld [$fff6], a
|
||||
ld [hFlags_0xFFF6], a
|
||||
call PlaceString
|
||||
ld a, [$fff6]
|
||||
ld a, [hFlags_0xFFF6]
|
||||
res 2, a
|
||||
ld [$fff6], a
|
||||
ld [hFlags_0xFFF6], a
|
||||
ld hl, wTopMenuItemY
|
||||
ld a, $8
|
||||
ld [hli], a
|
||||
|
|
@ -146,10 +146,10 @@ TryingToLearn: ; 6f07 (1:6f07)
|
|||
ld a, $3
|
||||
ld [hli], a
|
||||
ld [hl], $0
|
||||
ld hl, $fff6
|
||||
ld hl, hFlags_0xFFF6
|
||||
set 1, [hl]
|
||||
call HandleMenuInput
|
||||
ld hl, $fff6
|
||||
ld hl, hFlags_0xFFF6
|
||||
res 1, [hl]
|
||||
push af
|
||||
call LoadScreenTilesFromBuffer1
|
||||
|
|
|
|||
|
|
@ -88,14 +88,14 @@ RedrawPartyMenu_: ; 12ce3 (4:6ce3)
|
|||
pop hl
|
||||
push hl
|
||||
ld bc,20 + 1 ; down 1 row and right 1 column
|
||||
ld a,[$FFF6]
|
||||
ld a,[hFlags_0xFFF6]
|
||||
set 0,a
|
||||
ld [$FFF6],a
|
||||
ld [hFlags_0xFFF6],a
|
||||
add hl,bc
|
||||
predef Func_128f6 ; draw HP bar and prints current / max HP
|
||||
ld a,[$FFF6]
|
||||
ld a,[hFlags_0xFFF6]
|
||||
res 0,a
|
||||
ld [$FFF6],a
|
||||
ld [hFlags_0xFFF6],a
|
||||
call SetPartyMenuHealthBarColor ; color the HP bar (on SGB)
|
||||
pop hl
|
||||
jr .printLevel
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ StatusScreen: ; 12953 (4:6953)
|
|||
ld bc, $8103 ; Zero-padded, 3
|
||||
call PrintNumber ; Pokémon no.
|
||||
hlCoord 11, 10
|
||||
predef Func_27d6b ; Prints the type (?)
|
||||
predef PrintMonType
|
||||
ld hl, NamePointers2 ; $6a9d
|
||||
call .unk_12a7e
|
||||
ld d, h
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ AnimateHealingMachine: ; 70433 (1c:4433)
|
|||
ld [wc0ee], a
|
||||
call PlaySound
|
||||
ld d, $28
|
||||
call Func_704f3
|
||||
call FlashSprite8Times
|
||||
.asm_704a2
|
||||
ld a, [wc026]
|
||||
cp MUSIC_PKMN_HEALED
|
||||
|
|
@ -74,16 +74,17 @@ PokeCenterOAMData: ; 704d7 (1c:44d7)
|
|||
db $35,$30,$7D,$10
|
||||
db $35,$38,$7D,$30
|
||||
|
||||
Func_704f3: ; 704f3 (1c:44f3)
|
||||
ld b, $8
|
||||
.asm_704f5
|
||||
ld a, [rOBP1] ; $ff49
|
||||
; d = value to xor with palette
|
||||
FlashSprite8Times: ; 704f3 (1c:44f3)
|
||||
ld b, 8
|
||||
.loop
|
||||
ld a, [rOBP1]
|
||||
xor d
|
||||
ld [rOBP1], a ; $ff49
|
||||
ld c, $a
|
||||
ld [rOBP1], a
|
||||
ld c, 10
|
||||
call DelayFrames
|
||||
dec b
|
||||
jr nz, .asm_704f5
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
Func_70503: ; 70503 (1c:4503)
|
||||
|
|
|
|||
|
|
@ -127,7 +127,7 @@ PredefPointers:: ; 4fe79 (13:7e79)
|
|||
add_predef UpdateHPBar2
|
||||
add_predef DrawEnemyHUDAndHPBar
|
||||
add_predef LoadTownMap_Nest
|
||||
add_predef Func_27d6b
|
||||
add_predef PrintMonType
|
||||
add_predef EmotionBubble; 4C player exclamation
|
||||
add_predef EmptyFunc3; return immediately
|
||||
add_predef AskName
|
||||
|
|
@ -145,7 +145,7 @@ PredefPointers:: ; 4fe79 (13:7e79)
|
|||
add_predef CheckForCollisionWhenPushingBoulder
|
||||
add_predef PrintStrengthTxt
|
||||
add_predef PickupItem
|
||||
add_predef Func_27d98
|
||||
add_predef PrintMoveType
|
||||
add_predef LoadMovePPs
|
||||
add_predef DrawHP ; 5F
|
||||
add_predef Func_128f6
|
||||
|
|
|
|||
|
|
@ -346,10 +346,10 @@ ChangeBox:: ; 738a1 (1c:78a1)
|
|||
call z, Func_73a29
|
||||
call Func_7393f
|
||||
call UpdateSprites
|
||||
ld hl, $fff6
|
||||
ld hl, hFlags_0xFFF6
|
||||
set 1, [hl]
|
||||
call HandleMenuInput
|
||||
ld hl, $fff6
|
||||
ld hl, hFlags_0xFFF6
|
||||
res 1, [hl]
|
||||
bit 1, a
|
||||
ret nz
|
||||
|
|
@ -436,12 +436,12 @@ Func_7393f: ; 7393f (1c:793f)
|
|||
ld b, $c
|
||||
ld c, $7
|
||||
call TextBoxBorder
|
||||
ld hl, $fff6
|
||||
ld hl, hFlags_0xFFF6
|
||||
set 2, [hl]
|
||||
ld de, BoxNames ; $79d9
|
||||
hlCoord 13, 1
|
||||
call PlaceString
|
||||
ld hl, $fff6
|
||||
ld hl, hFlags_0xFFF6
|
||||
res 2, [hl]
|
||||
ld a, [wd5a0]
|
||||
and $7f
|
||||
|
|
|
|||
4
home.asm
4
home.asm
|
|
@ -4046,7 +4046,7 @@ PlaceMenuCursor:: ; 3b7c (0:3b7c)
|
|||
and a ; was the previous menu id 0?
|
||||
jr z,.checkForArrow1
|
||||
push af
|
||||
ld a,[$fff6]
|
||||
ld a,[hFlags_0xFFF6]
|
||||
bit 1,a ; is the menu double spaced?
|
||||
jr z,.doubleSpaced1
|
||||
ld bc,20
|
||||
|
|
@ -4072,7 +4072,7 @@ PlaceMenuCursor:: ; 3b7c (0:3b7c)
|
|||
and a
|
||||
jr z,.checkForArrow2
|
||||
push af
|
||||
ld a,[$fff6]
|
||||
ld a,[hFlags_0xFFF6]
|
||||
bit 1,a ; is the menu double spaced?
|
||||
jr z,.doubleSpaced2
|
||||
ld bc,20
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ PlaceNextChar:: ; 1956 (0:1956)
|
|||
cp $4E
|
||||
jr nz,.next
|
||||
ld bc,$0028
|
||||
ld a,[$FFF6]
|
||||
ld a,[hFlags_0xFFF6]
|
||||
bit 2,a
|
||||
jr z,.next2
|
||||
ld bc,$14
|
||||
|
|
|
|||
3
hram.asm
3
hram.asm
|
|
@ -151,5 +151,8 @@ H_CURRENTSPRITEOFFSET EQU $FFDA ; multiple of $10
|
|||
|
||||
H_WHOSETURN EQU $FFF3 ; 0 on player’s turn, 1 on enemy’s turn
|
||||
|
||||
; bit 0: draw HP fraction to the right of bar instead of below (for party menu)
|
||||
hFlags_0xFFF6 EQU $FFF6
|
||||
|
||||
hJoyInput EQU $FFF8
|
||||
|
||||
|
|
|
|||
2
main.asm
2
main.asm
|
|
@ -126,7 +126,7 @@ LoadMonData_:
|
|||
|
||||
.copyMonData
|
||||
ld de, wcf98
|
||||
ld bc, 44
|
||||
ld bc, wPartyMon2 - wPartyMon1
|
||||
jp CopyData
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue