mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-06 15:45:24 +13:00
named animation functions/variables
This commit is contained in:
parent
e6d02b4b7b
commit
82512e4491
41 changed files with 781 additions and 642 deletions
|
|
@ -3,21 +3,21 @@ UsedCut: ; ef54 (3:6f54)
|
|||
ld [wActionResultOrTookBattleTurn], a ; initialise to failure value
|
||||
ld a, [W_CURMAPTILESET]
|
||||
and a ; OVERWORLD
|
||||
jr z, .asm_ef6b
|
||||
jr z, .overworld
|
||||
cp GYM
|
||||
jr nz, .asm_ef77
|
||||
jr nz, .nothingToCut
|
||||
ld a, [wTileInFrontOfPlayer]
|
||||
cp $50 ; gym cut tree
|
||||
jr nz, .asm_ef77
|
||||
jr .asm_ef82
|
||||
.asm_ef6b
|
||||
jr nz, .nothingToCut
|
||||
jr .canCut
|
||||
.overworld
|
||||
dec a
|
||||
ld a, [wTileInFrontOfPlayer]
|
||||
cp $3d ; cut tree
|
||||
jr z, .asm_ef82
|
||||
jr z, .canCut
|
||||
cp $52 ; grass
|
||||
jr z, .asm_ef82
|
||||
.asm_ef77
|
||||
jr z, .canCut
|
||||
.nothingToCut
|
||||
ld hl, .NothingToCutText
|
||||
jp PrintText
|
||||
|
||||
|
|
@ -25,9 +25,9 @@ UsedCut: ; ef54 (3:6f54)
|
|||
TX_FAR _NothingToCutText
|
||||
db "@"
|
||||
|
||||
.asm_ef82
|
||||
.canCut
|
||||
ld [wCutTile], a
|
||||
ld a, $1
|
||||
ld a, 1
|
||||
ld [wActionResultOrTookBattleTurn], a ; used cut
|
||||
ld a, [wWhichPokemon]
|
||||
ld hl, wPartyMonNicks
|
||||
|
|
@ -37,7 +37,7 @@ UsedCut: ; ef54 (3:6f54)
|
|||
call GBPalWhiteOutWithDelay3
|
||||
call ClearSprites
|
||||
call RestoreScreenTilesAndReloadTilePatterns
|
||||
ld a, $90
|
||||
ld a, SCREEN_HEIGHT_PIXELS
|
||||
ld [hWY], a
|
||||
call Delay3
|
||||
call LoadGBPal
|
||||
|
|
@ -53,11 +53,11 @@ UsedCut: ; ef54 (3:6f54)
|
|||
res 6, [hl]
|
||||
ld a, $ff
|
||||
ld [wUpdateSpritesEnabled], a
|
||||
call AnimateCutTree
|
||||
call InitCutAnimOAM
|
||||
ld de, CutTreeBlockSwaps
|
||||
call Func_f09f
|
||||
call ReplaceTreeTileBlock
|
||||
call RedrawMapView
|
||||
callba Func_79e96
|
||||
callba AnimCut
|
||||
ld a, $1
|
||||
ld [wUpdateSpritesEnabled], a
|
||||
ld a, SFX_CUT
|
||||
|
|
@ -71,14 +71,15 @@ UsedCutText: ; eff2 (3:6ff2)
|
|||
TX_FAR _UsedCutText
|
||||
db "@"
|
||||
|
||||
AnimateCutTree: ; eff7 (3:6ff7)
|
||||
InitCutAnimOAM: ; eff7 (3:6ff7)
|
||||
xor a
|
||||
ld [wWhichAnimationOffsets], a
|
||||
ld a, $e4
|
||||
ld [rOBP1], a
|
||||
ld a, [wCutTile]
|
||||
cp $52
|
||||
jr z, .asm_f020
|
||||
jr z, .grass
|
||||
; tree
|
||||
ld de, Overworld_GFX + $2d0 ; cuttable tree sprite top row
|
||||
ld hl, vChars1 + $7c0
|
||||
ld bc, (BANK(Overworld_GFX) << 8) + $02
|
||||
|
|
@ -87,45 +88,45 @@ AnimateCutTree: ; eff7 (3:6ff7)
|
|||
ld hl, vChars1 + $7e0
|
||||
ld bc, (BANK(Overworld_GFX) << 8) + $02
|
||||
call CopyVideoData
|
||||
jr WriteCutTreeBoulderDustAnimationOAMBlock
|
||||
.asm_f020
|
||||
jr WriteCutOrBoulderDustAnimationOAMBlock
|
||||
.grass
|
||||
ld hl, vChars1 + $7c0
|
||||
call LoadCutTreeAnimationTilePattern
|
||||
call LoadCutGrassAnimationTilePattern
|
||||
ld hl, vChars1 + $7d0
|
||||
call LoadCutTreeAnimationTilePattern
|
||||
call LoadCutGrassAnimationTilePattern
|
||||
ld hl, vChars1 + $7e0
|
||||
call LoadCutTreeAnimationTilePattern
|
||||
call LoadCutGrassAnimationTilePattern
|
||||
ld hl, vChars1 + $7f0
|
||||
call LoadCutTreeAnimationTilePattern
|
||||
call WriteCutTreeBoulderDustAnimationOAMBlock
|
||||
call LoadCutGrassAnimationTilePattern
|
||||
call WriteCutOrBoulderDustAnimationOAMBlock
|
||||
ld hl, wOAMBuffer + $93
|
||||
ld de, $4
|
||||
ld de, 4
|
||||
ld a, $30
|
||||
ld c, e
|
||||
.asm_f044
|
||||
.loop
|
||||
ld [hl], a
|
||||
add hl, de
|
||||
xor $60
|
||||
dec c
|
||||
jr nz, .asm_f044
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
LoadCutTreeAnimationTilePattern: ; f04c (3:704c)
|
||||
LoadCutGrassAnimationTilePattern: ; f04c (3:704c)
|
||||
ld de, AnimationTileset2 + $60 ; tile depicting a leaf
|
||||
ld bc, (BANK(AnimationTileset2) << 8) + $01
|
||||
jp CopyVideoData
|
||||
|
||||
WriteCutTreeBoulderDustAnimationOAMBlock: ; f055 (3:7055)
|
||||
call GetCutTreeBoulderDustAnimationOffsets
|
||||
WriteCutOrBoulderDustAnimationOAMBlock: ; f055 (3:7055)
|
||||
call GetCutOrBoulderDustAnimationOffsets
|
||||
ld a, $9
|
||||
ld de, CutTreeBoulderDustAnimationTilesAndAttributes
|
||||
ld de, CutOrBoulderDustAnimationTilesAndAttributes
|
||||
jp WriteOAMBlock
|
||||
|
||||
CutTreeBoulderDustAnimationTilesAndAttributes: ; f060 (3:7060)
|
||||
CutOrBoulderDustAnimationTilesAndAttributes: ; f060 (3:7060)
|
||||
db $FC,$10,$FD,$10
|
||||
db $FE,$10,$FF,$10
|
||||
|
||||
GetCutTreeBoulderDustAnimationOffsets: ; f068 (3:7068)
|
||||
GetCutOrBoulderDustAnimationOffsets: ; f068 (3:7068)
|
||||
ld hl, wSpriteStateData1 + 4
|
||||
ld a, [hli] ; player's sprite screen Y position
|
||||
ld b, a
|
||||
|
|
@ -140,10 +141,10 @@ GetCutTreeBoulderDustAnimationOffsets: ; f068 (3:7068)
|
|||
ld d, $0 ; de holds direction (00: down, 02: up, 04: left, 06: right)
|
||||
ld a, [wWhichAnimationOffsets]
|
||||
and a
|
||||
ld hl, CutTreeAnimationOffsets
|
||||
jr z, .asm_f084
|
||||
ld hl, CutAnimationOffsets
|
||||
jr z, .next
|
||||
ld hl, BoulderDustAnimationOffsets
|
||||
.asm_f084
|
||||
.next
|
||||
add hl, de
|
||||
ld e, [hl]
|
||||
inc hl
|
||||
|
|
@ -156,7 +157,7 @@ GetCutTreeBoulderDustAnimationOffsets: ; f068 (3:7068)
|
|||
ld c, a
|
||||
ret
|
||||
|
||||
CutTreeAnimationOffsets: ; f08f (3:708f)
|
||||
CutAnimationOffsets: ; f08f (3:708f)
|
||||
; Each pair represents the x and y pixels offsets from the player of where the cut tree animation should be drawn
|
||||
db 8, 36 ; player is facing down
|
||||
db 8, 4 ; player is facing up
|
||||
|
|
@ -171,75 +172,79 @@ BoulderDustAnimationOffsets: ; f097 (3:7097)
|
|||
db -24, 20 ; player is facing left
|
||||
db 40, 20 ; player is facing right
|
||||
|
||||
Func_f09f: ; f09f (3:709f)
|
||||
ReplaceTreeTileBlock: ; f09f (3:709f)
|
||||
; Determine the address of the tile block that contains the tile in front of the
|
||||
; player (i.e. where the tree is) and replace it with the corresponding tile
|
||||
; block that doesn't have the tree.
|
||||
push de
|
||||
ld a, [W_CURMAPWIDTH]
|
||||
add $6
|
||||
add 6
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld d, $0
|
||||
ld b, 0
|
||||
ld d, 0
|
||||
ld hl, wCurrentTileBlockMapViewPointer
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
add hl, bc
|
||||
ld a, [wSpriteStateData1 + 9]
|
||||
ld a, [wSpriteStateData1 + 9] ; player sprite's facing direction
|
||||
and a
|
||||
jr z, .down
|
||||
cp SPRITE_FACING_UP
|
||||
jr z, .up
|
||||
cp SPRITE_FACING_LEFT
|
||||
jr z, .left
|
||||
; right
|
||||
ld a, [W_XBLOCKCOORD]
|
||||
and a
|
||||
jr z, .asm_f0e0
|
||||
jr .asm_f0ec
|
||||
jr z, .centerTileBlock
|
||||
jr .rightOfCenter
|
||||
.down
|
||||
ld a, [W_YBLOCKCOORD]
|
||||
and a
|
||||
jr z, .asm_f0e0
|
||||
jr .asm_f0df
|
||||
jr z, .centerTileBlock
|
||||
jr .belowCenter
|
||||
.up
|
||||
ld a, [W_YBLOCKCOORD]
|
||||
and a
|
||||
jr z, .asm_f0e1
|
||||
jr .asm_f0e0
|
||||
jr z, .aboveCenter
|
||||
jr .centerTileBlock
|
||||
.left
|
||||
ld a, [W_XBLOCKCOORD]
|
||||
and a
|
||||
jr z, .asm_f0e6
|
||||
jr .asm_f0e0
|
||||
.asm_f0df
|
||||
jr z, .leftOfCenter
|
||||
jr .centerTileBlock
|
||||
.belowCenter
|
||||
add hl, bc
|
||||
.asm_f0e0
|
||||
.centerTileBlock
|
||||
add hl, bc
|
||||
.asm_f0e1
|
||||
.aboveCenter
|
||||
ld e, $2
|
||||
add hl, de
|
||||
jr .asm_f0f0
|
||||
.asm_f0e6
|
||||
jr .next
|
||||
.leftOfCenter
|
||||
ld e, $1
|
||||
add hl, bc
|
||||
add hl, de
|
||||
jr .asm_f0f0
|
||||
.asm_f0ec
|
||||
jr .next
|
||||
.rightOfCenter
|
||||
ld e, $3
|
||||
add hl, bc
|
||||
add hl, de
|
||||
.asm_f0f0
|
||||
.next
|
||||
pop de
|
||||
ld a, [hl]
|
||||
ld c, a
|
||||
.asm_f0f3
|
||||
.loop ; find the matching tile block in the array
|
||||
ld a, [de]
|
||||
inc de
|
||||
inc de
|
||||
cp $ff
|
||||
ret z
|
||||
cp c
|
||||
jr nz, .asm_f0f3
|
||||
jr nz, .loop
|
||||
dec de
|
||||
ld a, [de]
|
||||
ld a, [de] ; replacement tile block from matching array entry
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue