From d8310c166d9363f73582af29aea400d32730bcb2 Mon Sep 17 00:00:00 2001 From: Rangi Date: Thu, 22 Oct 2020 17:41:48 -0400 Subject: [PATCH] Identify some more map object labels and constants --- constants/map_object_constants.asm | 60 +++--- data/sprites/map_objects.asm | 8 +- engine/overworld/map_object_action.asm | 10 +- engine/overworld/map_objects.asm | 283 +++++++++++++------------ engine/overworld/movement.asm | 16 +- engine/overworld/player_object.asm | 4 +- home/map_objects.asm | 2 +- 7 files changed, 199 insertions(+), 184 deletions(-) diff --git a/constants/map_object_constants.asm b/constants/map_object_constants.asm index a0f625226..f9c048c49 100644 --- a/constants/map_object_constants.asm +++ b/constants/map_object_constants.asm @@ -142,8 +142,8 @@ MAPOBJECT_SCREEN_HEIGHT EQU (SCREEN_HEIGHT / 2) + 2 const SPRITEMOVEDATA_STANDING_RIGHT ; 09 const SPRITEMOVEDATA_SPINRANDOM_FAST ; 0a const SPRITEMOVEDATA_PLAYER ; 0b - const SPRITEMOVEDATA_0C ; 0c - const SPRITEMOVEDATA_0D ; 0d + const SPRITEMOVEDATA_INDEXED_1 ; 0c + const SPRITEMOVEDATA_INDEXED_2 ; 0d const SPRITEMOVEDATA_0E ; 0e const SPRITEMOVEDATA_0F ; 0f const SPRITEMOVEDATA_10 ; 10 @@ -179,8 +179,8 @@ NUM_SPRITEMOVEDATA EQU const_value const SPRITEMOVEFN_FAST_RANDOM_SPIN ; 05 const SPRITEMOVEFN_STANDING ; 06 const SPRITEMOVEFN_OBEY_DPAD ; 07 - const SPRITEMOVEFN_08 ; 08 - const SPRITEMOVEFN_09 ; 09 + const SPRITEMOVEFN_INDEXED_1 ; 08 + const SPRITEMOVEFN_INDEXED_2 ; 09 const SPRITEMOVEFN_0A ; 0a const SPRITEMOVEFN_0B ; 0b const SPRITEMOVEFN_0C ; 0c @@ -202,32 +202,32 @@ NUM_SPRITEMOVEDATA EQU const_value ; StepTypesJumptable indexes (see engine/overworld/map_objects.asm) const_def - const STEP_TYPE_00 ; 00 - const STEP_TYPE_SLEEP ; 01 - const STEP_TYPE_NPC_WALK ; 02 - const STEP_TYPE_03 ; 03 - const STEP_TYPE_04 ; 04 - const STEP_TYPE_05 ; 05 - const STEP_TYPE_PLAYER_WALK ; 06 - const STEP_TYPE_07 ; 07 - const STEP_TYPE_NPC_JUMP ; 08 - const STEP_TYPE_PLAYER_JUMP ; 09 - const STEP_TYPE_HALF_STEP ; 0a - const STEP_TYPE_BUMP ; 0b - const STEP_TYPE_TELEPORT_FROM ; 0c - const STEP_TYPE_TELEPORT_TO ; 0d - const STEP_TYPE_SKYFALL ; 0e - const STEP_TYPE_0F ; 0f - const STEP_TYPE_GOT_BITE ; 10 - const STEP_TYPE_ROCK_SMASH ; 11 - const STEP_TYPE_RETURN_DIG ; 12 - const STEP_TYPE_TRACKING_OBJECT ; 13 - const STEP_TYPE_14 ; 14 - const STEP_TYPE_15 ; 15 - const STEP_TYPE_16 ; 16 - const STEP_TYPE_17 ; 17 - const STEP_TYPE_18 ; 18 - const STEP_TYPE_SKYFALL_TOP ; 19 + const STEP_TYPE_RESET ; 00 + const STEP_TYPE_FROM_MOVEMENT ; 01 + const STEP_TYPE_NPC_WALK ; 02 + const STEP_TYPE_SLEEP ; 03 + const STEP_TYPE_STANDING ; 04 + const STEP_TYPE_RESTORE ; 05 + const STEP_TYPE_PLAYER_WALK ; 06 + const STEP_TYPE_CONTINUE_WALK ; 07 + const STEP_TYPE_NPC_JUMP ; 08 + const STEP_TYPE_PLAYER_JUMP ; 09 + const STEP_TYPE_TURN ; 0a + const STEP_TYPE_BUMP ; 0b + const STEP_TYPE_TELEPORT_FROM ; 0c + const STEP_TYPE_TELEPORT_TO ; 0d + const STEP_TYPE_SKYFALL ; 0e + const STEP_TYPE_STRENGTH_BOULDER ; 0f + const STEP_TYPE_GOT_BITE ; 10 + const STEP_TYPE_ROCK_SMASH ; 11 + const STEP_TYPE_RETURN_DIG ; 12 + const STEP_TYPE_TRACKING_OBJECT ; 13 + const STEP_TYPE_14 ; 14 + const STEP_TYPE_SCREENSHAKE ; 15 + const STEP_TYPE_16 ; 16 + const STEP_TYPE_17 ; 17 + const STEP_TYPE_DELETE ; 18 + const STEP_TYPE_SKYFALL_TOP ; 19 ; ObjectActionPairPointers indexes (see engine/overworld/map_object_action.asm) const_def diff --git a/data/sprites/map_objects.asm b/data/sprites/map_objects.asm index 10afaf57b..05b2e084b 100644 --- a/data/sprites/map_objects.asm +++ b/data/sprites/map_objects.asm @@ -97,16 +97,16 @@ SpriteMovementData:: db 0 ; flags2 db 0 ; palette flags -; SPRITEMOVEDATA_0C - db SPRITEMOVEFN_08 ; movement function +; SPRITEMOVEDATA_INDEXED_1 + db SPRITEMOVEFN_INDEXED_1 ; movement function db DOWN ; facing db OBJECT_ACTION_STAND ; action db 0 ; flags1 db 0 ; flags2 db 0 ; palette flags -; SPRITEMOVEDATA_0D - db SPRITEMOVEFN_09 ; movement function +; SPRITEMOVEDATA_INDEXED_2 + db SPRITEMOVEFN_INDEXED_2 ; movement function db DOWN ; facing db OBJECT_ACTION_STAND ; action db 0 ; flags1 diff --git a/engine/overworld/map_object_action.asm b/engine/overworld/map_object_action.asm index 2c4834a3d..35de22030 100644 --- a/engine/overworld/map_object_action.asm +++ b/engine/overworld/map_object_action.asm @@ -1,5 +1,6 @@ ObjectActionPairPointers: ; entries correspond to OBJECT_ACTION_* constants +; normal action, frozen action dw SetFacingStanding, SetFacingStanding dw SetFacingStandAction, SetFacingCurrent dw SetFacingStepAction, SetFacingCurrent @@ -163,7 +164,7 @@ CounterclockwiseSpinAction: swap e ld d, 0 - ld hl, .Directions + ld hl, .facings add hl, de ld a, [hl] ld hl, OBJECT_FACING @@ -171,8 +172,11 @@ CounterclockwiseSpinAction: ld [hl], a ret -.Directions: - db OW_DOWN, OW_RIGHT, OW_UP, OW_LEFT +.facings: + db OW_DOWN + db OW_RIGHT + db OW_UP + db OW_LEFT SetFacingFish: call GetSpriteDirection diff --git a/engine/overworld/map_objects.asm b/engine/overworld/map_objects.asm index c22945cc6..428d33ac3 100644 --- a/engine/overworld/map_objects.asm +++ b/engine/overworld/map_objects.asm @@ -27,13 +27,13 @@ DeleteMapObject:: ret HandleObjectStep: - call .CheckObjectStillVisible + call CheckObjectStillVisible ret c - call .HandleStepType - call .HandleObjectAction + call HandleStepType + call HandleObjectAction ret -.CheckObjectStillVisible: +CheckObjectStillVisible: ld hl, OBJECT_FLAGS2 add hl, bc res OBJ_FLAGS2_6, [hl] @@ -103,7 +103,7 @@ HandleObjectStep: and a ret -.HandleStepType: +HandleStepType: ld hl, OBJECT_STEP_TYPE add hl, bc ld a, [hl] @@ -113,24 +113,24 @@ HandleObjectStep: add hl, bc bit OBJ_FLAGS2_5, [hl] jr nz, .bit5 - cp STEP_TYPE_SLEEP + cp STEP_TYPE_FROM_MOVEMENT jr z, .one jr .ok3 .zero - call ObjectMovementReset + call StepFunction_Reset ld hl, OBJECT_FLAGS2 add hl, bc bit OBJ_FLAGS2_5, [hl] jr nz, .bit5 .one - call MapObjectMovementPattern + call StepFunction_FromMovement ld hl, OBJECT_STEP_TYPE add hl, bc ld a, [hl] and a ret z - cp STEP_TYPE_SLEEP + cp STEP_TYPE_FROM_MOVEMENT ret z .ok3 ld hl, StepTypesJumptable @@ -140,7 +140,7 @@ HandleObjectStep: .bit5 ret -.HandleObjectAction: +HandleObjectAction: ld hl, OBJECT_FLAGS1 add hl, bc bit INVISIBLE_F, [hl] @@ -150,21 +150,21 @@ HandleObjectStep: bit OBJ_FLAGS2_6, [hl] jr nz, SetFacingStanding bit OBJ_FLAGS2_5, [hl] - jr nz, _UseSecondObjectAction - ld de, ObjectActionPairPointers ; use first column - jr _HandleObjectAction + jr nz, _CallFrozenObjectAction +; use first column (normal) + ld de, ObjectActionPairPointers + jr CallObjectAction -Function4440: +HandleFrozenObjectAction: ld hl, OBJECT_FLAGS1 add hl, bc bit INVISIBLE_F, [hl] jr nz, SetFacingStanding -_UseSecondObjectAction: - ld de, ObjectActionPairPointers + 2 ; use second column - jr _HandleObjectAction +_CallFrozenObjectAction: + ld de, ObjectActionPairPointers + 2 + jr CallObjectAction ; pointless -_HandleObjectAction: -; call [4 * wObjectStructs[ObjInd, OBJECT_ACTION] + de] +CallObjectAction: ld hl, OBJECT_ACTION add hl, bc ld a, [hl] @@ -207,7 +207,7 @@ CopyNextCoordsTileToStandingCoordsTile: call UselessAndA ret -Function462a: +CopyStandingCoordsTileToNextCoordsTile: ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] @@ -272,9 +272,9 @@ EndSpriteMovement: ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld [hli], a - ld [hli], a - ld [hli], a - ld [hl], a ; OBJECT_1E + ld [hli], a ; OBJECT_1C + ld [hli], a ; OBJECT_1D + ld [hl], a ; OBJECT_1E ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING @@ -294,6 +294,8 @@ InitStep: ld hl, OBJECT_FACING add hl, bc ld [hl], a + ; fallthrough + GetNextTile: call GetStepVector ld hl, OBJECT_STEP_DURATION @@ -379,11 +381,11 @@ StepVectors: GetStepVectorSign: add a - ret z ; 0 or 128 + ret z ; 0 or 128 (-128) ld a, 1 - ret nc ; 1 - 127 + ret nc ; +1 to +127 ld a, -1 - ret ; 129 - 255 + ret ; -127 to -1 UpdatePlayerStep: ld hl, OBJECT_DIRECTION_WALKING @@ -402,7 +404,7 @@ UpdatePlayerStep: set PLAYERSTEP_CONTINUE_F, [hl] ret -Function4759: ; unreferenced +GetMapObjectField: ; unreferenced push bc ld e, a ld d, 0 @@ -491,7 +493,7 @@ Field1c_SetAnonJumptableIndex: ; unreferenced ld [hl], a ret -ObjectMovementReset: +StepFunction_Reset: ld hl, OBJECT_NEXT_MAP_X add hl, bc ld d, [hl] @@ -508,10 +510,10 @@ ObjectMovementReset: call EndSpriteMovement ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -MapObjectMovementPattern: +StepFunction_FromMovement: call Field1c_ZeroAnonJumptableIndex call GetSpriteMovementFunction ld a, [hl] @@ -529,8 +531,8 @@ MapObjectMovementPattern: dw MovementFunction_RandomSpinFast ; 05 dw MovementFunction_Standing ; 06 dw MovementFunction_ObeyDPad ; 07 - dw MovementFunction_08 ; 08 - dw MovementFunction_09 ; 09 + dw MovementFunction_Indexed1 ; 08 + dw MovementFunction_Indexed2 ; 09 dw MovementFunction_0a ; 0a dw MovementFunction_0b ; 0b dw MovementFunction_0c ; 0c @@ -598,26 +600,26 @@ MovementFunction_RandomSpinFast: jp RandomStepDuration_Fast MovementFunction_Standing: - call Function462a + call CopyStandingCoordsTileToNextCoordsTile call EndSpriteMovement ld hl, OBJECT_ACTION add hl, bc ld [hl], OBJECT_ACTION_STAND ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_05 + ld [hl], STEP_TYPE_RESTORE ret MovementFunction_ObeyDPad: - ld hl, ApplyPlayerMovementByte + ld hl, GetPlayerNextMovementByte jp HandleMovementData -MovementFunction_08: - ld hl, Function5015 +MovementFunction_Indexed1: + ld hl, GetIndexedMovementByte1 jp HandleMovementData -MovementFunction_09: - ld hl, Function5026 +MovementFunction_Indexed2: + ld hl, GetIndexedMovementByte2 jp HandleMovementData MovementFunction_0a: @@ -630,7 +632,7 @@ MovementFunction_0c: jp _GetMovementObject MovementFunction_0d: - ld hl, ApplyPlayerMovementByte + ld hl, GetPlayerNextMovementByte jp HandleMovementData MovementFunction_0e: @@ -675,11 +677,11 @@ MovementFunction_Strength: call UpdateTallGrassFlags ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_0F + ld [hl], STEP_TYPE_STRENGTH_BOULDER ret .ok2 - call Function462a + call CopyStandingCoordsTileToNextCoordsTile .ok ld hl, OBJECT_DIRECTION_WALKING add hl, bc @@ -766,7 +768,7 @@ MovementFunction_BigStanding: ld [hl], OBJECT_ACTION_BIG_DOLL_SYM ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_04 + ld [hl], STEP_TYPE_STANDING ret MovementFunction_Bouncing: @@ -779,7 +781,7 @@ MovementFunction_Bouncing: ld [hl], OBJECT_ACTION_BOUNCE ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_04 + ld [hl], STEP_TYPE_STANDING ret MovementFunction_SpinCounterclockwise: @@ -799,6 +801,8 @@ MovementFunction_SpinClockwise: _MovementSpinInit: call EndSpriteMovement call ObjectMovementByte_IncAnonJumptableIndex + ; fallthrough + _MovementSpinRepeat: ld hl, OBJECT_ACTION add hl, bc @@ -812,7 +816,7 @@ _MovementSpinRepeat: ld [hl], a ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_03 + ld [hl], STEP_TYPE_SLEEP call ObjectMovementByte_IncAnonJumptableIndex ret @@ -1006,7 +1010,7 @@ MovementFunction_ScreenShake: ld [hl], a ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_15 + ld [hl], STEP_TYPE_SCREENSHAKE ret .GetDurationAndField1e: @@ -1028,7 +1032,7 @@ MovementFunction_ScreenShake: _RandomWalkContinue: call InitStep - call CanObjectMoveInDirection ; check whether the object can move in that direction + call CanObjectMoveInDirection jr c, .new_duration call UpdateTallGrassFlags ld hl, OBJECT_ACTION @@ -1040,7 +1044,7 @@ _RandomWalkContinue: jr z, .centered ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_07 + ld [hl], STEP_TYPE_CONTINUE_WALK ret .centered @@ -1051,20 +1055,20 @@ _RandomWalkContinue: .new_duration: call EndSpriteMovement - call Function462a + call CopyStandingCoordsTileToNextCoordsTile ; fallthrough RandomStepDuration_Slow: call Random ldh a, [hRandomAdd] and %01111111 - jr SetRandomStepDuration + jr _SetRandomStepDuration RandomStepDuration_Fast: call Random ldh a, [hRandomAdd] and %00011111 -SetRandomStepDuration: +_SetRandomStepDuration: ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a @@ -1076,37 +1080,37 @@ SetRandomStepDuration: ld [hl], OBJECT_ACTION_STAND ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_03 + ld [hl], STEP_TYPE_SLEEP ret StepTypesJumptable: ; entries correspond to STEP_TYPE_* constants - dw ObjectMovementReset ; 00 - dw MapObjectMovementPattern ; 01 - dw NPCStep ; 02 - dw StepType03 ; 03 - dw StepType04 ; 04 - dw StepType05 ; 05 - dw PlayerStep ; 06 - dw StepType07 ; 07 - dw NPCJump ; 08 - dw PlayerJump ; 09 - dw PlayerOrNPCTurnStep ; 0a - dw StepTypeBump ; 0b - dw TeleportFrom ; 0c - dw TeleportTo ; 0d - dw Skyfall ; 0e - dw StepType0f ; 0f - dw GotBiteStep ; 10 - dw RockSmashStep ; 11 - dw ReturnDigStep ; 12 - dw StepTypeTrackingObject ; 13 - dw StepType14 ; 14 - dw StepType15 ; 15 - dw StepType16 ; 16 - dw StepType17 ; 17 - dw StepType18 ; 18 - dw SkyfallTop ; 19 + dw StepFunction_Reset ; 00 + dw StepFunction_FromMovement ; 01 + dw StepFunction_NPCWalk ; 02 + dw StepFunction_Sleep ; 03 + dw StepFunction_Standing ; 04 + dw StepFunction_Restore ; 05 + dw StepFunction_PlayerWalk ; 06 + dw StepFunction_ContinueWalk ; 07 + dw StepFunction_NPCJump ; 08 + dw StepFunction_PlayerJump ; 09 + dw StepFunction_Turn ; 0a + dw StepFunction_Bump ; 0b + dw StepFunction_TeleportFrom ; 0c + dw StepFunction_TeleportTo ; 0d + dw StepFunction_Skyfall ; 0e + dw StepFunction_StrengthBoulder ; 0f + dw StepFunction_GotBite ; 10 + dw StepFunction_RockSmash ; 11 + dw StepFunction_DigTo ; 12 + dw StepFunction_TrackingObject ; 13 + dw StepFunction_14 ; 14 + dw StepFunction_ScreenShake ; 15 + dw StepFunction_16 ; 16 + dw StepFunction_17 ; 17 + dw StepFunction_Delete ; 18 + dw StepFunction_SkyfallTop ; 19 WaitStep_InPlace: ld hl, OBJECT_STEP_DURATION @@ -1115,10 +1119,10 @@ WaitStep_InPlace: ret nz ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -NPCJump: +StepFunction_NPCJump: call Field1c_AnonJumptable .anon_dw dw .Jump @@ -1149,10 +1153,10 @@ NPCJump: call CopyNextCoordsTileToStandingCoordsTile ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -PlayerJump: +StepFunction_PlayerJump: call Field1c_AnonJumptable .anon_dw dw .initjump @@ -1198,10 +1202,10 @@ PlayerJump: call CopyNextCoordsTileToStandingCoordsTile ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -TeleportFrom: +StepFunction_TeleportFrom: call Field1c_AnonJumptable .anon_dw dw .InitSpin @@ -1266,10 +1270,10 @@ TeleportFrom: ld [hl], 0 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -TeleportTo: +StepFunction_TeleportTo: call Field1c_AnonJumptable .anon_dw dw .InitWait @@ -1353,10 +1357,10 @@ TeleportTo: ld [hl], 0 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -Skyfall: +StepFunction_Skyfall: call Field1c_AnonJumptable .anon_dw dw .Init @@ -1416,10 +1420,10 @@ Skyfall: ld [hl], 0 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -GotBiteStep: +StepFunction_GotBite: call Field1c_AnonJumptable .anon_dw dw .Init @@ -1448,10 +1452,10 @@ GotBiteStep: ld [hl], 0 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -RockSmashStep: +StepFunction_RockSmash: call .Step jp WaitStep_InPlace @@ -1469,7 +1473,7 @@ RockSmashStep: ld [hl], a ret -ReturnDigStep: +StepFunction_DigTo: ld hl, OBJECT_STEP_DURATION add hl, bc ld a, [hl] @@ -1483,7 +1487,7 @@ ReturnDigStep: ld [hl], a jp WaitStep_InPlace -StepType03: +StepFunction_Sleep: ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING @@ -1493,10 +1497,10 @@ StepType03: ret nz ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -StepType18: +StepFunction_Delete: ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING @@ -1506,21 +1510,21 @@ StepType18: ret nz jp DeleteMapObject -StepTypeBump: +StepFunction_Bump: ld hl, OBJECT_STEP_DURATION add hl, bc dec [hl] ret nz ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -StepType05: +StepFunction_Restore: call Field1c_AnonJumptable .anon_dw dw .Reset - dw StepType04 + dw StepFunction_Standing .Reset: call RestoreDefaultMovement @@ -1529,15 +1533,17 @@ StepType05: add hl, bc ld [hl], a call Field1c_IncAnonJumptableIndex -StepType04: - call Stubbed_Function4fb2 + ; fallthrough + +StepFunction_Standing: + call Stubbed_UpdateYOffset ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING ret -NPCStep: - call Stubbed_Function4fb2 +StepFunction_NPCWalk: + call Stubbed_UpdateYOffset call AddStepVector ld hl, OBJECT_STEP_DURATION add hl, bc @@ -1549,10 +1555,10 @@ NPCStep: ld [hl], STANDING ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -StepType07: +StepFunction_ContinueWalk: call AddStepVector ld hl, OBJECT_STEP_DURATION add hl, bc @@ -1561,8 +1567,7 @@ StepType07: call CopyNextCoordsTileToStandingCoordsTile jp RandomStepDuration_Slow -PlayerStep: -; AnimateStep? +StepFunction_PlayerWalk: call Field1c_AnonJumptable .anon_dw dw .init @@ -1586,10 +1591,10 @@ PlayerStep: ld [hl], STANDING ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -PlayerOrNPCTurnStep: +StepFunction_Turn: call Field1c_AnonJumptable .anon_dw dw .init1 @@ -1633,10 +1638,10 @@ PlayerOrNPCTurnStep: ret nz ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -StepType0f: +StepFunction_StrengthBoulder: call AddStepVector ld hl, OBJECT_STEP_DURATION add hl, bc @@ -1664,10 +1669,10 @@ StepType0f: ld [hl], STANDING ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -StepTypeTrackingObject: +StepFunction_TrackingObject: ld hl, OBJECT_1D add hl, bc ld e, [hl] @@ -1700,8 +1705,8 @@ StepTypeTrackingObject: .nope jp DeleteMapObject -StepType14: -StepType15: +StepFunction_14: +StepFunction_ScreenShake: call Field1c_AnonJumptable .anon_dw dw .Init @@ -1749,9 +1754,10 @@ StepType15: inc a ret -StepType16: +StepFunction_16: call Field1c_AnonJumptable ; ???? -StepType17: + +StepFunction_17: call Field1c_AnonJumptable .anon_dw dw .null @@ -1759,9 +1765,9 @@ StepType17: dw .null .null -SkyfallTop: +StepFunction_SkyfallTop: call Field1c_AnonJumptable -; anonymous dw +.anon_dw dw .Init dw .Run @@ -1787,10 +1793,11 @@ SkyfallTop: ld [hl], 0 ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret -Stubbed_Function4fb2: +Stubbed_UpdateYOffset: +; dummied out ret ld hl, OBJECT_1D add hl, bc @@ -1801,7 +1808,7 @@ Stubbed_Function4fb2: and %00000111 ld l, a ld h, 0 - ld de, .y + ld de, .y_offsets add hl, de ld a, [hl] ld hl, OBJECT_SPRITE_Y_OFFSET @@ -1809,7 +1816,7 @@ Stubbed_Function4fb2: ld [hl], a ret -.y +.y_offsets: db 0, -1, -2, -3, -4, -3, -2, -1 UpdateJumpPosition: @@ -1823,7 +1830,7 @@ UpdateJumpPosition: nop srl e ld d, 0 - ld hl, .y + ld hl, .y_offsets add hl, de ld a, [hl] ld hl, OBJECT_SPRITE_Y_OFFSET @@ -1831,11 +1838,11 @@ UpdateJumpPosition: ld [hl], a ret -.y +.y_offsets: db -4, -6, -8, -10, -11, -12, -12, -12 db -11, -10, -9, -8, -6, -4, 0, 0 -ApplyPlayerMovementByte: +GetPlayerNextMovementByte: ; copy [wPlayerNextMovement] to [wPlayerMovement] ld a, [wPlayerNextMovement] ld hl, wPlayerMovement @@ -1852,7 +1859,7 @@ GetMovementByte: call _GetMovementByte ret -Function5015: +GetIndexedMovementByte1: ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld e, [hl] @@ -1866,7 +1873,7 @@ Function5015: ld a, [hl] ret -Function5026: +GetIndexedMovementByte2: ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld e, [hl] @@ -2032,6 +2039,7 @@ SpawnStrengthBoulderDust: ret .BoulderDustObject: + ; vtile, palette, movement db $00, PAL_OW_SILVER, SPRITEMOVEDATA_BOULDERDUST SpawnEmote: @@ -2043,6 +2051,7 @@ SpawnEmote: ret .EmoteObject: + ; vtile, palette, movement db $00, PAL_OW_SILVER, SPRITEMOVEDATA_EMOTE ShakeGrass: @@ -2053,7 +2062,8 @@ ShakeGrass: pop bc ret -.GrassObject +.GrassObject: + ; vtile, palette, movement db $00, PAL_OW_TREE, SPRITEMOVEDATA_GRASS ShakeScreen: @@ -2068,6 +2078,7 @@ ShakeScreen: ret .ScreenShakeObject: + ; vtile, palette, movement db $00, PAL_OW_SILVER, SPRITEMOVEDATA_SCREENSHAKE DespawnEmote: @@ -2235,14 +2246,14 @@ Function565c: call Function56a3 jr c, SetFacing_Standing call Function5688 - farcall Function4440 + farcall HandleFrozenObjectAction ; no need to farcall xor a ret Function5673: call Function56a3 jr c, SetFacing_Standing - farcall Function4440 ; no need to farcall + farcall HandleFrozenObjectAction ; no need to farcall xor a ret @@ -2546,7 +2557,7 @@ SetFollowerIfVisible: ld [hl], SPRITEMOVEDATA_FOLLOWING ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_00 + ld [hl], STEP_TYPE_RESET ldh a, [hObjectStructIndexBuffer] ld [wObjectFollow_Follower], a ret @@ -2673,7 +2684,7 @@ Function58e3: ld [hl], a ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_00 + ld [hl], STEP_TYPE_RESET ret Function5903: @@ -2690,10 +2701,10 @@ Function5903: ld [hl], a ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_00 + ld [hl], STEP_TYPE_RESET ret -.standing_movefns +.standing_movefns: db SPRITEMOVEDATA_STANDING_DOWN db SPRITEMOVEDATA_STANDING_UP db SPRITEMOVEDATA_STANDING_LEFT diff --git a/engine/overworld/movement.asm b/engine/overworld/movement.asm index d4296576e..7903af704 100644 --- a/engine/overworld/movement.asm +++ b/engine/overworld/movement.asm @@ -131,7 +131,7 @@ Movement_step_dig: ld [hl], a ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_03 + ld [hl], STEP_TYPE_SLEEP ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING @@ -184,7 +184,7 @@ Movement_fish_cast_rod: ld [hl], OBJECT_ACTION_FISHING ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret Movement_step_loop: @@ -208,7 +208,7 @@ Movement_step_end: ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_SLEEP + ld [hl], STEP_TYPE_FROM_MOVEMENT ret Movement_48: @@ -228,7 +228,7 @@ Movement_48: ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_03 + ld [hl], STEP_TYPE_SLEEP ld hl, wVramState res 7, [hl] @@ -254,7 +254,7 @@ Movement_4b: ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_04 + ld [hl], STEP_TYPE_STANDING ld hl, wVramState res 7, [hl] @@ -306,7 +306,7 @@ Movement_step_sleep_common: ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_03 + ld [hl], STEP_TYPE_SLEEP ld hl, OBJECT_ACTION add hl, bc @@ -344,7 +344,7 @@ Movement_tree_shake: ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_03 + ld [hl], STEP_TYPE_SLEEP ld hl, OBJECT_ACTION add hl, bc @@ -656,7 +656,7 @@ TurnStep: ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_HALF_STEP + ld [hl], STEP_TYPE_TURN ret NormalStep: diff --git a/engine/overworld/player_object.asm b/engine/overworld/player_object.asm index 41b8797cf..f9976a037 100644 --- a/engine/overworld/player_object.asm +++ b/engine/overworld/player_object.asm @@ -446,7 +446,7 @@ CopyTempObjectToObjectStruct: ld hl, OBJECT_STEP_TYPE add hl, de - ld [hl], STEP_TYPE_00 + ld [hl], STEP_TYPE_RESET ld hl, OBJECT_FACING_STEP add hl, de @@ -689,7 +689,7 @@ FollowNotExact:: ld [hl], SPRITEMOVEDATA_FOLLOWNOTEXACT ld hl, OBJECT_STEP_TYPE add hl, de - ld [hl], STEP_TYPE_00 + ld [hl], STEP_TYPE_RESET ret GetRelativeFacing:: diff --git a/home/map_objects.asm b/home/map_objects.asm index a13aa9769..abb7c3315 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -410,7 +410,7 @@ LoadMovementDataPointer:: ld hl, OBJECT_STEP_TYPE add hl, bc - ld [hl], STEP_TYPE_00 + ld [hl], STEP_TYPE_RESET ld hl, wVramState set 7, [hl]