summaryrefslogtreecommitdiff
path: root/engine/bank3f.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/bank3f.asm')
-rw-r--r--engine/bank3f.asm563
1 files changed, 300 insertions, 263 deletions
diff --git a/engine/bank3f.asm b/engine/bank3f.asm
index 85674ec4..37aca92f 100644
--- a/engine/bank3f.asm
+++ b/engine/bank3f.asm
@@ -26,123 +26,122 @@ Func_fc4fa:: ; fc4fa (3f:44fa)
ld hl, wPikachuOverworldStateFlags
bit 4, [hl]
res 4, [hl]
- jr nz, .asm_fc515
+ jr nz, .normal_spawn_state
call EnablePikachuFollowingPlayer
- call Func_fc523
+ call ClearPikachuSpriteStateData
ld a, $ff
- ld [wSpriteStateData1 + $f2], a
+ ld [wPikachuSpriteImageIdx], a
call ClearPikachuFollowCommandBuffer
- call Func_fc5bc
+ call CalculatePikachuFacingDirection
ret
-.asm_fc515
- call Func_fc53f
+.normal_spawn_state
+ call CalculatePikachuPlacementCoords
xor a
- ld [wd431], a
- ld a, [wSpriteStateData1 + $9]
- ld [wSpriteStateData1 + $f9], a
+ ld [wPikachuSpawnState], a
+ ld a, [wPlayerFacingDirection]
+ ld [wPikachuFacingDirection], a
ret
-Func_fc523:: ; fc523 (3f:4523)
- ld hl, wSpriteStateData1 + $f0
- call Func_fc52c
- ld hl, wSpriteStateData2 + $f0
-Func_fc52c:: ; fc52c (3f:4523)
+ClearPikachuSpriteStateData:: ; fc523 (3f:4523)
+ ld hl, wPikachuPictureID
+ call .clear
+ ld hl, wPikachuSpriteStateData2
+.clear
ld bc, $10
xor a
call FillMemory
ret
Func_fc534:: ; fc534 (3f:4534)
- call Func_fc53f
- call Func_fc5bc
+ call CalculatePikachuPlacementCoords
+ call CalculatePikachuFacingDirection
xor a
- ld [wd431], a
+ ld [wPikachuSpawnState], a
ret
-Func_fc53f:: ; fc53f (3f:453f)
- ld bc, wSpriteStateData1 + $f0
+CalculatePikachuPlacementCoords:: ; fc53f (3f:453f)
+ ld bc, wPikachuPictureID
ld a, [wYCoord]
add $4
ld e, a
ld a, [wXCoord]
add $4
ld d, a
- ld a, [wd431]
+ ld a, [wPikachuSpawnState]
and a
- jr z, .asm_fc5aa
+ jr z, .load_coords
cp $1
- jr z, .asm_fc59e
+ jr z, .right_of_player
cp $2
- jr z, .asm_fc584
+ jr z, .check_player_facing2
cp $3
- jr z, .asm_fc5aa
+ jr z, .load_coords
cp $4
- jr z, .asm_fc5a4
+ jr z, .below_player
cp $5
- jr z, .asm_fc5a7
+ jr z, .above_player
cp $6
- jr z, .asm_fc5a1
+ jr z, .left_of_player
cp $7
- jr z, .asm_fc572
- jr .asm_fc59e
+ jr z, .check_player_facing
+ jr .right_of_player
-.asm_fc572
- ld a, [wSpriteStateData1 + $9]
+.check_player_facing
+ ld a, [wPlayerFacingDirection]
and a ; SPRITE_FACING_DOWN
- jr z, .asm_fc5a4
+ jr z, .below_player
cp SPRITE_FACING_UP
- jr z, .asm_fc5a7
+ jr z, .above_player
cp SPRITE_FACING_LEFT
- jr z, .asm_fc5a1
+ jr z, .left_of_player
cp SPRITE_FACING_RIGHT
- jr z, .asm_fc59e
-.asm_fc584
- ld a, [wSpriteStateData1 + $9]
+ jr z, .right_of_player
+.check_player_facing2
+ ld a, [wPlayerFacingDirection]
and a
- jr nz, .asm_fc58d
+ jr nz, .check_up
dec e
- jr .asm_fc5aa
+ jr .load_coords
-.asm_fc58d
+.check_up
cp SPRITE_FACING_UP
- jr nz, .asm_fc594
+ jr nz, .check_left
inc e
- jr .asm_fc5aa
+ jr .load_coords
-.asm_fc594
+.check_left
cp SPRITE_FACING_LEFT
- jr nz, .asm_fc59b
+ jr nz, .left_of_player_2
inc d
- jr .asm_fc5aa
+ jr .load_coords
-.asm_fc59b
+.left_of_player_2
dec d
- jr .asm_fc5aa
+ jr .load_coords
-.asm_fc59e
+.right_of_player
inc d
- jr .asm_fc5aa
+ jr .load_coords
-.asm_fc5a1
+.left_of_player
dec d
- jr .asm_fc5aa
+ jr .load_coords
-.asm_fc5a4
+.below_player
inc e
- jr .asm_fc5aa
+ jr .load_coords
-.asm_fc5a7
+.above_player
dec e
- jr .asm_fc5aa ; useless jr
-.asm_fc5aa
- ld hl, $104
+ jr .load_coords ; useless jr
+.load_coords
+ ld hl, wPlayerMapY - wPlayerSpriteStateData1
add hl, bc
ld [hl], e
inc hl
ld [hl], d
inc hl
-Func_fc4b2:: ; fc4b2 (3f:44b2)
ld [hl], $fe
push hl
ld hl, wd472
@@ -150,139 +149,164 @@ Func_fc4b2:: ; fc4b2 (3f:44b2)
pop hl
ret
-Func_fc5bc:: ; fc5bc (3f:45bc)
+CalculatePikachuFacingDirection:: ; fc5bc (3f:45bc)
ld a, $49
- ld [wSpriteStateData1 + $f0], a
+ ld [wPikachuPictureID], a
ld a, $ff
- ld [wSpriteStateData1 + $f2], a
- ld a, [wd431]
+ ld [wPikachuSpriteImageIdx], a
+ ld a, [wPikachuSpawnState]
and a
- jr z, .asm_fc5e4
+ jr z, .copy_player_facing
cp $1
- jr z, .asm_fc5e4
+ jr z, .copy_player_facing
cp $3
- jr z, .asm_fc5eb
+ jr z, .force_facing_down
cp $4
- jr z, .asm_fc5e4
+ jr z, .copy_player_facing
cp $6
- jr z, .asm_fc5e4
+ jr z, .copy_player_facing
cp $7
- jr z, .asm_fc5f1
+ jr z, .face_the_other_way
call Func_fccb2
ret
-.asm_fc5e4
- ld a, [wSpriteStateData1 + $9]
- ld [wSpriteStateData1 + $f9], a
+.copy_player_facing
+ ld a, [wPlayerFacingDirection]
+ ld [wPikachuFacingDirection], a
ret
-.asm_fc5eb
- ld a, $0
- ld [wSpriteStateData1 + $f9], a
+.force_facing_down
+ ld a, SPRITE_FACING_DOWN
+ ld [wPikachuFacingDirection], a
ret
-.asm_fc5f1
- ld a, [wSpriteStateData1 + $9]
+.face_the_other_way
+ ld a, [wPlayerFacingDirection]
xor $4
- ld [wSpriteStateData1 + $f9], a
+ ld [wPikachuFacingDirection], a
ret
-Func_fc5fa:: ; fc5fa (3f:45fa)
+CalculatePikachuSpawnState1:: ; fc5fa (3f:45fa)
ld a, [wCurMap]
cp OAKS_LAB
- jr z, .asm_fc63d
+ jr z, .oaks_lab
cp ROUTE_22_GATE
- jr z, .asm_fc62d
+ jr z, .route_22_gate
cp MT_MOON_2
- jr z, .asm_fc635
+ jr z, .mt_moon_2
cp ROCK_TUNNEL_1
- jr z, .asm_fc645
+ jr z, .rock_tunnel_1
ld a, [wCurMap]
ld hl, Pointer_fc64b
- call Func_1568 ; similar to IsInArray, but not the same
- jr c, .asm_fc639
+ call Pikachu_IsInArray ; similar to IsInArray, but not the same
+ jr c, .map_list_1
ld a, [wCurMap]
ld hl, Pointer_fc653
- call Func_1568
- jr nc, .asm_fc641
- ld a, [wSpriteStateData1 + $9]
+ call Pikachu_IsInArray
+ jr nc, .not_map_list_2
+ ld a, [wPlayerFacingDirection]
and a
- jr nz, .asm_fc641
+ jr nz, .not_map_list_2
ld a, $3
- jr .asm_fc647
+ jr .load
-.asm_fc62d
- ld a, [wSpriteStateData1 + $9]
+.route_22_gate
+ ld a, [wPlayerFacingDirection]
and a
- jr z, .asm_fc645
- jr .asm_fc641
+ jr z, .rock_tunnel_1
+ jr .not_map_list_2
-.asm_fc635
+.mt_moon_2
ld a, $3
- jr .asm_fc647
+ jr .load
-.asm_fc639
+.map_list_1
ld a, $4
- jr .asm_fc647
+ jr .load
-.asm_fc63d
+.oaks_lab
ld a, $6
- jr .asm_fc647
+ jr .load
-.asm_fc641
+.not_map_list_2
ld a, $1
- jr .asm_fc647
+ jr .load
-.asm_fc645
+.rock_tunnel_1
ld a, $3
-.asm_fc647
- ld [wd431], a
+.load
+ ld [wPikachuSpawnState], a
ret
Pointer_fc64b:: ; fc64b (3f:464b)
- db $c2, $4c, $4f, $ba, $be, $b8, $54, $ff
+ db VICTORY_ROAD_2
+ db ROUTE_7_GATE
+ db ROUTE_8_GATE
+ db ROUTE_16_GATE_1F
+ db ROUTE_18_GATE_1F
+ db ROUTE_15_GATE_1F
+ db ROUTE_11_GATE_1F
+ db $ff
Pointer_fc653:: ; fc653 (3f:4653)
- db $2f, $e6, $3e, $5e, $80, $31, $a4, $ff
-
-Func_fc65b:: ; fc65b (3f:465b)
+ db VIRIDIAN_FOREST_EXIT
+ db CERULEAN_HOUSE_2
+ db TRASHED_HOUSE
+ db VERMILION_DOCK
+ db CELADON_MANSION_1
+ db ROUTE_2_GATE
+ db FUCHSIA_HOUSE_3
+ db $ff
+
+CalculatePikachuSpawnState2:: ; fc65b (3f:465b)
ld a, [wCurMap]
cp VIRIDIAN_FOREST_EXIT
- jr z, .asm_fc673
+ jr z, .viridian_forest_exit
cp VIRIDIAN_FOREST_ENTRANCE
- jr z, .asm_fc67c
+ jr z, .viridian_forest_entrance
ld a, [wCurMap]
ld hl, Pointer_fc68e
- call Func_1568
- jr c, .asm_fc688
- jr .asm_fc684
+ call Pikachu_IsInArray
+ jr c, .in_array
+ jr .not_in_array
-.asm_fc673
- ld a, [wSpriteStateData1 + $9]
+.viridian_forest_exit
+ ld a, [wPlayerFacingDirection]
cp SPRITE_FACING_UP
- jr z, .asm_fc688
- jr .asm_fc684
+ jr z, .in_array
+ jr .not_in_array
-.asm_fc67c
- ld a, [wSpriteStateData1 + $9]
+.viridian_forest_entrance
+ ld a, [wPlayerFacingDirection]
and a ; SPRITE_FACING_DOWN
- jr z, .asm_fc684
- jr .asm_fc688
+ jr z, .not_in_array
+ jr .in_array
-.asm_fc684
+.not_in_array
ld a, $0
- jr .asm_fc68a
+ jr .load_spawn_state
-.asm_fc688
+.in_array
ld a, $1
-.asm_fc68a
- ld [wd431], a
+.load_spawn_state
+ ld [wPikachuSpawnState], a
ret
Pointer_fc68e:: ; fc68e (3f:468e)
- db $33, $dd, $df, $e0, $e1, $de, $ec, $7f, $a8, $a9, $aa, $ff
-
-Func_fc69a:: ; fc69a (3f:469a)
+ db VIRIDIAN_FOREST
+ db SAFARI_ZONE_REST_HOUSE_1
+ db SAFARI_ZONE_REST_HOUSE_2
+ db SAFARI_ZONE_REST_HOUSE_3
+ db SAFARI_ZONE_REST_HOUSE_4
+ db SAFARI_ZONE_SECRET_HOUSE
+ db SILPH_CO_ELEVATOR
+ db CELADON_MART_ELEVATOR
+ db CINNABAR_LAB_2
+ db CINNABAR_LAB_3
+ db CINNABAR_LAB_4
+ db $ff
+
+CalculatePikachuSpawnState3:: ; fc69a (3f:469a)
ld a, [wCurMap]
cp ROUTE_22_GATE
jr z, .asm_fc6a7
@@ -291,13 +315,13 @@ Func_fc69a:: ; fc69a (3f:469a)
jr .asm_fc6bd
.asm_fc6a7
- ld a, [wSpriteStateData1 + $9]
+ ld a, [wPlayerFacingDirection]
cp SPRITE_FACING_UP
jr z, .asm_fc6b9
jr .asm_fc6bd
.asm_fc6b0
- ld a, [wSpriteStateData1 + $9]
+ ld a, [wPlayerFacingDirection]
cp SPRITE_FACING_UP
jr z, .asm_fc6b9
jr .asm_fc6bd
@@ -311,7 +335,7 @@ Func_fc69a:: ; fc69a (3f:469a)
jr .asm_fc6c1
.asm_fc6c1
- ld [wd431], a
+ ld [wPikachuSpawnState], a
ret
Func_fc6c5:: ; fc6c5 (3f:46c5)
@@ -328,7 +352,7 @@ Func_fc6cd:: ; fc6cd (3f:46cd)
pop hl
ret
-Func_fc6d5:: ; fc6d5 (3f:46d5)
+SpawnPikachu_:: ; fc6d5 (3f:46d5)
call Func_fc6cd
call Func_fc727
ret nc
@@ -336,8 +360,8 @@ Func_fc6d5:: ; fc6d5 (3f:46d5)
call Func_fcd25
pop bc
ret c
- ld bc, wSpriteStateData1 + $f0
- ld hl, $1
+ ld bc, wPikachuPictureID
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
bit 7, [hl]
jp nz, asm_fc745
@@ -380,21 +404,21 @@ Func_fc726: ; fc726 (3f:4726)
Func_fc727: ; fc727 (3f:4727)
call Func_fc4dd
- jr nc, .asm_fc73b
- ld a, [wSpriteStateData1 + $f1]
+ jr nc, .dont_spawn
+ ld a, [wPikachuMovementStatus]
and a
- jr nz, .asm_fc739
+ jr nz, .already_spawned
push bc
push hl
call Func_fc534
pop hl
pop bc
-.asm_fc739
+.already_spawned
scf
ret
-.asm_fc73b
- ld hl, wSpriteStateData1 + $f2
+.dont_spawn
+ ld hl, wPikachuSpriteImageIdx
ld [hl], $ff
dec hl
ld [hl], $0
@@ -402,22 +426,22 @@ Func_fc727: ; fc727 (3f:4727)
ret
asm_fc745: ; fc745 (3f:4745)
- ld hl, $1
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
res 7, [hl]
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
ld [hl], a
call CheckPikachuFollowingPlayer
jr nz, .asm_fc75f
- ld a, [wSpriteStateData1 + $9]
+ ld a, [wPlayerFacingDirection]
xor $4
- ld hl, $9
+ ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
add hl, bc
ld [hl], a
.asm_fc75f
xor a
- ld hl, $7
+ ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
add hl, bc
ld [hli], a
ld [hl], a
@@ -426,7 +450,7 @@ asm_fc745: ; fc745 (3f:4745)
asm_fc76a: ; fc76a (3f:476a)
xor a
- ld hl, $7
+ ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
add hl, bc
ld [hli], a
ld [hl], a
@@ -437,21 +461,21 @@ asm_fc76a: ; fc76a (3f:476a)
callab InitializeSpriteScreenPosition
pop bc
.asm_fc783
- ld hl, $1
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
ld [hl], $1
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
ld [hl], $0
- call Func_fcba1
+ call RefreshPikachuFollow
ret
Func_fc793: ; fc793 (3f:4793)
- call Func_fcba1
+ call RefreshPikachuFollow
push bc
callab InitializeSpriteScreenPosition
pop bc
- ld hl, $2
+ ld hl, wSprite01SpriteImageIdx - wSprite01SpriteStateData1
add hl, bc
ld [hl], $ff
dec hl
@@ -472,12 +496,12 @@ Func_fc7aa: ; fc7aa (3f:47aa)
ld e, l
ld a, [de]
inc de
- ld hl, $9
+ ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
add hl, bc
ld [hl], a
ld a, [de]
inc de
- ld hl, $5
+ ld hl, wSprite01XStepVector - wSprite01SpriteStateData1
add hl, bc
ld [hl], a
dec hl
@@ -486,7 +510,7 @@ Func_fc7aa: ; fc7aa (3f:47aa)
ld [hl], a
inc de
ld a, [de]
- ld hl, $1
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
ld [hl], a
cp $4
@@ -496,27 +520,27 @@ Func_fc7aa: ; fc7aa (3f:47aa)
jp Func_fc9b4
Pointer_fc7e3: ; fc7e3 (3f:47e3)
- db $0, $0
- db $1, $3
- db $4, $0
- db $ff, $3
- db $8, $ff
- db $0, $3
- db $c, $1
- db $0, $3
- db $0, $0
- db $1, $4
- db $4, $0
- db $ff, $4
- db $8, $ff
- db $0, $4
- db $c, $1
- db $0, $4
+ db 0, 0
+ db 1, 3
+ db 4, 0
+ db -1, 3
+ db 8, -1
+ db 0, 3
+ db 12, 1
+ db 0, 3
+ db 0, 0
+ db 1, 4
+ db 4, 0
+ db -1, 4
+ db 8, -1
+ db 0, 4
+ db 12, 1
+ db 0, 4
Func_fc803: ; fc803 (3f:4803)
call Func_fcae2
ret c
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
dec [hl]
jr nz, .asm_fc823
@@ -528,12 +552,12 @@ Func_fc803: ; fc803 (3f:4803)
ld [hl], $20
call Random
and $c
- ld hl, $9
+ ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
add hl, bc
ld [hl], a
.asm_fc823
xor a
- ld hl, $7
+ ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
add hl, bc
ld [hli], a
ld [hl], a
@@ -548,10 +572,10 @@ Func_fc82e: ; fc82e (3f:482e)
ret
Func_fc835: ; fc835 (3f:4835)
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
ld [hl], $10
- ld hl, $1
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
ld [hl], $1
ret
@@ -584,16 +608,16 @@ Func_fc862: ; fc862 (3f:4862)
add a
add a
and $c
- ld hl, $9
+ ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
add hl, bc
ld [hl], a
- ld hl, $1
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
ld [hl], $6
xor a
ld [wd432], a
ld [wd433], a
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
ld [hl], $11
asm_fc87f: ; fc87f (3f:487f)
@@ -604,7 +628,7 @@ asm_fc87f: ; fc87f (3f:487f)
call Func_fc82e
jr c, Func_fc8c7
call Func_fc6c5
- ld hl, $4
+ ld hl, wSprite01YPixels - wSprite01SpriteStateData1
add hl, bc
ld a, [hl]
sub e
@@ -614,14 +638,14 @@ asm_fc87f: ; fc87f (3f:487f)
ld a, [hl]
sub d
ld d, a
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
ld a, [hl]
dec a
add a
- add $d6
+ add Pointer_fc8d6 % $100
ld l, a
- ld a, $48
+ ld a, Pointer_fc8d6 / $100
adc $0
ld h, a
ld a, [hli]
@@ -632,20 +656,20 @@ asm_fc87f: ; fc87f (3f:487f)
ld [wd433], a
add d
ld d, a
- ld hl, $4
+ ld hl, wSprite01YPixels - wSprite01SpriteStateData1
add hl, bc
ld [hl], e
inc hl
inc hl
ld [hl], d
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
dec [hl]
ret nz
jp Func_fc835
Func_fc8c7: ; fc8c7 (3f:48c7)
- ld hl, $4
+ ld hl, wSprite01YPixels - wSprite01SpriteStateData1
add hl, bc
ld a, [hl]
sub e
@@ -658,26 +682,36 @@ Func_fc8c7: ; fc8c7 (3f:48c7)
jp Func_fc835
Pointer_fc8d6: ; fc8d6 (3f:48d6)
- db $0, $0, $fe, $1, $fc
- db $2, $fe, $3, $0, $4
- db $fe, $3, $fc, $2, $fe
- db $1, $0, $0, $fe, $ff
- db $fc, $fe, $fe, $fd, $0
- db $fc, $fe, $fd, $fc, $fe
- db $fe, $ff, $00, $00
+ db 0, 0
+ db -2, 1
+ db -4, 2
+ db -2, 3
+ db 0, 4
+ db -2, 3
+ db -4, 2
+ db -2, 1
+ db 0, 0
+ db -2, -1
+ db -4, -2
+ db -2, -3
+ db 0, -4
+ db -2, -3
+ db -4, -2
+ db -2, -1
+ db 0, 0
Func_fc8f8: ; fc8f8 (3f:48f8)
- ld hl, $1
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
ld [hl], $7
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
ld [hl], $30
asm_fc904: ; fc904 (3f:4904)
call Func_fc82e
jp c, Func_fc835
call Func_fc6c5
- ld hl, $7
+ ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
add hl, bc
ld a, [hl]
inc a
@@ -692,24 +726,24 @@ asm_fc904: ; fc904 (3f:4904)
ld [hl], a
.asm_fc91f
call Func_fca99
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
dec [hl]
ret nz
jp Func_fc835
Func_fc92b: ; fc92b (3f:492b)
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
ld [hl], $20
- ld hl, $1
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
ld [hl], $8
asm_fc937: ; fc937 (3f:4937)
call Func_fc82e
jp c, Func_fc835
call Func_fc6c5
- ld hl, $7
+ ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
add hl, bc
ld a, [hl]
inc a
@@ -723,24 +757,24 @@ asm_fc937: ; fc937 (3f:4937)
ld [hl], a
.asm_fc951
call Func_fca99
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
dec [hl]
ret nz
jp Func_fc835
Func_fc95d: ; fc95d (3f:495d)
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
ld [hl], $20
- ld hl, $1
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
ld [hl], $9
asm_fc969: ; fc969 (3f:4969)
call Func_fc82e
jp c, Func_fc835
call Func_fc6c5
- ld hl, $7
+ ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
add hl, bc
ld a, [hl]
inc a
@@ -749,14 +783,14 @@ asm_fc969: ; fc969 (3f:4969)
jr nz, .asm_fc988
xor a
ld [hl], a
- ld hl, $9
+ ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
add hl, bc
ld a, [hl]
call Func_fc994
ld [hl], a
.asm_fc988
call Func_fca99
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
dec [hl]
ret nz
@@ -790,11 +824,12 @@ Pointer_fc9ac: ; fc9ac (3f:49ac)
db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT, SPRITE_FACING_UP, SPRITE_FACING_RIGHT
db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT, SPRITE_FACING_UP, SPRITE_FACING_RIGHT
Pointer_fc9ac_End:
+
Func_fc9b4: ; fc9b4 (3f:49b4)
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
ld [hl], $8
- ld hl, $1
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
ld [hl], $3
call Func_fca38
@@ -802,22 +837,22 @@ asm_fc9c3: ; fc9c3 (3f:49c3)
call Func_fca4b
call Func_fca7e
call Func_fca99
- ld hl, $100
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
dec [hl]
ret nz
call Func_fca75
call Func_fccb2
- ld hl, $1
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
ld [hl], $1
ret
Func_fc9df: ; fc9df (3f:49df)
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
ld [hl], $4
- ld hl, $1
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
ld [hl], $5
call Func_fca38
@@ -825,22 +860,22 @@ asm_fc9ee: ; fc9ee (3f:49ee)
call asm_fca59
call Func_fca7e
call Func_fca99
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
dec [hl]
ret nz
call Func_fca75
call Func_fccb2
- ld hl, $1
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
ld [hl], $1
ret
Func_fca0a: ; fca0a (3f:4a0a)
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
ld [hl], $8
- ld hl, $1
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
ld [hl], $4
call Func_fca38
@@ -849,25 +884,25 @@ asm_fca1c: ; fca1c (3f:4a1c)
call asm_fca59
call Func_fca7e
call Func_fca99
- ld hl, wSpriteStateData2 - wSpriteStateData1
+ ld hl, wSprite01WalkAnimationCounter - wSprite01SpriteStateData1
add hl, bc
dec [hl]
ret nz
call Func_fca75
call Func_fccb2
- ld hl, $1
+ ld hl, wSprite01MovementStatus - wSprite01SpriteStateData1
add hl, bc
ld [hl], $1
ret
Func_fca38: ; fca38 (3f:4a38)
- ld hl, $3
+ ld hl, wSprite01YStepVector - wSprite01SpriteStateData1
add hl, bc
ld e, [hl]
inc hl
inc hl
ld d, [hl]
- ld hl, $104
+ ld hl, wSprite01MapY - wSprite01SpriteStateData1
add hl, bc
ld a, [hl]
add e
@@ -885,7 +920,7 @@ Func_fca4b: ; fca4b (3f:4a4b)
bit 6, a
jr nz, Func_fca68
asm_fca59: ; fca59 (3f:4a59)
- ld hl, $3
+ ld hl, wSprite01YStepVector - wSprite01SpriteStateData1
add hl, bc
ld a, [hli]
add a
@@ -900,7 +935,7 @@ asm_fca59: ; fca59 (3f:4a59)
ret
Func_fca68: ; fca68 (3f:4a68)
- ld hl, $3
+ ld hl, wSprite01YStepVector - wSprite01SpriteStateData1
add hl, bc
ld a, [hli]
add a
@@ -913,7 +948,7 @@ Func_fca68: ; fca68 (3f:4a68)
ret
Func_fca75: ; fca75 (3f:4a75)
- ld hl, $3
+ ld hl, wSprite01YStepVector - wSprite01SpriteStateData1
add hl, bc
xor a
ld [hli], a
@@ -927,7 +962,7 @@ Func_fca7e: ; fca7e (3f:4a7e)
jr nc, .asm_fca87
ld d, $5
.asm_fca87
- ld hl, $7
+ ld hl, wSprite01IntraAnimFrameCounter - wSprite01SpriteStateData1
add hl, bc
ld a, [hl]
inc a
@@ -947,7 +982,7 @@ Func_fca99: ; fca99 (3f:4a99)
ld a, [wPikachuOverworldStateFlags]
bit 3, a
jr nz, .asm_fcad1
- ld hl, $10e
+ ld hl, wSprite01SpriteImageBaseOffset - wSprite01SpriteStateData1
add hl, bc
ld a, [hl]
dec a
@@ -956,7 +991,7 @@ Func_fca99: ; fca99 (3f:4a99)
ld a, [wd736]
bit 7, a
jr nz, .asm_fcad8
- ld hl, $9
+ ld hl, wSprite01FacingDirection - wSprite01SpriteStateData1
add hl, bc
ld a, [hl]
or d
@@ -969,32 +1004,32 @@ Func_fca99: ; fca99 (3f:4a99)
jr .asm_fcacb
.asm_fcac4
- ld hl, $8
+ ld hl, wSprite01AnimFrameCounter - wSprite01SpriteStateData1
add hl, bc
ld a, d
or [hl]
ld d, a
.asm_fcacb
- ld hl, $2
+ ld hl, wSprite01SpriteImageIdx - wSprite01SpriteStateData1
add hl, bc
ld [hl], d
ret
.asm_fcad1
- ld hl, $2
+ ld hl, wSprite01SpriteImageIdx - wSprite01SpriteStateData1
add hl, bc
ld [hl], $ff
ret
.asm_fcad8
- ld a, [wSpriteStateData1 + $2]
+ ld a, [wPlayerSpriteImageIdx]
and $f
or d
- ld [wSpriteStateData1 + $f2], a
+ ld [wPikachuSpriteImageIdx], a
ret
Func_fcae2: ; fcae2 (3f:4ae2)
- ld hl, $104
+ ld hl, wSprite01MapY - wSprite01SpriteStateData1
add hl, bc
ld a, [wYCoord]
add $4
@@ -1005,7 +1040,7 @@ Func_fcae2: ; fcae2 (3f:4ae2)
add $4
cp [hl]
jr nz, .asm_fcaff
- ld hl, $2
+ ld hl, wSprite01SpriteImageIdx - wSprite01SpriteStateData1
add hl, bc
ld [hl], $ff
scf
@@ -1015,58 +1050,58 @@ Func_fcae2: ; fcae2 (3f:4ae2)
and a
ret
-Func_fcb01: ; fcb01 (3f:4b01)
+IsPikachuRightNextToPlayer: ; fcb01 (3f:4b01)
push bc
push de
push hl
- ld bc, wSpriteStateData1 + $f0
+ ld bc, wPikachuPictureID
ld a, [wXCoord]
add $4
ld d, a
ld a, [wYCoord]
add $4
ld e, a
- ld hl, $104
+ ld hl, wPlayerMapY - wPlayerSpriteStateData1
add hl, bc
ld a, [hl]
sub e
and a
- jr z, .asm_fcb30
+ jr z, .equal
cp $ff
- jr z, .asm_fcb26
+ jr z, .one_away
cp $1
- jr z, .asm_fcb26
- jr .asm_fcb48
+ jr z, .one_away
+ jr .bad
-.asm_fcb26
- ld hl, $105
+.one_away
+ ld hl, wPlayerMapX - wPlayerSpriteStateData1
add hl, bc
ld a, [hl]
sub d
- jr z, .asm_fcb43
- jr .asm_fcb48
+ jr z, .good
+ jr .bad
-.asm_fcb30
- ld hl, $105
+.equal
+ ld hl, wPlayerMapX - wPlayerSpriteStateData1
add hl, bc
ld a, [hl]
sub d
cp $ff
- jr z, .asm_fcb43
+ jr z, .good
cp $1
- jr z, .asm_fcb43
+ jr z, .good
and a
- jr z, .asm_fcb43
- jr .asm_fcb48
+ jr z, .good
+ jr .bad
-.asm_fcb43
+.good
pop hl
pop de
pop bc
scf
ret
-.asm_fcb48
+.bad
pop hl
pop de
pop bc
@@ -1079,14 +1114,14 @@ GetPikachuFacingDirectionAndReturnToE: ; fcb4d (3f:4b4d)
ret
GetPikachuFacingDirection: ; fcb52 (3f:4b52)
- ld bc, wSpriteStateData1 + $f0
+ ld bc, wPikachuPictureID
ld a, [wXCoord]
add $4
ld d, a
ld a, [wYCoord]
add $4
ld e, a
- ld hl, wSpriteStateData2 - wSpriteStateData1 + 4
+ ld hl, wPlayerMapY - wPlayerSpriteStateData1
add hl, bc
ld a, [hl]
cp e
@@ -1100,7 +1135,7 @@ GetPikachuFacingDirection: ; fcb52 (3f:4b52)
ret
.asm_fcb71
- ld hl, wSpriteStateData2 - wSpriteStateData1 + 5
+ ld hl, wPlayerMapX - wPlayerSpriteStateData1
add hl, bc
ld a, [hl]
cp d
@@ -1138,7 +1173,7 @@ AppendPikachuFollowCommandToBuffer: ; fcb94 (3f:4b94)
ld [hl], a
ret
-Func_fcba1: ; fcba1 (3f:4ba1)
+RefreshPikachuFollow: ; fcba1 (3f:4ba1)
call ClearPikachuFollowCommandBuffer
call GetPikachuFollowCommand
ret c
@@ -1146,8 +1181,8 @@ Func_fcba1: ; fcba1 (3f:4ba1)
ret
GetPikachuFollowCommand: ; fcbac (3f:4bac)
- ld bc, wSpriteStateData1 + $f0
- ld hl, wSpriteStateData2 - wSpriteStateData1 + 4
+ ld bc, wPikachuPictureID
+ ld hl, wPlayerMapY - wPlayerSpriteStateData1
add hl, bc
ld a, [wYCoord]
add $4
@@ -1178,7 +1213,7 @@ GetPikachuFollowCommand: ; fcbac (3f:4bac)
ret
.checkXCoord
- ld hl, wSpriteStateData2 - wSpriteStateData1 + 5
+ ld hl, wPlayerMapX - wPlayerSpriteStateData1
add hl, bc
ld a, [wXCoord]
add $4
@@ -1369,7 +1404,7 @@ Func_fccb2:: ; fccb2 (3f:4cb2)
ld a, [wXCoord]
add $4
ld e, a
- ld a, [wSpriteStateData2 + $f4]
+ ld a, [wPikachuMapY]
cp d
jr z, .asm_fccd9
ld a, SPRITE_FACING_DOWN
@@ -1378,7 +1413,7 @@ Func_fccb2:: ; fccb2 (3f:4cb2)
jr .asm_fccea
.asm_fccd9
- ld a, [wSpriteStateData2 + $f5]
+ ld a, [wPikachuMapX]
cp e
jr z, .asm_fcce7
ld a, SPRITE_FACING_RIGHT
@@ -1387,9 +1422,9 @@ Func_fccb2:: ; fccb2 (3f:4cb2)
jr .asm_fccea
.asm_fcce7
- ld a, [wSpriteStateData1 + $9]
+ ld a, [wPlayerFacingDirection]
.asm_fccea
- ld [wSpriteStateData1 + $f9], a
+ ld [wPikachuFacingDirection], a
ret
Func_fccee: ; fccee (3f:4cee)
@@ -1799,6 +1834,8 @@ IsSurfingPikachuInThePlayersParty:: ; fceab (3f:4eab)
and a
ret
+INCLUDE "engine/pikachu_emotions.asm"
+INCLUDE "engine/pikachu_movement.asm"
INCLUDE "engine/pikachu_pic_animation.asm"
Func_fe66e: