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
258
engine/overworld/cut.asm
Executable file
258
engine/overworld/cut.asm
Executable file
|
|
@ -0,0 +1,258 @@
|
|||
UsedCut: ; ef54 (3:6f54)
|
||||
xor a
|
||||
ld [$cd6a], a
|
||||
ld a, [W_CURMAPTILESET] ; $d367
|
||||
and a ; OVERWORLD
|
||||
jr z, .asm_ef6b
|
||||
cp GYM
|
||||
jr nz, .asm_ef77
|
||||
ld a, [$cfc6]
|
||||
cp $50 ; gym cut tree
|
||||
jr nz, .asm_ef77
|
||||
jr asm_ef82
|
||||
.asm_ef6b
|
||||
dec a
|
||||
ld a, [$cfc6]
|
||||
cp $3d ; cut tree
|
||||
jr z, asm_ef82
|
||||
cp $52 ; grass
|
||||
jr z, asm_ef82
|
||||
.asm_ef77
|
||||
ld hl, NothingToCutText
|
||||
jp PrintText
|
||||
|
||||
NothingToCutText: ; ef7d (3:6f7d)
|
||||
TX_FAR _NothingToCutText
|
||||
db "@"
|
||||
|
||||
asm_ef82: ; ef82 (3:6f82)
|
||||
ld [$cd4d], a
|
||||
ld a, $1
|
||||
ld [$cd6a], a
|
||||
ld a, [wWhichPokemon] ; $cf92
|
||||
ld hl, W_PARTYMON1NAME ; $d2b5
|
||||
call GetPartyMonName
|
||||
ld hl, $d730
|
||||
set 6, [hl]
|
||||
call GBPalWhiteOutWithDelay3
|
||||
call CleanLCD_OAM
|
||||
call Func_3dbe
|
||||
ld a, $90
|
||||
ld [$ffb0], a
|
||||
call Delay3
|
||||
call LoadGBPal
|
||||
call LoadCurrentMapView
|
||||
call SaveScreenTilesToBuffer2
|
||||
call Delay3
|
||||
xor a
|
||||
ld [$ffb0], a
|
||||
ld hl, UsedCutText
|
||||
call PrintText
|
||||
call LoadScreenTilesFromBuffer2
|
||||
ld hl, $d730
|
||||
res 6, [hl]
|
||||
ld a, $ff
|
||||
ld [$cfcb], a
|
||||
call AnimateCutTree
|
||||
ld de, CutTreeBlockSwaps ; $7100
|
||||
call Func_f09f
|
||||
call Func_eedc
|
||||
callba Func_79e96
|
||||
ld a, $1
|
||||
ld [$cfcb], a
|
||||
ld a, (SFX_02_56 - SFX_Headers_02) / 3
|
||||
call PlaySound
|
||||
ld a, $90
|
||||
ld [$ffb0], a
|
||||
call UpdateSprites
|
||||
jp Func_eedc
|
||||
|
||||
UsedCutText: ; eff2 (3:6ff2)
|
||||
TX_FAR _UsedCutText
|
||||
db "@"
|
||||
|
||||
AnimateCutTree: ; eff7 (3:6ff7)
|
||||
xor a
|
||||
ld [$cd50], a
|
||||
ld a, $e4
|
||||
ld [rOBP1], a ; $ff49
|
||||
ld a, [$cd4d]
|
||||
cp $52
|
||||
jr z, .asm_f020
|
||||
ld de, Overworld_GFX + $2d0 ; $42d0 ; cuttable tree sprite top row
|
||||
ld hl, $8fc0
|
||||
ld bc, (BANK(Overworld_GFX) << 8) + $02
|
||||
call CopyVideoData
|
||||
ld de, Overworld_GFX + $3d0 ; $43d0 ; cuttable tree sprite bottom row
|
||||
ld hl, $8fe0
|
||||
ld bc, (BANK(Overworld_GFX) << 8) + $02
|
||||
call CopyVideoData
|
||||
jr asm_f055
|
||||
.asm_f020
|
||||
ld hl, $8fc0
|
||||
call LoadCutTreeOAM
|
||||
ld hl, $8fd0
|
||||
call LoadCutTreeOAM
|
||||
ld hl, $8fe0
|
||||
call LoadCutTreeOAM
|
||||
ld hl, $8ff0
|
||||
call LoadCutTreeOAM
|
||||
call asm_f055
|
||||
ld hl, $c393
|
||||
ld de, $4
|
||||
ld a, $30
|
||||
ld c, e
|
||||
.asm_f044
|
||||
ld [hl], a
|
||||
add hl, de
|
||||
xor $60
|
||||
dec c
|
||||
jr nz, .asm_f044
|
||||
ret
|
||||
|
||||
LoadCutTreeOAM: ; f04c (3:704c)
|
||||
ld de, AnimationTileset2 + $60 ; $474e ; tile depicting a leaf
|
||||
ld bc, (BANK(AnimationTileset2) << 8) + $01
|
||||
jp CopyVideoData
|
||||
asm_f055: ; f055 (3:7055)
|
||||
call Func_f068
|
||||
ld a, $9
|
||||
ld de, CutTreeOAM ; $7060
|
||||
jp WriteOAMBlock
|
||||
|
||||
CutTreeOAM: ; f060 (3:7060)
|
||||
db $FC,$10,$FD,$10
|
||||
db $FE,$10,$FF,$10
|
||||
|
||||
Func_f068: ; f068 (3:7068)
|
||||
ld hl, $c104
|
||||
ld a, [hli]
|
||||
ld b, a
|
||||
inc hl
|
||||
ld a, [hli]
|
||||
ld c, a ; bc holds ypos/xpos of player's sprite
|
||||
inc hl
|
||||
inc hl
|
||||
ld a, [hl] ; a holds direction of player (00: down, 04: up, 08: left, 0C: right)
|
||||
srl a
|
||||
ld e, a
|
||||
ld d, $0 ; de holds direction (00: down, 02: up, 04: left, 06: right)
|
||||
ld a, [$cd50]
|
||||
and a
|
||||
ld hl, CutTreeAnimationOffsets ; $708f
|
||||
jr z, .asm_f084
|
||||
ld hl, CutTreeAnimationOffsets2 ; $7097
|
||||
.asm_f084
|
||||
add hl, de
|
||||
ld e, [hl]
|
||||
inc hl
|
||||
ld d, [hl]
|
||||
ld a, b
|
||||
add d
|
||||
ld b, a
|
||||
ld a, c
|
||||
add e
|
||||
ld c, a
|
||||
ret
|
||||
|
||||
CutTreeAnimationOffsets: ; 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
|
||||
db -8, 20 ; player is facing left
|
||||
db 24, 20 ; player is facing right
|
||||
|
||||
CutTreeAnimationOffsets2: ; f097 (3:7097)
|
||||
; Not sure if these ever get used. CutTreeAnimationOffsets only seems to be used.
|
||||
; Each pair represents the x and y pixels offsets from the player of where the cut tree animation should be drawn
|
||||
; These offsets represent 2 blocks away from the player
|
||||
db 8, 52 ; player is facing down
|
||||
db 8, -12 ; player is facing up
|
||||
db -24, 20 ; player is facing left
|
||||
db 40, 20 ; player is facing right
|
||||
|
||||
Func_f09f: ; f09f (3:709f)
|
||||
push de
|
||||
ld a, [W_CURMAPWIDTH] ; $d369
|
||||
add $6
|
||||
ld c, a
|
||||
ld b, $0
|
||||
ld d, $0
|
||||
ld hl, $d35f
|
||||
ld a, [hli]
|
||||
ld h, [hl]
|
||||
ld l, a
|
||||
add hl, bc
|
||||
ld a, [$c109]
|
||||
and a
|
||||
jr z, .asm_f0c7
|
||||
cp $4
|
||||
jr z, .asm_f0cf
|
||||
cp $8
|
||||
jr z, .asm_f0d7
|
||||
ld a, [W_XBLOCKCOORD] ; $d364
|
||||
and a
|
||||
jr z, .asm_f0e0
|
||||
jr .asm_f0ec
|
||||
.asm_f0c7
|
||||
ld a, [W_YBLOCKCOORD] ; $d363
|
||||
and a
|
||||
jr z, .asm_f0e0
|
||||
jr .asm_f0df
|
||||
.asm_f0cf
|
||||
ld a, [W_YBLOCKCOORD] ; $d363
|
||||
and a
|
||||
jr z, .asm_f0e1
|
||||
jr .asm_f0e0
|
||||
.asm_f0d7
|
||||
ld a, [W_XBLOCKCOORD] ; $d364
|
||||
and a
|
||||
jr z, .asm_f0e6
|
||||
jr .asm_f0e0
|
||||
.asm_f0df
|
||||
add hl, bc
|
||||
.asm_f0e0
|
||||
add hl, bc
|
||||
.asm_f0e1
|
||||
ld e, $2
|
||||
add hl, de
|
||||
jr .asm_f0f0
|
||||
.asm_f0e6
|
||||
ld e, $1
|
||||
add hl, bc
|
||||
add hl, de
|
||||
jr .asm_f0f0
|
||||
.asm_f0ec
|
||||
ld e, $3
|
||||
add hl, bc
|
||||
add hl, de
|
||||
.asm_f0f0
|
||||
pop de
|
||||
ld a, [hl]
|
||||
ld c, a
|
||||
.asm_f0f3
|
||||
ld a, [de]
|
||||
inc de
|
||||
inc de
|
||||
cp $ff
|
||||
ret z
|
||||
cp c
|
||||
jr nz, .asm_f0f3
|
||||
dec de
|
||||
ld a, [de]
|
||||
ld [hl], a
|
||||
ret
|
||||
|
||||
CutTreeBlockSwaps: ; f100 (3:7100)
|
||||
; first byte = tileset block containing the cut tree
|
||||
; second byte = corresponding tileset block after the cut animation happens
|
||||
db $32, $6D
|
||||
db $33, $6C
|
||||
db $34, $6F
|
||||
db $35, $4C
|
||||
db $60, $6E
|
||||
db $0B, $0A
|
||||
db $3C, $35
|
||||
db $3F, $35
|
||||
db $3D, $36
|
||||
db $FF ; list terminator
|
||||
Loading…
Add table
Add a link
Reference in a new issue