mirror of
https://github.com/thornAvery/kep-hack.git
synced 2026-02-06 15:45:24 +13:00
Pull a lot of engine out of main.asm
This commit is contained in:
parent
ea3ba4cde3
commit
15427f5320
110 changed files with 39093 additions and 38990 deletions
520
engine/overworld/player_animations.asm
Executable file
520
engine/overworld/player_animations.asm
Executable file
|
|
@ -0,0 +1,520 @@
|
|||
Func_70510: ; 70510 (1c:4510)
|
||||
call Func_706ef
|
||||
ld a, $ec
|
||||
ld [$c104], a
|
||||
call Delay3
|
||||
push hl
|
||||
call GBFadeIn2
|
||||
ld hl, W_FLAGS_D733
|
||||
bit 7, [hl]
|
||||
res 7, [hl]
|
||||
jr nz, .asm_70568
|
||||
ld a, (SFX_02_4c - SFX_Headers_02) / 3
|
||||
call PlaySound
|
||||
ld hl, $d732
|
||||
bit 4, [hl]
|
||||
res 4, [hl]
|
||||
pop hl
|
||||
jr nz, .asm_7055e
|
||||
call Func_705aa
|
||||
ld a, (SFX_02_4f - SFX_Headers_02) / 3
|
||||
call PlaySound
|
||||
call Func_70787
|
||||
ld a, b
|
||||
and a
|
||||
jr nz, .asm_7055b
|
||||
ld hl, wWhichTrade ; $cd3d
|
||||
xor a
|
||||
ld [hli], a
|
||||
inc a
|
||||
ld [hli], a
|
||||
ld a, $8
|
||||
ld [hli], a
|
||||
ld [hl], $ff
|
||||
ld hl, $cd48
|
||||
call Func_70730
|
||||
.asm_70558
|
||||
call Func_2307
|
||||
.asm_7055b
|
||||
jp Func_70772
|
||||
.asm_7055e
|
||||
ld c, $32
|
||||
call DelayFrames
|
||||
call Func_705aa
|
||||
jr .asm_7055b
|
||||
.asm_70568
|
||||
pop hl
|
||||
ld de, BirdSprite ; $4d80
|
||||
ld hl, $8000
|
||||
ld bc, (BANK(BirdSprite) << 8) + $0c
|
||||
call CopyVideoData
|
||||
call Func_706d7
|
||||
ld a, (SFX_02_50 - SFX_Headers_02) / 3
|
||||
call PlaySound
|
||||
ld hl, wWhichTrade ; $cd3d
|
||||
xor a
|
||||
ld [hli], a
|
||||
ld a, $c
|
||||
ld [hli], a
|
||||
ld [hl], $8
|
||||
ld de, FlyAnimationEnterScreenCoords ; $4592
|
||||
call Func_706ae
|
||||
call LoadPlayerSpriteGraphics
|
||||
jr .asm_70558
|
||||
|
||||
FlyAnimationEnterScreenCoords: ; 70592 (1c:4592)
|
||||
; y, x pairs
|
||||
; This is the sequence of screen coordinates used by the overworld
|
||||
; Fly animation when the player is entering a map.
|
||||
db $05, $98
|
||||
db $0F, $90
|
||||
db $18, $88
|
||||
db $20, $80
|
||||
db $27, $78
|
||||
db $2D, $70
|
||||
db $32, $68
|
||||
db $36, $60
|
||||
db $39, $58
|
||||
db $3B, $50
|
||||
db $3C, $48
|
||||
db $3C, $40
|
||||
|
||||
Func_705aa: ; 705aa (1c:45aa)
|
||||
ld hl, wWhichTrade ; $cd3d
|
||||
ld a, $10
|
||||
ld [hli], a
|
||||
ld a, $3c
|
||||
ld [hli], a
|
||||
call Func_7077f
|
||||
ld [hl], a
|
||||
jp Func_70755
|
||||
|
||||
_DoFlyOrTeleportAwayGraphics: ; 705ba (1c:45ba)
|
||||
call Func_706ef
|
||||
call Func_70787
|
||||
ld a, b
|
||||
and a
|
||||
jr z, .asm_705ef
|
||||
dec a
|
||||
jp nz, Func_7067d
|
||||
.asm_705c8
|
||||
ld a, (SFX_02_4b - SFX_Headers_02) / 3
|
||||
call PlaySound
|
||||
ld hl, wWhichTrade ; $cd3d
|
||||
ld a, $f0
|
||||
ld [hli], a
|
||||
ld a, $ec
|
||||
ld [hli], a
|
||||
call Func_7077f
|
||||
ld [hl], a
|
||||
call Func_70755
|
||||
call Func_70787
|
||||
ld a, b
|
||||
dec a
|
||||
jr z, .asm_705e9
|
||||
ld c, $a
|
||||
call DelayFrames
|
||||
.asm_705e9
|
||||
call GBFadeOut2
|
||||
jp Func_70772
|
||||
.asm_705ef
|
||||
ld a, $4
|
||||
call StopMusic
|
||||
ld a, [$d732]
|
||||
bit 6, a
|
||||
jr z, .asm_70610
|
||||
ld hl, wWhichTrade ; $cd3d
|
||||
ld a, $10
|
||||
ld [hli], a
|
||||
ld a, $ff
|
||||
ld [hli], a
|
||||
xor a
|
||||
ld [hli], a
|
||||
ld [hl], $a1
|
||||
ld hl, $cd48
|
||||
call Func_70730
|
||||
jr .asm_705c8
|
||||
.asm_70610
|
||||
call Func_706d7
|
||||
ld hl, wWhichTrade ; $cd3d
|
||||
ld a, $ff
|
||||
ld [hli], a
|
||||
ld a, $8
|
||||
ld [hli], a
|
||||
ld [hl], $c
|
||||
call Func_706ae
|
||||
ld a, (SFX_02_50 - SFX_Headers_02) / 3
|
||||
call PlaySound
|
||||
ld hl, wWhichTrade ; $cd3d
|
||||
xor a
|
||||
ld [hli], a
|
||||
ld a, $c
|
||||
ld [hli], a
|
||||
ld [hl], $c
|
||||
ld de, FlyAnimationScreenCoords1 ; $464f
|
||||
call Func_706ae
|
||||
ld c, $28
|
||||
call DelayFrames
|
||||
ld hl, $cd3e
|
||||
ld a, $b
|
||||
ld [hli], a
|
||||
ld [hl], $8
|
||||
ld de, FlyAnimationScreenCoords2 ; $4667
|
||||
call Func_706ae
|
||||
call GBFadeOut2
|
||||
jp Func_70772
|
||||
|
||||
FlyAnimationScreenCoords1: ; 7064f (1c:464f)
|
||||
; y, x pairs
|
||||
; This is the sequence of screen coordinates used by the first part
|
||||
; of the Fly overworld animation.
|
||||
db $3C, $48
|
||||
db $3C, $50
|
||||
db $3B, $58
|
||||
db $3A, $60
|
||||
db $39, $68
|
||||
db $37, $70
|
||||
db $37, $78
|
||||
db $33, $80
|
||||
db $30, $88
|
||||
db $2D, $90
|
||||
db $2A, $98
|
||||
db $27, $A0
|
||||
|
||||
FlyAnimationScreenCoords2: ; 70667 (1c:4667)
|
||||
; y, x pairs
|
||||
; This is the sequence of screen coordinates used by the second part
|
||||
; of the Fly overworld animation.
|
||||
db $1A, $90
|
||||
db $19, $80
|
||||
db $17, $70
|
||||
db $15, $60
|
||||
db $12, $50
|
||||
db $0F, $40
|
||||
db $0C, $30
|
||||
db $09, $20
|
||||
db $05, $10
|
||||
db $00, $00
|
||||
|
||||
db $F0, $00
|
||||
|
||||
Func_7067d: ; 7067d (1c:467d)
|
||||
ld a, $ff
|
||||
ld [$cfcb], a
|
||||
ld a, [$c302]
|
||||
ld [$c30a], a
|
||||
ld a, [$c306]
|
||||
ld [$c30e], a
|
||||
ld a, $a0
|
||||
ld [wOAMBuffer], a
|
||||
ld [$c304], a
|
||||
ld c, $2
|
||||
call DelayFrames
|
||||
ld a, $a0
|
||||
ld [$c308], a
|
||||
ld [$c30c], a
|
||||
call GBFadeOut2
|
||||
ld a, $1
|
||||
ld [$cfcb], a
|
||||
jp Func_70772
|
||||
|
||||
Func_706ae: ; 706ae (1c:46ae)
|
||||
ld a, [$cd3f]
|
||||
xor $1
|
||||
ld [$cd3f], a
|
||||
ld [$c102], a
|
||||
call Delay3
|
||||
ld a, [wWhichTrade] ; $cd3d
|
||||
cp $ff
|
||||
jr z, .asm_706cd
|
||||
ld hl, $c104
|
||||
ld a, [de]
|
||||
inc de
|
||||
ld [hli], a
|
||||
inc hl
|
||||
ld a, [de]
|
||||
inc de
|
||||
ld [hl], a
|
||||
.asm_706cd
|
||||
ld a, [$cd3e]
|
||||
dec a
|
||||
ld [$cd3e], a
|
||||
jr nz, Func_706ae
|
||||
ret
|
||||
|
||||
Func_706d7: ; 706d7 (1c:46d7)
|
||||
ld de, BirdSprite ; $4d80
|
||||
ld hl, $8000
|
||||
ld bc, (BANK(BirdSprite) << 8) + $0c
|
||||
call CopyVideoData
|
||||
ld de, BirdSprite + $c0 ; $4e40 ; moving amination sprite
|
||||
ld hl, $8800
|
||||
ld bc, (BANK(BirdSprite) << 8) + $0c
|
||||
jp CopyVideoData
|
||||
|
||||
Func_706ef: ; 706ef (1c:46ef)
|
||||
ld a, [$c102]
|
||||
ld [$cd50], a
|
||||
ld a, [$c104]
|
||||
ld [$cd4f], a
|
||||
ld hl, PlayerSpinningFacingOrder ; $4713
|
||||
ld de, $cd48
|
||||
ld bc, $4
|
||||
call CopyData
|
||||
ld a, [$c102]
|
||||
ld hl, $cd48
|
||||
.asm_7070d
|
||||
cp [hl]
|
||||
inc hl
|
||||
jr nz, .asm_7070d
|
||||
dec hl
|
||||
ret
|
||||
|
||||
PlayerSpinningFacingOrder: ; 70713 (1c:4713)
|
||||
; The order of the direction the player's sprite is facing when teleporting
|
||||
; away. Creates a spinning effect.
|
||||
db $00, $08, $04, $0C ; down, left, up, right
|
||||
|
||||
Func_70717: ; 70717 (1c:4717)
|
||||
ld a, [hl]
|
||||
ld [$c102], a
|
||||
push hl
|
||||
ld hl, $cd48
|
||||
ld de, $cd47
|
||||
ld bc, $4
|
||||
call CopyData
|
||||
ld a, [$cd47]
|
||||
ld [$cd4b], a
|
||||
pop hl
|
||||
ret
|
||||
|
||||
Func_70730: ; 70730 (1c:4730)
|
||||
call Func_70717
|
||||
ld a, [wWhichTrade] ; $cd3d
|
||||
ld c, a
|
||||
and $3
|
||||
jr nz, .asm_70743
|
||||
ld a, [$cd40]
|
||||
cp $ff
|
||||
call nz, PlaySound
|
||||
.asm_70743
|
||||
ld a, [$cd3e]
|
||||
add c
|
||||
ld [wWhichTrade], a ; $cd3d
|
||||
ld c, a
|
||||
ld a, [$cd3f]
|
||||
cp c
|
||||
ret z
|
||||
call DelayFrames
|
||||
jr Func_70730
|
||||
|
||||
Func_70755: ; 70755 (1c:4755)
|
||||
call Func_70717
|
||||
ld a, [wWhichTrade] ; $cd3d
|
||||
ld c, a
|
||||
ld a, [$c104]
|
||||
add c
|
||||
ld [$c104], a
|
||||
ld c, a
|
||||
ld a, [$cd3e]
|
||||
cp c
|
||||
ret z
|
||||
ld a, [$cd3f]
|
||||
ld c, a
|
||||
call DelayFrames
|
||||
jr Func_70755
|
||||
|
||||
Func_70772: ; 70772 (1c:4772)
|
||||
ld a, [$cd4f]
|
||||
ld [$c104], a
|
||||
ld a, [$cd50]
|
||||
ld [$c102], a
|
||||
ret
|
||||
|
||||
Func_7077f: ; 7077f (1c:477f)
|
||||
ld a, [$cf1b]
|
||||
xor $1
|
||||
inc a
|
||||
inc a
|
||||
ret
|
||||
|
||||
Func_70787: ; 70787 (1c:4787)
|
||||
ld b, 0
|
||||
ld hl, DataTable_707a9 ; $47a9
|
||||
ld a, [W_CURMAPTILESET] ; $d367
|
||||
ld c, a
|
||||
.asm_70790
|
||||
ld a, [hli]
|
||||
cp $ff
|
||||
jr z, .asm_707a4
|
||||
cp c
|
||||
jr nz, .asm_7079e
|
||||
FuncCoord 8, 9 ; $c45c
|
||||
ld a, [Coord]
|
||||
cp [hl]
|
||||
jr z, .asm_707a2
|
||||
.asm_7079e
|
||||
inc hl
|
||||
inc hl
|
||||
jr .asm_70790
|
||||
.asm_707a2
|
||||
inc hl
|
||||
ld b, [hl]
|
||||
.asm_707a4
|
||||
ld a, b
|
||||
ld [$cd5b], a
|
||||
ret
|
||||
|
||||
; format: db tileset id, tile id, value to be put in $cd5b
|
||||
DataTable_707a9: ; 707a9 (1c:47a9)
|
||||
db FACILITY, $20, 1 ; warp pad
|
||||
db FACILITY, $11, 2 ; hole
|
||||
db CAVERN, $22, 2 ; hole
|
||||
db INTERIOR, $55, 1 ; warp pad
|
||||
db $FF
|
||||
|
||||
Func_707b6: ; 707b6 (1c:47b6)
|
||||
ld c, $a
|
||||
call DelayFrames
|
||||
ld hl, $d736
|
||||
set 6, [hl]
|
||||
ld de, RedSprite ; $4180
|
||||
ld hl, $8000
|
||||
ld bc, (BANK(RedSprite) << 8) + $0c
|
||||
call CopyVideoData
|
||||
ld a, $4
|
||||
ld hl, RedFishingTiles ; $4866
|
||||
call Func_71771
|
||||
ld a, [$c102]
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld hl, FishingRodGfxProperties ; $4856
|
||||
add hl, bc
|
||||
ld de, $c39c
|
||||
ld bc, $4
|
||||
call CopyData
|
||||
ld c, $64
|
||||
call DelayFrames
|
||||
ld a, [wWhichTrade] ; $cd3d
|
||||
and a
|
||||
ld hl, NoNibbleText
|
||||
jr z, .asm_70836
|
||||
cp $2
|
||||
ld hl, NothingHereText
|
||||
jr z, .asm_70836
|
||||
ld b, $a
|
||||
.asm_707fe
|
||||
ld hl, $c104
|
||||
call Func_70842
|
||||
ld hl, $c39c
|
||||
call Func_70842
|
||||
call Delay3
|
||||
dec b
|
||||
jr nz, .asm_707fe
|
||||
ld a, [$c102]
|
||||
cp $4
|
||||
jr nz, .asm_7081c
|
||||
ld a, $a0
|
||||
ld [$c39c], a
|
||||
.asm_7081c
|
||||
ld hl, $cd4f
|
||||
xor a
|
||||
ld [hli], a
|
||||
ld [hl], a
|
||||
ld a, $4c
|
||||
call Predef ; indirect jump to PrintEmotionBubble (17c47 (5:7c47))
|
||||
ld a, [$c102]
|
||||
cp $4
|
||||
jr nz, .asm_70833
|
||||
ld a, $44
|
||||
ld [$c39c], a
|
||||
.asm_70833
|
||||
ld hl, ItsABiteText
|
||||
.asm_70836
|
||||
call PrintText
|
||||
ld hl, $d736
|
||||
res 6, [hl]
|
||||
call LoadFontTilePatterns
|
||||
ret
|
||||
|
||||
Func_70842: ; 70842 (1c:4842)
|
||||
ld a, [hl]
|
||||
xor $1
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
NoNibbleText: ; 70847 (1c:4847)
|
||||
TX_FAR _NoNibbleText
|
||||
db "@"
|
||||
|
||||
NothingHereText: ; 7084c (1c:484c)
|
||||
TX_FAR _NothingHereText
|
||||
db "@"
|
||||
|
||||
ItsABiteText: ; 70851 (1c:4851)
|
||||
TX_FAR _ItsABiteText
|
||||
db "@"
|
||||
|
||||
FishingRodGfxProperties: ; 70856 (1c:4856)
|
||||
; specicies how the fishing rod should be drawn on the screen
|
||||
; first byte = screen y coordinate
|
||||
; second byte = screen x coordinate
|
||||
; third byte = tile number
|
||||
; fourth byte = sprite properties
|
||||
db $5B, $4C, $FD, $00 ; player facing down
|
||||
db $44, $4C, $FD, $00 ; player facing up
|
||||
db $50, $40, $FE, $00 ; player facing left
|
||||
db $50, $58, $FE, $20 ; player facing right ($20 means "horizontally flip the tile")
|
||||
|
||||
RedFishingTiles: ; 70866 (1c:4866)
|
||||
dw RedFishingTilesFront
|
||||
db $02, $1E
|
||||
dw $8020
|
||||
|
||||
dw RedFishingTilesBack
|
||||
db $02, $1E
|
||||
dw $8060
|
||||
|
||||
dw RedFishingTilesSide
|
||||
db $02, $1E
|
||||
dw $80A0
|
||||
|
||||
dw RedFishingRodTiles
|
||||
db $03, $1E
|
||||
dw $8FD0
|
||||
|
||||
_HandleMidJump: ; 7087e (1c:487e)
|
||||
ld a, [$d714]
|
||||
ld c, a
|
||||
inc a
|
||||
cp $10
|
||||
jr nc, .asm_70895
|
||||
ld [$d714], a
|
||||
ld b, $0
|
||||
ld hl, PlayerJumpingYScreenCoords ; $48ba
|
||||
add hl, bc
|
||||
ld a, [hl]
|
||||
ld [$c104], a ; player's sprite y coordinate
|
||||
ret
|
||||
.asm_70895
|
||||
ld a, [wWalkCounter] ; $cfc5
|
||||
cp $0
|
||||
ret nz
|
||||
call UpdateSprites
|
||||
call Delay3
|
||||
xor a
|
||||
ld [H_CURRENTPRESSEDBUTTONS], a
|
||||
ld [H_NEWLYPRESSEDBUTTONS], a
|
||||
ld [H_NEWLYRELEASEDBUTTONS], a
|
||||
ld [$d714], a
|
||||
ld hl, $d736
|
||||
res 6, [hl]
|
||||
ld hl, $d730
|
||||
res 7, [hl]
|
||||
xor a
|
||||
ld [wJoypadForbiddenButtonsMask], a
|
||||
ret
|
||||
|
||||
PlayerJumpingYScreenCoords: ; 708ba (1c:48ba)
|
||||
; Sequence of y screen coordinates for player's sprite when jumping over a ledge.
|
||||
db $38, $36, $34, $32, $31, $30, $30, $30, $31, $32, $33, $34, $36, $38, $3C, $3C
|
||||
Loading…
Add table
Add a link
Reference in a new issue