diff options
author | GriffinR <griffin.g.richards@gmail.com> | 2020-03-23 22:42:36 -0400 |
---|---|---|
committer | GriffinR <griffin.g.richards@gmail.com> | 2020-03-23 22:42:36 -0400 |
commit | 68e942065aa0c5ba9783437fcd96d9b0739d31ef (patch) | |
tree | 30d7ed0dfccd4b9bfb4646a961e51336341e6513 | |
parent | b607821bf693e49612afd3580d13e9734f13c5a1 (diff) |
Move movement type func tables to src
-rw-r--r-- | data/event_object_movement.s | 549 | ||||
-rw-r--r-- | src/data/object_events/movement_type_func_tables.h | 614 | ||||
-rw-r--r-- | src/event_object_movement.c | 2 |
3 files changed, 616 insertions, 549 deletions
diff --git a/data/event_object_movement.s b/data/event_object_movement.s index 84277cc03..69d135ef2 100644 --- a/data/event_object_movement.s +++ b/data/event_object_movement.s @@ -7117,552 +7117,3 @@ gMovementDelaysShort:: @ 83A6010 .2byte 0x0030 .2byte 0x0040 .2byte 0x0050 - -gMovementTypeFuncs_WanderAround:: @ 83A6018 - .4byte MovementType_WanderAround_Step0 - .4byte MovementType_WanderAround_Step1 - .4byte MovementType_WanderAround_Step2 - .4byte MovementType_WanderAround_Step3 - .4byte MovementType_WanderAround_Step4 - .4byte MovementType_WanderAround_Step5 - .4byte MovementType_WanderAround_Step6 - -gMovementTypeFuncs_WanderAroundDuplicate:: @ 83A6034 - .4byte MovementType_WanderAround_Step0 - .4byte MovementType_WanderAround_Step1 - .4byte MovementType_WanderAround_Step2 - .4byte MovementType_WanderAround_Step3 - .4byte MovementType_WanderAround_Step4 - .4byte MovementType_WanderAround_Step5Duplicate - .4byte MovementType_WanderAround_Step6 - -gStandardDirections:: @ 83A6050 - .byte 1 @ DIR_SOUTH - .byte 2 @ DIR_NORTH - .byte 3 @ DIR_WEST - .byte 4 @ DIR_EAST - -gGetVectorDirectionFuncs:: @ 83A6054 - .4byte GetVectorDirection - .4byte GetLimitedVectorDirection_SouthNorth - .4byte GetLimitedVectorDirection_WestEast - .4byte GetLimitedVectorDirection_WestNorth - .4byte GetLimitedVectorDirection_EastNorth - .4byte GetLimitedVectorDirection_WestSouth - .4byte GetLimitedVectorDirection_EastSouth - .4byte GetLimitedVectorDirection_SouthNorthWest - .4byte GetLimitedVectorDirection_SouthNorthEast - .4byte GetLimitedVectorDirection_NorthWestEast - .4byte GetLimitedVectorDirection_SouthWestEast - -gMovementTypeFuncs_LookAround:: @ 83A6080 - .4byte MovementType_LookAround_Step0 - .4byte MovementType_LookAround_Step1 - .4byte MovementType_LookAround_Step2 - .4byte MovementType_LookAround_Step3 - .4byte MovementType_LookAround_Step4 - -gMovementTypeFuncs_WanderUpAndDown:: @ 83A6094 - .4byte MovementType_WanderUpAndDown_Step0 - .4byte MovementType_WanderUpAndDown_Step1 - .4byte MovementType_WanderUpAndDown_Step2 - .4byte MovementType_WanderUpAndDown_Step3 - .4byte MovementType_WanderUpAndDown_Step4 - .4byte MovementType_WanderUpAndDown_Step5 - .4byte MovementType_WanderUpAndDown_Step6 - -gUpAndDownDirections:: @ 83A60B0 - .byte 1 @ DIR_SOUTH - .byte 2 @ DIR_NORTH - .byte 0 @ DIR_NONE - .byte 0 @ DIR_NONE - -gMovementTypeFuncs_WanderLeftAndRight:: @ 83A60B4 - .4byte MovementType_WanderLeftAndRight_Step0 - .4byte MovementType_WanderLeftAndRight_Step1 - .4byte MovementType_WanderLeftAndRight_Step2 - .4byte MovementType_WanderLeftAndRight_Step3 - .4byte MovementType_WanderLeftAndRight_Step4 - .4byte MovementType_WanderLeftAndRight_Step5 - .4byte MovementType_WanderLeftAndRight_Step6 - -gLeftAndRightDirections:: @ 83A60D0 - .byte 3 @ DIR_WEST - .byte 4 @ DIR_EAST - .byte 0 @ DIR_NONE - .byte 0 @ DIR_NONE - -gMovementTypeFuncs_FaceDirection:: @ 83A60D4 - .4byte MovementType_FaceDirection_Step0 - .4byte MovementType_FaceDirection_Step1 - .4byte MovementType_FaceDirection_Step2 - -gMovementTypeFuncs_FaceDownAndUp:: @ 83A60E0 - .4byte MovementType_FaceDownAndUp_Step0 - .4byte MovementType_FaceDownAndUp_Step1 - .4byte MovementType_FaceDownAndUp_Step2 - .4byte MovementType_FaceDownAndUp_Step3 - .4byte MovementType_FaceDownAndUp_Step4 - -gMovementTypeFuncs_FaceLeftAndRight:: @ 83A60F4 - .4byte MovementType_FaceLeftAndRight_Step0 - .4byte MovementType_FaceLeftAndRight_Step1 - .4byte MovementType_FaceLeftAndRight_Step2 - .4byte MovementType_FaceLeftAndRight_Step3 - .4byte MovementType_FaceLeftAndRight_Step4 - -gMovementTypeFuncs_FaceUpAndLeft:: @ 83A6108 - .4byte MovementType_FaceUpAndLeft_Step0 - .4byte MovementType_FaceUpAndLeft_Step1 - .4byte MovementType_FaceUpAndLeft_Step2 - .4byte MovementType_FaceUpAndLeft_Step3 - .4byte MovementType_FaceUpAndLeft_Step4 - -gUpAndLeftDirections:: @ 83A611C - .byte 2 @ DIR_NORTH - .byte 3 @ DIR_WEST - .byte 0 @ DIR_NONE - .byte 0 @ DIR_NONE - -gMovementTypeFuncs_FaceUpAndRight:: @ 83A6120 - .4byte MovementType_FaceUpAndRight_Step0 - .4byte MovementType_FaceUpAndRight_Step1 - .4byte MovementType_FaceUpAndRight_Step2 - .4byte MovementType_FaceUpAndRight_Step3 - .4byte MovementType_FaceUpAndRight_Step4 - -gUpAndRightDirections:: @ 83A6134 - .byte 2 @ DIR_NORTH - .byte 4 @ DIR_EAST - .byte 0 @ DIR_NONE - .byte 0 @ DIR_NONE - -gMovementTypeFuncs_FaceDownAndLeft:: @ 83A6138 - .4byte MovementType_FaceDownAndLeft_Step0 - .4byte MovementType_FaceDownAndLeft_Step1 - .4byte MovementType_FaceDownAndLeft_Step2 - .4byte MovementType_FaceDownAndLeft_Step3 - .4byte MovementType_FaceDownAndLeft_Step4 - -gDownAndLeftDirections:: @ 83A614C - .byte 1 @ DIR_SOUTH - .byte 3 @ DIR_WEST - .byte 0 @ DIR_NONE - .byte 0 @ DIR_NONE - -gMovementTypeFuncs_FaceDownAndRight:: @ 83A6150 - .4byte MovementType_FaceDownAndRight_Step0 - .4byte MovementType_FaceDownAndRight_Step1 - .4byte MovementType_FaceDownAndRight_Step2 - .4byte MovementType_FaceDownAndRight_Step3 - .4byte MovementType_FaceDownAndRight_Step4 - -gDownAndRightDirections:: @ 83A6164 - .byte 1 @ DIR_SOUTH - .byte 4 @ DIR_EAST - .byte 0 @ DIR_NONE - .byte 0 @ DIR_NONE - -gMovementTypeFuncs_FaceDownUpAndLeft:: @ 83A6168 - .4byte MovementType_FaceDownUpAndLeft_Step0 - .4byte MovementType_FaceDownUpAndLeft_Step1 - .4byte MovementType_FaceDownUpAndLeft_Step2 - .4byte MovementType_FaceDownUpAndLeft_Step3 - .4byte MovementType_FaceDownUpAndLeft_Step4 - -gDownUpAndLeftDirections:: @ 83A617C - .byte 2 @ DIR_NORTH - .byte 1 @ DIR_SOUTH - .byte 3 @ DIR_WEST - .byte 1 @ DIR_SOUTH - -gMovementTypeFuncs_FaceDownUpAndRight:: @ 83A6180 - .4byte MovementType_FaceDownUpAndRight_Step0 - .4byte MovementType_FaceDownUpAndRight_Step1 - .4byte MovementType_FaceDownUpAndRight_Step2 - .4byte MovementType_FaceDownUpAndRight_Step3 - .4byte MovementType_FaceDownUpAndRight_Step4 - -gDownUpAndRightDirections:: @ 83A6194 - .byte 1 @ DIR_SOUTH - .byte 2 @ DIR_NORTH - .byte 4 @ DIR_EAST - .byte 1 @ DIR_SOUTH - -gMovementTypeFuncs_FaceUpLeftAndRight:: @ 83A6198 - .4byte MovementType_FaceUpLeftAndRight_Step0 - .4byte MovementType_FaceUpLeftAndRight_Step1 - .4byte MovementType_FaceUpLeftAndRight_Step2 - .4byte MovementType_FaceUpLeftAndRight_Step3 - .4byte MovementType_FaceUpLeftAndRight_Step4 - -gUpLeftAndRightDirections:: @ 83A61AC - .byte 2 @ DIR_NORTH - .byte 3 @ DIR_WEST - .byte 4 @ DIR_EAST - .byte 2 @ DIR_NORTH - -gMovementTypeFuncs_FaceDownLeftAndRight:: @ 83A61B0 - .4byte MovementType_FaceDownLeftAndRight_Step0 - .4byte MovementType_FaceDownLeftAndRight_Step1 - .4byte MovementType_FaceDownLeftAndRight_Step2 - .4byte MovementType_FaceDownLeftAndRight_Step3 - .4byte MovementType_FaceDownLeftAndRight_Step4 - -gDownLeftAndRightDirections:: @ 83A61C4 - .byte 3 @ DIR_WEST - .byte 4 @ DIR_EAST - .byte 1 @ DIR_SOUTH - .byte 1 @ DIR_SOUTH - -gMovementTypeFuncs_RotateCounterclockwise:: @ 83A61C8 - .4byte MovementType_RotateCounterclockwise_Step0 - .4byte MovementType_RotateCounterclockwise_Step1 - .4byte MovementType_RotateCounterclockwise_Step2 - .4byte MovementType_RotateCounterclockwise_Step3 - -gCounterclockwiseDirections:: @ 83A61D8 - .byte 0x01 - .byte 0x04 - .byte 0x03 - .byte 0x01 - .byte 0x02 - .byte 0x00 - .byte 0x00 - .byte 0x00 - -gMovementTypeFuncs_RotateClockwise:: @ 83A61E0 - .4byte MovementType_RotateClockwise_Step0 - .4byte MovementType_RotateClockwise_Step1 - .4byte MovementType_RotateClockwise_Step2 - .4byte MovementType_RotateClockwise_Step3 - -gClockwiseDirections:: @ 83A61F0 - .byte 0x01 - .byte 0x03 - .byte 0x04 - .byte 0x02 - .byte 0x01 - .byte 0x00 - .byte 0x00 - .byte 0x00 - -gMovementTypeFuncs_WalkBackAndForth:: @ 83A61F8 - .4byte MovementType_WalkBackAndForth_Step0 - .4byte MovementType_WalkBackAndForth_Step1 - .4byte MovementType_WalkBackAndForth_Step2 - .4byte MovementType_WalkBackAndForth_Step3 - -gMovementTypeFuncs_WalkSequenceUpRightLeftDown:: @ 83A6208 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceUpRightLeftDown_Step1 - .4byte MovementType_WalkSequence_Step2 - -gUpRightLeftDownDirections:: @ 83A6214 - .byte 2 - .byte 4 - .byte 3 - .byte 1 - -gMovementTypeFuncs_WalkSequenceRightLeftDownUp:: @ 83A6218 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceRightLeftDownUp_Step1 - .4byte MovementType_WalkSequence_Step2 - -gRightLeftDownUpDirections:: @ 83A6224 - .byte 4 - .byte 3 - .byte 1 - .byte 2 - -gMovementTypeFuncs_WalkSequenceDownUpRightLeft:: @ 83A6228 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceDownUpRightLeft_Step1 - .4byte MovementType_WalkSequence_Step2 - -gDownUpRightLeftDirections:: @ 83A6234 - .byte 1 - .byte 2 - .byte 4 - .byte 3 - -gMovementTypeFuncs_WalkSequenceLeftDownUpRight:: @ 83A6238 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceLeftDownUpRight_Step1 - .4byte MovementType_WalkSequence_Step2 - -gLeftDownUpRightDirections:: @ 83A6244 - .byte 3 - .byte 1 - .byte 2 - .byte 4 - -gMovementTypeFuncs_WalkSequenceUpLeftRightDown:: @ 83A6248 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceUpLeftRightDown_Step1 - .4byte MovementType_WalkSequence_Step2 - -gUpLeftRightDownDirections:: @ 83A6254 - .byte 2 - .byte 3 - .byte 4 - .byte 1 - -gMovementTypeFuncs_WalkSequenceLeftRightDownUp:: @ 83A6258 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceLeftRightDownUp_Step1 - .4byte MovementType_WalkSequence_Step2 - -gLeftRightDownUpDirections:: @ 83A6264 - .byte 3 - .byte 4 - .byte 1 - .byte 2 - -gMovementTypeFuncs_WalkSequenceDownUpLeftRight:: @ 83A6268 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceDownUpLeftRight_Step1 - .4byte MovementType_WalkSequence_Step2 - -gMovementTypeFuncs_WalkSequenceRightDownUpLeft:: @ 83A6274 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceRightDownUpLeft_Step1 - .4byte MovementType_WalkSequence_Step2 - -gRightDownUpLeftDirections:: @ 83A6280 - .byte 4 - .byte 1 - .byte 2 - .byte 3 - -gMovementTypeFuncs_WalkSequenceLeftUpDownRight:: @ 83A6284 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceLeftUpDownRight_Step1 - .4byte MovementType_WalkSequence_Step2 - -gLeftUpDownRightDirections:: @ 83A6290 - .byte 3 - .byte 2 - .byte 1 - .byte 4 - -gMovementTypeFuncs_WalkSequenceUpDownRightLeft:: @ 83A6294 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceUpDownRightLeft_Step1 - .4byte MovementType_WalkSequence_Step2 - -gUpDownRightLeftDirections:: @ 83A62A0 - .byte 2 - .byte 1 - .byte 4 - .byte 3 - -gMovementTypeFuncs_WalkSequenceRightLeftUpDown:: @ 83A62A4 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceRightLeftUpDown_Step1 - .4byte MovementType_WalkSequence_Step2 - -gRightLeftUpDownDirections:: @ 83A62B0 - .byte 4 - .byte 3 - .byte 2 - .byte 1 - -gMovementTypeFuncs_WalkSequenceDownRightLeftUp:: @ 83A62B4 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceDownRightLeftUp_Step1 - .4byte MovementType_WalkSequence_Step2 - -gDownRightLeftUpDirections:: @ 83A62C0 - .byte 1 - .byte 4 - .byte 3 - .byte 2 - -gMovementTypeFuncs_WalkSequenceRightUpDownLeft:: @ 83A62C4 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceRightUpDownLeft_Step1 - .4byte MovementType_WalkSequence_Step2 - -gRightUpDownLeftDirections:: @ 83A62D0 - .byte 4 - .byte 2 - .byte 1 - .byte 3 - -gMovementTypeFuncs_WalkSequenceUpDownLeftRight:: @ 83A62D4 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceUpDownLeftRight_Step1 - .4byte MovementType_WalkSequence_Step2 - -gUpDownLeftRightDirections:: @ 83A62E0 - .byte 2 - .byte 1 - .byte 3 - .byte 4 - -gMovementTypeFuncs_WalkSequenceLeftRightUpDown:: @ 83A62E4 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceLeftRightUpDown_Step1 - .4byte MovementType_WalkSequence_Step2 - -gLeftRightUpDownDirections:: @ 83A62F0 - .byte 3 - .byte 4 - .byte 2 - .byte 1 - -gMovementTypeFuncs_WalkSequenceDownLeftRightUp:: @ 83A62F4 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceDownLeftRightUp_Step1 - .4byte MovementType_WalkSequence_Step2 - -gDownLeftRightUpDirections:: @ 83A6300 - .byte 1 - .byte 3 - .byte 4 - .byte 2 - -gMovementTypeFuncs_WalkSequenceUpLeftDownRight:: @ 83A6304 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceUpLeftDownRight_Step1 - .4byte MovementType_WalkSequence_Step2 - -gUpLeftDownRightDirections:: @ 83A6310 - .byte 2 - .byte 3 - .byte 1 - .byte 4 - -gMovementTypeFuncs_WalkSequenceDownRightUpLeft:: @ 83A6314 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceDownRightUpLeft_Step1 - .4byte MovementType_WalkSequence_Step2 - -gDownRightUpLeftDirections:: @ 83A6320 - .byte 1 - .byte 4 - .byte 2 - .byte 3 - -gMovementTypeFuncs_WalkSequenceLeftDownRightUp:: @ 83A6324 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceLeftDownRightUp_Step1 - .4byte MovementType_WalkSequence_Step2 - -gLeftDownRightUpDirections:: @ 83A6330 - .byte 3 - .byte 1 - .byte 4 - .byte 2 - -gMovementTypeFuncs_WalkSequenceRightUpLeftDown:: @ 83A6334 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceRightUpLeftDown_Step1 - .4byte MovementType_WalkSequence_Step2 - -gRightUpLeftDownDirections:: @ 83A6340 - .byte 4 - .byte 2 - .byte 3 - .byte 1 - -gMovementTypeFuncs_WalkSequenceUpRightDownLeft:: @ 83A6344 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceUpRightDownLeft_Step1 - .4byte MovementType_WalkSequence_Step2 - -gUpRightDownLeftDirections:: @ 83A6350 - .byte 2 - .byte 4 - .byte 1 - .byte 3 - -gMovementTypeFuncs_WalkSequenceDownLeftUpRight:: @ 83A6354 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceDownLeftUpRight_Step1 - .4byte MovementType_WalkSequence_Step2 - -gDownLeftUpRightDirections:: @ 83A6360 - .byte 1 - .byte 3 - .byte 2 - .byte 4 - -gMovementTypeFuncs_WalkSequenceLeftUpRightDown:: @ 83A6364 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceLeftUpRightDown_Step1 - .4byte MovementType_WalkSequence_Step2 - -gLeftUpRightDownDirections:: @ 83A6370 - .byte 3 - .byte 2 - .byte 4 - .byte 1 - -gMovementTypeFuncs_WalkSequenceRightDownLeftUp:: @ 83A6374 - .4byte MovementType_WalkSequence_Step0 - .4byte MovementType_WalkSequenceRightDownLeftUp_Step1 - .4byte MovementType_WalkSequence_Step2 - -gRightDownLeftUpDirections:: @ 83A6380 - .byte 4 - .byte 1 - .byte 3 - .byte 2 - -gMovementTypeFuncs_CopyPlayer:: @ 83A6384 - .4byte MovementType_CopyPlayer_Step0 - .4byte MovementType_CopyPlayer_Step1 - .4byte MovementType_CopyPlayer_Step2 - -gCopyPlayerMovementFuncs:: @ 83A6390 - .4byte CopyablePlayerMovement_None - .4byte CopyablePlayerMovement_FaceDirection - .4byte CopyablePlayerMovement_GoSpeed0 - .4byte CopyablePlayerMovement_GoSpeed1 - .4byte CopyablePlayerMovement_GoSpeed2 - .4byte CopyablePlayerMovement_Slide - .4byte cph_IM_DIFFERENT - .4byte CopyablePlayerMovement_GoSpeed4 - .4byte CopyablePlayerMovement_Jump - .4byte CopyablePlayerMovement_None - .4byte CopyablePlayerMovement_None - -gMovementTypeFuncs_CopyPlayerInGrass:: @ 83A63BC - .4byte MovementType_CopyPlayer_Step0 - .4byte MovementType_CopyPlayerInGrass_Step1 - .4byte MovementType_CopyPlayer_Step2 - -gMovementTypeFuncs_Hidden:: @ 83A63C8 - .4byte MovementType_Hidden_Step0 - -gMovementTypeFuncs_WalkInPlace:: @ 83A63CC - .4byte MovementType_WalkInPlace_Step0 - .4byte MovementType_MoveInPlace_Step1 - -gMovementTypeFuncs_WalkSlowlyInPlace:: @ 83A63D4 - .4byte MovementType_WalkSlowlyInPlace_Step0 - .4byte MovementType_MoveInPlace_Step1 - -gMovementTypeFuncs_JogInPlace:: @ 83A63DC - .4byte MovementType_JogInPlace_Step0 - .4byte MovementType_MoveInPlace_Step1 - -gMovementTypeFuncs_Invisible:: @ 83A63E4 - .4byte MovementType_Invisible_Step0 - .4byte MovementType_Invisible_Step1 - .4byte MovementType_Invisible_Step2 - -gUnknown_83A63F0:: @ 83A63F0 - .4byte sub_8063364 - .4byte sub_8063384 - .4byte sub_80633A4 - -gUnknown_83A63FC:: @ 83A63FC - .4byte sub_80633B4 - .4byte sub_80633F4 - -gUnknown_83A6404:: @ 83A6404 - .4byte sub_80633D4 - .4byte sub_80633F4 diff --git a/src/data/object_events/movement_type_func_tables.h b/src/data/object_events/movement_type_func_tables.h new file mode 100644 index 000000000..e83eeac4a --- /dev/null +++ b/src/data/object_events/movement_type_func_tables.h @@ -0,0 +1,614 @@ +bool8 MovementType_WanderAround_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderAround_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderAround_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderAround_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderAround_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderAround_Step5(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderAround_Step5Duplicate(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderAround_Step6(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_LookAround_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_LookAround_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_LookAround_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_LookAround_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_LookAround_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderUpAndDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderUpAndDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderUpAndDown_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderUpAndDown_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderUpAndDown_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderUpAndDown_Step5(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderUpAndDown_Step6(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderLeftAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderLeftAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderLeftAndRight_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderLeftAndRight_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderLeftAndRight_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderLeftAndRight_Step5(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WanderLeftAndRight_Step6(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDirection_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDirection_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndUp_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndUp_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndUp_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceLeftAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceLeftAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceLeftAndRight_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceLeftAndRight_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceLeftAndRight_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpAndLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpAndLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpAndLeft_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpAndLeft_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpAndLeft_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpAndRight_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpAndRight_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpAndRight_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndLeft_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndLeft_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndLeft_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndRight_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndRight_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownAndRight_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownUpAndLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownUpAndLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownUpAndLeft_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownUpAndLeft_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownUpAndLeft_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownUpAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownUpAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownUpAndRight_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownUpAndRight_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownUpAndRight_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpLeftAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpLeftAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpLeftAndRight_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpLeftAndRight_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceUpLeftAndRight_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownLeftAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownLeftAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownLeftAndRight_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownLeftAndRight_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_FaceDownLeftAndRight_Step4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_RotateCounterclockwise_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_RotateCounterclockwise_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_RotateCounterclockwise_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_RotateCounterclockwise_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_RotateClockwise_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_RotateClockwise_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_RotateClockwise_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_RotateClockwise_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkBackAndForth_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkBackAndForth_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkBackAndForth_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkBackAndForth_Step3(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequence_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequence_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceUpRightLeftDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceRightLeftDownUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceDownUpRightLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceLeftDownUpRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceUpLeftRightDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceLeftRightDownUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceDownUpLeftRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceRightDownUpLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceLeftUpDownRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceUpDownRightLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceRightLeftUpDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceDownRightLeftUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceRightUpDownLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceUpDownLeftRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceLeftRightUpDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceDownLeftRightUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceUpLeftDownRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceDownRightUpLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceLeftDownRightUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceRightUpLeftDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceUpRightDownLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceDownLeftUpRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceLeftUpRightDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSequenceRightDownLeftUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_CopyPlayer_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_CopyPlayer_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_CopyPlayer_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 CopyablePlayerMovement_None(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_FaceDirection(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_GoSpeed0(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_GoSpeed1(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_GoSpeed2(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_Slide(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); +bool8 cph_IM_DIFFERENT(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_GoSpeed4(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); +bool8 CopyablePlayerMovement_Jump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 playerDirection, bool8 tileCallback(u8)); +bool8 MovementType_CopyPlayer_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_CopyPlayerInGrass_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_CopyPlayer_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_Hidden_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_WalkSlowlyInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_JogInPlace_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_Invisible_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_Invisible_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 MovementType_Invisible_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 sub_8063364(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 sub_8063384(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 sub_80633A4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 sub_80633B4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 sub_80633F4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 sub_80633D4(struct ObjectEvent *objectEvent, struct Sprite *sprite); +bool8 sub_80633F4(struct ObjectEvent *objectEvent, struct Sprite *sprite); + +u8 GetVectorDirection(s16 dx, s16 dy, s16 absdx, s16 absdy); +u8 GetLimitedVectorDirection_SouthNorth(s16 dx, s16 dy, s16 absdx, s16 absdy); +u8 GetLimitedVectorDirection_WestEast(s16 dx, s16 dy, s16 absdx, s16 absdy); +u8 GetLimitedVectorDirection_WestNorth(s16 dx, s16 dy, s16 absdx, s16 absdy); +u8 GetLimitedVectorDirection_EastNorth(s16 dx, s16 dy, s16 absdx, s16 absdy); +u8 GetLimitedVectorDirection_WestSouth(s16 dx, s16 dy, s16 absdx, s16 absdy); +u8 GetLimitedVectorDirection_EastSouth(s16 dx, s16 dy, s16 absdx, s16 absdy); +u8 GetLimitedVectorDirection_SouthNorthWest(s16 dx, s16 dy, s16 absdx, s16 absdy); +u8 GetLimitedVectorDirection_SouthNorthEast(s16 dx, s16 dy, s16 absdx, s16 absdy); +u8 GetLimitedVectorDirection_NorthWestEast(s16 dx, s16 dy, s16 absdx, s16 absdy); +u8 GetLimitedVectorDirection_SouthWestEast(s16 dx, s16 dy, s16 absdx, s16 absdy); + +u8 (*const gMovementTypeFuncs_WanderAround[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WanderAround_Step0, + MovementType_WanderAround_Step1, + MovementType_WanderAround_Step2, + MovementType_WanderAround_Step3, + MovementType_WanderAround_Step4, + MovementType_WanderAround_Step5, + MovementType_WanderAround_Step6, +}; + +u8 (*const gMovementTypeFuncs_WanderAroundDuplicate[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WanderAround_Step0, + MovementType_WanderAround_Step1, + MovementType_WanderAround_Step2, + MovementType_WanderAround_Step3, + MovementType_WanderAround_Step4, + MovementType_WanderAround_Step5Duplicate, + MovementType_WanderAround_Step6, +}; + +const u8 gStandardDirections[] = {DIR_SOUTH, DIR_NORTH, DIR_WEST, DIR_EAST}; + +u8 (*const gGetVectorDirectionFuncs[])(s16, s16, s16, s16) = { + GetVectorDirection, + GetLimitedVectorDirection_SouthNorth, + GetLimitedVectorDirection_WestEast, + GetLimitedVectorDirection_WestNorth, + GetLimitedVectorDirection_EastNorth, + GetLimitedVectorDirection_WestSouth, + GetLimitedVectorDirection_EastSouth, + GetLimitedVectorDirection_SouthNorthWest, + GetLimitedVectorDirection_SouthNorthEast, + GetLimitedVectorDirection_NorthWestEast, + GetLimitedVectorDirection_SouthWestEast, +}; + +u8 (*const gMovementTypeFuncs_LookAround[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_LookAround_Step0, + MovementType_LookAround_Step1, + MovementType_LookAround_Step2, + MovementType_LookAround_Step3, + MovementType_LookAround_Step4, +}; + +u8 (*const gMovementTypeFuncs_WanderUpAndDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WanderUpAndDown_Step0, + MovementType_WanderUpAndDown_Step1, + MovementType_WanderUpAndDown_Step2, + MovementType_WanderUpAndDown_Step3, + MovementType_WanderUpAndDown_Step4, + MovementType_WanderUpAndDown_Step5, + MovementType_WanderUpAndDown_Step6, +}; + +const u8 gUpAndDownDirections[] = {DIR_SOUTH, DIR_NORTH}; + +u8 (*const gMovementTypeFuncs_WanderLeftAndRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WanderLeftAndRight_Step0, + MovementType_WanderLeftAndRight_Step1, + MovementType_WanderLeftAndRight_Step2, + MovementType_WanderLeftAndRight_Step3, + MovementType_WanderLeftAndRight_Step4, + MovementType_WanderLeftAndRight_Step5, + MovementType_WanderLeftAndRight_Step6, +}; + +const u8 gLeftAndRightDirections[] = {DIR_WEST, DIR_EAST}; + +u8 (*const gMovementTypeFuncs_FaceDirection[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_FaceDirection_Step0, + MovementType_FaceDirection_Step1, + MovementType_FaceDirection_Step2, +}; + +u8 (*const gMovementTypeFuncs_FaceDownAndUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_FaceDownAndUp_Step0, + MovementType_FaceDownAndUp_Step1, + MovementType_FaceDownAndUp_Step2, + MovementType_FaceDownAndUp_Step3, + MovementType_FaceDownAndUp_Step4, +}; + +u8 (*const gMovementTypeFuncs_FaceLeftAndRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_FaceLeftAndRight_Step0, + MovementType_FaceLeftAndRight_Step1, + MovementType_FaceLeftAndRight_Step2, + MovementType_FaceLeftAndRight_Step3, + MovementType_FaceLeftAndRight_Step4, +}; + +u8 (*const gMovementTypeFuncs_FaceUpAndLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_FaceUpAndLeft_Step0, + MovementType_FaceUpAndLeft_Step1, + MovementType_FaceUpAndLeft_Step2, + MovementType_FaceUpAndLeft_Step3, + MovementType_FaceUpAndLeft_Step4, +}; + +const u8 gUpAndLeftDirections[] = {DIR_NORTH, DIR_WEST}; + +u8 (*const gMovementTypeFuncs_FaceUpAndRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_FaceUpAndRight_Step0, + MovementType_FaceUpAndRight_Step1, + MovementType_FaceUpAndRight_Step2, + MovementType_FaceUpAndRight_Step3, + MovementType_FaceUpAndRight_Step4, +}; + +const u8 gUpAndRightDirections[] = {DIR_NORTH, DIR_EAST}; + +u8 (*const gMovementTypeFuncs_FaceDownAndLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_FaceDownAndLeft_Step0, + MovementType_FaceDownAndLeft_Step1, + MovementType_FaceDownAndLeft_Step2, + MovementType_FaceDownAndLeft_Step3, + MovementType_FaceDownAndLeft_Step4, +}; + +const u8 gDownAndLeftDirections[] = {DIR_SOUTH, DIR_WEST}; + +u8 (*const gMovementTypeFuncs_FaceDownAndRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_FaceDownAndRight_Step0, + MovementType_FaceDownAndRight_Step1, + MovementType_FaceDownAndRight_Step2, + MovementType_FaceDownAndRight_Step3, + MovementType_FaceDownAndRight_Step4, +}; + +const u8 gDownAndRightDirections[] = {DIR_SOUTH, DIR_EAST}; + +u8 (*const gMovementTypeFuncs_FaceDownUpAndLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_FaceDownUpAndLeft_Step0, + MovementType_FaceDownUpAndLeft_Step1, + MovementType_FaceDownUpAndLeft_Step2, + MovementType_FaceDownUpAndLeft_Step3, + MovementType_FaceDownUpAndLeft_Step4, +}; + +const u8 gDownUpAndLeftDirections[] = {DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_SOUTH}; + +u8 (*const gMovementTypeFuncs_FaceDownUpAndRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_FaceDownUpAndRight_Step0, + MovementType_FaceDownUpAndRight_Step1, + MovementType_FaceDownUpAndRight_Step2, + MovementType_FaceDownUpAndRight_Step3, + MovementType_FaceDownUpAndRight_Step4, +}; + +const u8 gDownUpAndRightDirections[] = {DIR_SOUTH, DIR_NORTH, DIR_EAST, DIR_SOUTH}; + +u8 (*const gMovementTypeFuncs_FaceUpLeftAndRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_FaceUpLeftAndRight_Step0, + MovementType_FaceUpLeftAndRight_Step1, + MovementType_FaceUpLeftAndRight_Step2, + MovementType_FaceUpLeftAndRight_Step3, + MovementType_FaceUpLeftAndRight_Step4, +}; + +const u8 gUpLeftAndRightDirections[] = {DIR_NORTH, DIR_WEST, DIR_EAST, DIR_NORTH}; + +u8 (*const gMovementTypeFuncs_FaceDownLeftAndRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_FaceDownLeftAndRight_Step0, + MovementType_FaceDownLeftAndRight_Step1, + MovementType_FaceDownLeftAndRight_Step2, + MovementType_FaceDownLeftAndRight_Step3, + MovementType_FaceDownLeftAndRight_Step4, +}; + +const u8 gDownLeftAndRightDirections[] = {DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_SOUTH}; + +u8 (*const gMovementTypeFuncs_RotateCounterclockwise[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_RotateCounterclockwise_Step0, + MovementType_RotateCounterclockwise_Step1, + MovementType_RotateCounterclockwise_Step2, + MovementType_RotateCounterclockwise_Step3, +}; + +const u8 gCounterclockwiseDirections[] = {DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_SOUTH, DIR_NORTH}; + +u8 (*const gMovementTypeFuncs_RotateClockwise[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_RotateClockwise_Step0, + MovementType_RotateClockwise_Step1, + MovementType_RotateClockwise_Step2, + MovementType_RotateClockwise_Step3, +}; + +const u8 gClockwiseDirections[] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; + +u8 (*const gMovementTypeFuncs_WalkBackAndForth[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkBackAndForth_Step0, + MovementType_WalkBackAndForth_Step1, + MovementType_WalkBackAndForth_Step2, + MovementType_WalkBackAndForth_Step3, +}; + +u8 (*const gMovementTypeFuncs_WalkSequenceUpRightLeftDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceUpRightLeftDown_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gUpRightLeftDownDirections[] = {DIR_NORTH, DIR_EAST, DIR_WEST, DIR_SOUTH}; + +u8 (*const gMovementTypeFuncs_WalkSequenceRightLeftDownUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceRightLeftDownUp_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gRightLeftDownUpDirections[] = {DIR_EAST, DIR_WEST, DIR_SOUTH, DIR_NORTH}; + +u8 (*const gMovementTypeFuncs_WalkSequenceDownUpRightLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceDownUpRightLeft_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gDownUpRightLeftDirections[] = {DIR_SOUTH, DIR_NORTH, DIR_EAST, DIR_WEST}; + +u8 (*const gMovementTypeFuncs_WalkSequenceLeftDownUpRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceLeftDownUpRight_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gLeftDownUpRightDirections[] = {DIR_WEST, DIR_SOUTH, DIR_NORTH, DIR_EAST}; + +u8 (*const gMovementTypeFuncs_WalkSequenceUpLeftRightDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceUpLeftRightDown_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gUpLeftRightDownDirections[] = {DIR_NORTH, DIR_WEST, DIR_EAST, DIR_SOUTH}; + +u8 (*const gMovementTypeFuncs_WalkSequenceLeftRightDownUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceLeftRightDownUp_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gLeftRightDownUpDirections[] = {DIR_WEST, DIR_EAST, DIR_SOUTH, DIR_NORTH}; + +u8 (*const gMovementTypeFuncs_WalkSequenceDownUpLeftRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceDownUpLeftRight_Step1, + MovementType_WalkSequence_Step2, +}; + +u8 (*const gMovementTypeFuncs_WalkSequenceRightDownUpLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceRightDownUpLeft_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gRightDownUpLeftDirections[] = {DIR_EAST, DIR_SOUTH, DIR_NORTH, DIR_WEST}; + +u8 (*const gMovementTypeFuncs_WalkSequenceLeftUpDownRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceLeftUpDownRight_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gLeftUpDownRightDirections[] = {DIR_WEST, DIR_NORTH, DIR_SOUTH, DIR_EAST}; + +u8 (*const gMovementTypeFuncs_WalkSequenceUpDownRightLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceUpDownRightLeft_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gUpDownRightLeftDirections[] = {DIR_NORTH, DIR_SOUTH, DIR_EAST, DIR_WEST}; + +u8 (*const gMovementTypeFuncs_WalkSequenceRightLeftUpDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceRightLeftUpDown_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gRightLeftUpDownDirections[] = {DIR_EAST, DIR_WEST, DIR_NORTH, DIR_SOUTH}; + +u8 (*const gMovementTypeFuncs_WalkSequenceDownRightLeftUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceDownRightLeftUp_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gDownRightLeftUpDirections[] = {DIR_SOUTH, DIR_EAST, DIR_WEST, DIR_NORTH}; + +u8 (*const gMovementTypeFuncs_WalkSequenceRightUpDownLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceRightUpDownLeft_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gRightUpDownLeftDirections[] = {DIR_EAST, DIR_NORTH, DIR_SOUTH, DIR_WEST}; + +u8 (*const gMovementTypeFuncs_WalkSequenceUpDownLeftRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceUpDownLeftRight_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gUpDownLeftRightDirections[] = {DIR_NORTH, DIR_SOUTH, DIR_WEST, DIR_EAST}; + +u8 (*const gMovementTypeFuncs_WalkSequenceLeftRightUpDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceLeftRightUpDown_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gLeftRightUpDownDirections[] = {DIR_WEST, DIR_EAST, DIR_NORTH, DIR_SOUTH}; + +u8 (*const gMovementTypeFuncs_WalkSequenceDownLeftRightUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceDownLeftRightUp_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gDownLeftRightUpDirections[] = {DIR_SOUTH, DIR_WEST, DIR_EAST, DIR_NORTH}; + +u8 (*const gMovementTypeFuncs_WalkSequenceUpLeftDownRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceUpLeftDownRight_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gUpLeftDownRightDirections[] = {DIR_NORTH, DIR_WEST, DIR_SOUTH, DIR_EAST}; + +u8 (*const gMovementTypeFuncs_WalkSequenceDownRightUpLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceDownRightUpLeft_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gDownRightUpLeftDirections[] = {DIR_SOUTH, DIR_EAST, DIR_NORTH, DIR_WEST}; + +u8 (*const gMovementTypeFuncs_WalkSequenceLeftDownRightUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceLeftDownRightUp_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gLeftDownRightUpDirections[] = {DIR_WEST, DIR_SOUTH, DIR_EAST, DIR_NORTH}; + +u8 (*const gMovementTypeFuncs_WalkSequenceRightUpLeftDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceRightUpLeftDown_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gRightUpLeftDownDirections[] = {DIR_EAST, DIR_NORTH, DIR_WEST, DIR_SOUTH}; + +u8 (*const gMovementTypeFuncs_WalkSequenceUpRightDownLeft[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceUpRightDownLeft_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gUpRightDownLeftDirections[] = {DIR_NORTH, DIR_EAST, DIR_SOUTH, DIR_WEST}; + +u8 (*const gMovementTypeFuncs_WalkSequenceDownLeftUpRight[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceDownLeftUpRight_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gDownLeftUpRightDirections[] = {DIR_SOUTH, DIR_WEST, DIR_NORTH, DIR_EAST}; + +u8 (*const gMovementTypeFuncs_WalkSequenceLeftUpRightDown[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceLeftUpRightDown_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gLeftUpRightDownDirections[] = {DIR_WEST, DIR_NORTH, DIR_EAST, DIR_SOUTH}; + +u8 (*const gMovementTypeFuncs_WalkSequenceRightDownLeftUp[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSequence_Step0, + MovementType_WalkSequenceRightDownLeftUp_Step1, + MovementType_WalkSequence_Step2, +}; + +const u8 gRightDownLeftUpDirections[] = {DIR_EAST, DIR_SOUTH, DIR_WEST, DIR_NORTH}; + +u8 (*const gMovementTypeFuncs_CopyPlayer[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_CopyPlayer_Step0, + MovementType_CopyPlayer_Step1, + MovementType_CopyPlayer_Step2, +}; + +bool8 (*const gCopyPlayerMovementFuncs[])(struct ObjectEvent *, struct Sprite *, u8, bool8(u8)) = { + CopyablePlayerMovement_None, + CopyablePlayerMovement_FaceDirection, + CopyablePlayerMovement_GoSpeed0, + CopyablePlayerMovement_GoSpeed1, + CopyablePlayerMovement_GoSpeed2, + CopyablePlayerMovement_Slide, + cph_IM_DIFFERENT, + CopyablePlayerMovement_GoSpeed4, + CopyablePlayerMovement_Jump, + CopyablePlayerMovement_None, + CopyablePlayerMovement_None, +}; + +u8 (*const gMovementTypeFuncs_CopyPlayerInGrass[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_CopyPlayer_Step0, + MovementType_CopyPlayerInGrass_Step1, + MovementType_CopyPlayer_Step2, +}; + +u8 (*const gMovementTypeFuncs_Hidden[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_Hidden_Step0, +}; + +u8 (*const gMovementTypeFuncs_WalkInPlace[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkInPlace_Step0, + MovementType_MoveInPlace_Step1, +}; + +u8 (*const gMovementTypeFuncs_WalkSlowlyInPlace[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_WalkSlowlyInPlace_Step0, + MovementType_MoveInPlace_Step1, +}; + +u8 (*const gMovementTypeFuncs_JogInPlace[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_JogInPlace_Step0, + MovementType_MoveInPlace_Step1, +}; + +u8 (*const gMovementTypeFuncs_Invisible[])(struct ObjectEvent *, struct Sprite *) = { + MovementType_Invisible_Step0, + MovementType_Invisible_Step1, + MovementType_Invisible_Step2, +}; + +u8 (*const gUnknown_83A63F0[])(struct ObjectEvent *, struct Sprite *) = { + sub_8063364, + sub_8063384, + sub_80633A4, +}; + +u8 (*const gUnknown_83A63FC[])(struct ObjectEvent *, struct Sprite *) = { + sub_80633B4, + sub_80633F4, +}; + +u8 (*const gUnknown_83A6404[])(struct ObjectEvent *, struct Sprite *) = { + sub_80633D4, + sub_80633F4, +}; diff --git a/src/event_object_movement.c b/src/event_object_movement.c index c9d02470b..dae1a5926 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -291,6 +291,8 @@ extern const s16 gUnknown_83A695E[3]; #define OBJ_EVENT_PAL_TAG_NONE 0x11FF +#include "data/object_events/movement_type_func_tables.h" + const u8 gFaceDirectionAnimNums[] = { [DIR_NONE] = 0x00, [DIR_SOUTH] = 0x00, |