diff options
Diffstat (limited to 'src/event_object_movement.c')
-rw-r--r-- | src/event_object_movement.c | 798 |
1 files changed, 410 insertions, 388 deletions
diff --git a/src/event_object_movement.c b/src/event_object_movement.c index cd5a547a9..ef125e564 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -9,7 +9,7 @@ #include "field_effect_helpers.h" #include "field_player_avatar.h" #include "fieldmap.h" -#include "malloc.h" +#include "alloc.h" #include "mauville_old_man.h" #include "metatile_behavior.h" #include "overworld.h" @@ -27,6 +27,28 @@ // this file was known as evobjmv.c in Game Freak's original source +#define movement_type_def(setup, table) \ +static u8 setup##_callback(struct EventObject *, struct Sprite *);\ +void setup(struct Sprite *sprite)\ +{\ + UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, setup##_callback);\ +}\ +static u8 setup##_callback(struct EventObject *eventObject, struct Sprite *sprite)\ +{\ + return table[sprite->data[1]](eventObject, sprite);\ +} + +#define movement_type_empty_callback(setup) \ +static u8 setup##_callback(struct EventObject *, struct Sprite *);\ +void setup(struct Sprite *sprite)\ +{\ + UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, setup##_callback);\ +}\ +static u8 setup##_callback(struct EventObject *eventObject, struct Sprite *sprite)\ +{\ + return 0;\ +} + EWRAM_DATA u8 sCurrentReflectionType = 0; EWRAM_DATA u16 sCurrentSpecialObjectPaletteTag = 0; EWRAM_DATA struct LockedAnimEventObjects *gLockedAnimEventObjects = {0}; @@ -120,255 +142,255 @@ void (*const gCameraObjectFuncs[])(struct Sprite *) = { // movement type callbacks static void (*const sMovementTypeCallbacks[])(struct Sprite *) = { - MovementType_None, // MOVEMENT_TYPE_NONE - MovementType_LookAround, // MOVEMENT_TYPE_LOOK_AROUND - MovementType_WanderAround, // MOVEMENT_TYPE_WANDER_AROUND - MovementType_WanderUpAndDown, // MOVEMENT_TYPE_WANDER_UP_AND_DOWN - MovementType_WanderUpAndDown, // MOVEMENT_TYPE_WANDER_DOWN_AND_UP - MovementType_WanderLeftAndRight, // MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT - MovementType_WanderLeftAndRight, // MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT - MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_UP - MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_DOWN - MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_LEFT - MovementType_FaceDirection, // MOVEMENT_TYPE_FACE_RIGHT - MovementType_Player, // MOVEMENT_TYPE_PLAYER - MovementType_BerryTreeGrowth, // MOVEMENT_TYPE_BERRY_TREE_GROWTH - MovementType_FaceDownAndUp, // MOVEMENT_TYPE_FACE_DOWN_AND_UP - MovementType_FaceLeftAndRight, // MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT - MovementType_FaceUpAndLeft, // MOVEMENT_TYPE_FACE_UP_AND_LEFT - MovementType_FaceUpAndRight, // MOVEMENT_TYPE_FACE_UP_AND_RIGHT - MovementType_FaceDownAndLeft, // MOVEMENT_TYPE_FACE_DOWN_AND_LEFT - MovementType_FaceDownAndRight, // MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT - MovementType_FaceDownUpAndLeft, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT - MovementType_FaceDownUpAndRight, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT - MovementType_FaceUpRightAndLeft, // MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT - MovementType_FaceDownRightAndLeft, // MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT - MovementType_RotateCounterclockwise, // MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE - MovementType_RotateClockwise, // MOVEMENT_TYPE_ROTATE_CLOCKWISE - MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_UP_AND_DOWN - MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_DOWN_AND_UP - MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT - MovementType_WalkBackAndForth, // MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT - MovementType_WalkSequenceUpRightLeftDown, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN - MovementType_WalkSequenceRightLeftDownUp, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP - MovementType_WalkSequenceDownUpRightLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT - MovementType_WalkSequenceLeftDownUpRight, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT - MovementType_WalkSequenceUpLeftRightDown, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN - MovementType_WalkSequenceLeftRightDownUp, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP - MovementType_WalkSequenceDownUpLeftRight, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT - MovementType_WalkSequenceRightDownUpLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT - MovementType_WalkSequenceLeftUpDownRight, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT - MovementType_WalkSequenceUpDownRightLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT - MovementType_WalkSequenceRightLeftUpDown, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN - MovementType_WalkSequenceDownRightLeftUp, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP - MovementType_WalkSequenceRightUpDownLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT - MovementType_WalkSequenceUpDownLeftRight, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT - MovementType_WalkSequenceLeftRightUpDown, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN - MovementType_WalkSequenceDownLeftRightUp, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP - MovementType_WalkSequenceUpLeftDownRight, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT - MovementType_WalkSequenceDownRightUpLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT - MovementType_WalkSequenceLeftDownRightUp, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP - MovementType_WalkSequenceRightUpLeftDown, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN - MovementType_WalkSequenceUpRightDownLeft, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT - MovementType_WalkSequenceDownLeftUpRight, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT - MovementType_WalkSequenceLeftUpRightDown, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN - MovementType_WalkSequenceRightDownLeftUp, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP - MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER - MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE - MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE - MovementType_CopyPlayer, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE - MovementType_TreeDisguise, // MOVEMENT_TYPE_TREE_DISGUISE - MovementType_MountainDisguise, // MOVEMENT_TYPE_MOUNTAIN_DISGUISE - MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS - MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS - MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS - MovementType_CopyPlayerInGrass, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS - MovementType_Hidden, // MOVEMENT_TYPE_HIDDEN - MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_DOWN - MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_UP - MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_LEFT - MovementType_WalkInPlace, // MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT - MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_DOWN - MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_UP - MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_LEFT - MovementType_JogInPlace, // MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT - MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_DOWN - MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_UP - MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_LEFT - MovementType_RunInPlace, // MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT - MovementType_Invisible, // MOVEMENT_TYPE_INVISIBLE - MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN - MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP - MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT - MovementType_WalkSlowlyInPlace, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT + [MOVEMENT_TYPE_NONE] = MovementType_None, + [MOVEMENT_TYPE_LOOK_AROUND] = MovementType_LookAround, + [MOVEMENT_TYPE_WANDER_AROUND] = MovementType_WanderAround, + [MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = MovementType_WanderUpAndDown, + [MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = MovementType_WanderUpAndDown, + [MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = MovementType_WanderLeftAndRight, + [MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = MovementType_WanderLeftAndRight, + [MOVEMENT_TYPE_FACE_UP] = MovementType_FaceDirection, + [MOVEMENT_TYPE_FACE_DOWN] = MovementType_FaceDirection, + [MOVEMENT_TYPE_FACE_LEFT] = MovementType_FaceDirection, + [MOVEMENT_TYPE_FACE_RIGHT] = MovementType_FaceDirection, + [MOVEMENT_TYPE_PLAYER] = MovementType_Player, + [MOVEMENT_TYPE_BERRY_TREE_GROWTH] = MovementType_BerryTreeGrowth, + [MOVEMENT_TYPE_FACE_DOWN_AND_UP] = MovementType_FaceDownAndUp, + [MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = MovementType_FaceLeftAndRight, + [MOVEMENT_TYPE_FACE_UP_AND_LEFT] = MovementType_FaceUpAndLeft, + [MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = MovementType_FaceUpAndRight, + [MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = MovementType_FaceDownAndLeft, + [MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = MovementType_FaceDownAndRight, + [MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = MovementType_FaceDownUpAndLeft, + [MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = MovementType_FaceDownUpAndRight, + [MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = MovementType_FaceUpRightAndLeft, + [MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = MovementType_FaceDownRightAndLeft, + [MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = MovementType_RotateCounterclockwise, + [MOVEMENT_TYPE_ROTATE_CLOCKWISE] = MovementType_RotateClockwise, + [MOVEMENT_TYPE_WALK_UP_AND_DOWN] = MovementType_WalkBackAndForth, + [MOVEMENT_TYPE_WALK_DOWN_AND_UP] = MovementType_WalkBackAndForth, + [MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = MovementType_WalkBackAndForth, + [MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = MovementType_WalkBackAndForth, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = MovementType_WalkSequenceUpRightLeftDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = MovementType_WalkSequenceRightLeftDownUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = MovementType_WalkSequenceDownUpRightLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = MovementType_WalkSequenceLeftDownUpRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = MovementType_WalkSequenceUpLeftRightDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = MovementType_WalkSequenceLeftRightDownUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = MovementType_WalkSequenceDownUpLeftRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = MovementType_WalkSequenceRightDownUpLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = MovementType_WalkSequenceLeftUpDownRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = MovementType_WalkSequenceUpDownRightLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = MovementType_WalkSequenceRightLeftUpDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = MovementType_WalkSequenceDownRightLeftUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = MovementType_WalkSequenceRightUpDownLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = MovementType_WalkSequenceUpDownLeftRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = MovementType_WalkSequenceLeftRightUpDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = MovementType_WalkSequenceDownLeftRightUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = MovementType_WalkSequenceUpLeftDownRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = MovementType_WalkSequenceDownRightUpLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = MovementType_WalkSequenceLeftDownRightUp, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = MovementType_WalkSequenceRightUpLeftDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = MovementType_WalkSequenceUpRightDownLeft, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = MovementType_WalkSequenceDownLeftUpRight, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = MovementType_WalkSequenceLeftUpRightDown, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = MovementType_WalkSequenceRightDownLeftUp, + [MOVEMENT_TYPE_COPY_PLAYER] = MovementType_CopyPlayer, + [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = MovementType_CopyPlayer, + [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = MovementType_CopyPlayer, + [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = MovementType_CopyPlayer, + [MOVEMENT_TYPE_TREE_DISGUISE] = MovementType_TreeDisguise, + [MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = MovementType_MountainDisguise, + [MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = MovementType_CopyPlayerInGrass, + [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = MovementType_CopyPlayerInGrass, + [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass, + [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = MovementType_CopyPlayerInGrass, + [MOVEMENT_TYPE_HIDDEN] = MovementType_Hidden, + [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = MovementType_WalkInPlace, + [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = MovementType_WalkInPlace, + [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = MovementType_WalkInPlace, + [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = MovementType_WalkInPlace, + [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = MovementType_JogInPlace, + [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = MovementType_JogInPlace, + [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = MovementType_JogInPlace, + [MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = MovementType_JogInPlace, + [MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = MovementType_RunInPlace, + [MOVEMENT_TYPE_RUN_IN_PLACE_UP] = MovementType_RunInPlace, + [MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = MovementType_RunInPlace, + [MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = MovementType_RunInPlace, + [MOVEMENT_TYPE_INVISIBLE] = MovementType_Invisible, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = MovementType_WalkSlowlyInPlace, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = MovementType_WalkSlowlyInPlace, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = MovementType_WalkSlowlyInPlace, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = MovementType_WalkSlowlyInPlace, }; const u8 gRangedMovementTypes[] = { - 0, // MOVEMENT_TYPE_NONE - 0, // MOVEMENT_TYPE_LOOK_AROUND - 1, // MOVEMENT_TYPE_WANDER_AROUND - 1, // MOVEMENT_TYPE_WANDER_UP_AND_DOWN - 1, // MOVEMENT_TYPE_WANDER_DOWN_AND_UP - 1, // MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT - 1, // MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT - 0, // MOVEMENT_TYPE_FACE_UP - 0, // MOVEMENT_TYPE_FACE_DOWN - 0, // MOVEMENT_TYPE_FACE_LEFT - 0, // MOVEMENT_TYPE_FACE_RIGHT - 0, // MOVEMENT_TYPE_PLAYER - 0, // MOVEMENT_TYPE_BERRY_TREE_GROWTH - 0, // MOVEMENT_TYPE_FACE_DOWN_AND_UP - 0, // MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT - 0, // MOVEMENT_TYPE_FACE_UP_AND_LEFT - 0, // MOVEMENT_TYPE_FACE_UP_AND_RIGHT - 0, // MOVEMENT_TYPE_FACE_DOWN_AND_LEFT - 0, // MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT - 0, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT - 0, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT - 0, // MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT - 0, // MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT - 0, // MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE - 0, // MOVEMENT_TYPE_ROTATE_CLOCKWISE - 1, // MOVEMENT_TYPE_WALK_UP_AND_DOWN - 1, // MOVEMENT_TYPE_WALK_DOWN_AND_UP - 1, // MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT - 1, // MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN - 1, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP - 1, // MOVEMENT_TYPE_COPY_PLAYER - 1, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE - 1, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE - 1, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE - 0, // MOVEMENT_TYPE_TREE_DISGUISE - 0, // MOVEMENT_TYPE_MOUNTAIN_DISGUISE - 1, // MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS - 1, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS - 1, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS - 1, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS - 0, // MOVEMENT_TYPE_HIDDEN - 0, // MOVEMENT_TYPE_WALK_IN_PLACE_DOWN - 0, // MOVEMENT_TYPE_WALK_IN_PLACE_UP - 0, // MOVEMENT_TYPE_WALK_IN_PLACE_LEFT - 0, // MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT - 0, // MOVEMENT_TYPE_JOG_IN_PLACE_DOWN - 0, // MOVEMENT_TYPE_JOG_IN_PLACE_UP - 0, // MOVEMENT_TYPE_JOG_IN_PLACE_LEFT - 0, // MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT - 0, // MOVEMENT_TYPE_RUN_IN_PLACE_DOWN - 0, // MOVEMENT_TYPE_RUN_IN_PLACE_UP - 0, // MOVEMENT_TYPE_RUN_IN_PLACE_LEFT - 0, // MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT - 0, // MOVEMENT_TYPE_INVISIBLE - 0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN - 0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP - 0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT - 0, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT + [MOVEMENT_TYPE_NONE] = 0, + [MOVEMENT_TYPE_LOOK_AROUND] = 0, + [MOVEMENT_TYPE_WANDER_AROUND] = 1, + [MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = 1, + [MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = 1, + [MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = 1, + [MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = 1, + [MOVEMENT_TYPE_FACE_UP] = 0, + [MOVEMENT_TYPE_FACE_DOWN] = 0, + [MOVEMENT_TYPE_FACE_LEFT] = 0, + [MOVEMENT_TYPE_FACE_RIGHT] = 0, + [MOVEMENT_TYPE_PLAYER] = 0, + [MOVEMENT_TYPE_BERRY_TREE_GROWTH] = 0, + [MOVEMENT_TYPE_FACE_DOWN_AND_UP] = 0, + [MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = 0, + [MOVEMENT_TYPE_FACE_UP_AND_LEFT] = 0, + [MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = 0, + [MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = 0, + [MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = 0, + [MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = 0, + [MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = 0, + [MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = 0, + [MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = 0, + [MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = 0, + [MOVEMENT_TYPE_ROTATE_CLOCKWISE] = 0, + [MOVEMENT_TYPE_WALK_UP_AND_DOWN] = 1, + [MOVEMENT_TYPE_WALK_DOWN_AND_UP] = 1, + [MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = 1, + [MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = 1, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = 1, + [MOVEMENT_TYPE_COPY_PLAYER] = 1, + [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = 1, + [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = 1, + [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = 1, + [MOVEMENT_TYPE_TREE_DISGUISE] = 0, + [MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = 0, + [MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = 1, + [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = 1, + [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = 1, + [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = 1, + [MOVEMENT_TYPE_HIDDEN] = 0, + [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = 0, + [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = 0, + [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = 0, + [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = 0, + [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = 0, + [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = 0, + [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = 0, + [MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = 0, + [MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = 0, + [MOVEMENT_TYPE_RUN_IN_PLACE_UP] = 0, + [MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = 0, + [MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = 0, + [MOVEMENT_TYPE_INVISIBLE] = 0, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = 0, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = 0, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = 0, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = 0, }; const u8 gInitialMovementTypeFacingDirections[] = { - DIR_SOUTH, // MOVEMENT_TYPE_NONE - DIR_SOUTH, // MOVEMENT_TYPE_LOOK_AROUND - DIR_SOUTH, // MOVEMENT_TYPE_WANDER_AROUND - DIR_NORTH, // MOVEMENT_TYPE_WANDER_UP_AND_DOWN - DIR_SOUTH, // MOVEMENT_TYPE_WANDER_DOWN_AND_UP - DIR_WEST, // MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT - DIR_EAST, // MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT - DIR_NORTH, // MOVEMENT_TYPE_FACE_UP - DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN - DIR_WEST, // MOVEMENT_TYPE_FACE_LEFT - DIR_EAST, // MOVEMENT_TYPE_FACE_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_PLAYER - DIR_SOUTH, // MOVEMENT_TYPE_BERRY_TREE_GROWTH - DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_AND_UP - DIR_WEST, // MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT - DIR_NORTH, // MOVEMENT_TYPE_FACE_UP_AND_LEFT - DIR_NORTH, // MOVEMENT_TYPE_FACE_UP_AND_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_AND_LEFT - DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT - DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT - DIR_NORTH, // MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE - DIR_SOUTH, // MOVEMENT_TYPE_ROTATE_CLOCKWISE - DIR_NORTH, // MOVEMENT_TYPE_WALK_UP_AND_DOWN - DIR_SOUTH, // MOVEMENT_TYPE_WALK_DOWN_AND_UP - DIR_WEST, // MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT - DIR_EAST, // MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT - DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN - DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP - DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT - DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT - DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN - DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP - DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT - DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT - DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT - DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT - DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN - DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP - DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT - DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT - DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN - DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP - DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT - DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP - DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN - DIR_NORTH, // MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT - DIR_SOUTH, // MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT - DIR_WEST, // MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN - DIR_EAST, // MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP - DIR_NORTH, // MOVEMENT_TYPE_COPY_PLAYER - DIR_SOUTH, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE - DIR_WEST, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE - DIR_EAST, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE - DIR_SOUTH, // MOVEMENT_TYPE_TREE_DISGUISE - DIR_SOUTH, // MOVEMENT_TYPE_MOUNTAIN_DISGUISE - DIR_NORTH, // MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS - DIR_SOUTH, // MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS - DIR_WEST, // MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS - DIR_EAST, // MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS - DIR_SOUTH, // MOVEMENT_TYPE_HIDDEN - DIR_SOUTH, // MOVEMENT_TYPE_WALK_IN_PLACE_DOWN - DIR_NORTH, // MOVEMENT_TYPE_WALK_IN_PLACE_UP - DIR_WEST, // MOVEMENT_TYPE_WALK_IN_PLACE_LEFT - DIR_EAST, // MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_JOG_IN_PLACE_DOWN - DIR_NORTH, // MOVEMENT_TYPE_JOG_IN_PLACE_UP - DIR_WEST, // MOVEMENT_TYPE_JOG_IN_PLACE_LEFT - DIR_EAST, // MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_RUN_IN_PLACE_DOWN - DIR_NORTH, // MOVEMENT_TYPE_RUN_IN_PLACE_UP - DIR_WEST, // MOVEMENT_TYPE_RUN_IN_PLACE_LEFT - DIR_EAST, // MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT - DIR_SOUTH, // MOVEMENT_TYPE_INVISIBLE - DIR_SOUTH, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN - DIR_NORTH, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP - DIR_WEST, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT - DIR_EAST, // MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT + [MOVEMENT_TYPE_NONE] = DIR_SOUTH, + [MOVEMENT_TYPE_LOOK_AROUND] = DIR_SOUTH, + [MOVEMENT_TYPE_WANDER_AROUND] = DIR_SOUTH, + [MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = DIR_NORTH, + [MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = DIR_SOUTH, + [MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = DIR_WEST, + [MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = DIR_EAST, + [MOVEMENT_TYPE_FACE_UP] = DIR_NORTH, + [MOVEMENT_TYPE_FACE_DOWN] = DIR_SOUTH, + [MOVEMENT_TYPE_FACE_LEFT] = DIR_WEST, + [MOVEMENT_TYPE_FACE_RIGHT] = DIR_EAST, + [MOVEMENT_TYPE_PLAYER] = DIR_SOUTH, + [MOVEMENT_TYPE_BERRY_TREE_GROWTH] = DIR_SOUTH, + [MOVEMENT_TYPE_FACE_DOWN_AND_UP] = DIR_SOUTH, + [MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = DIR_WEST, + [MOVEMENT_TYPE_FACE_UP_AND_LEFT] = DIR_NORTH, + [MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = DIR_NORTH, + [MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = DIR_SOUTH, + [MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = DIR_SOUTH, + [MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = DIR_SOUTH, + [MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = DIR_SOUTH, + [MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = DIR_NORTH, + [MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = DIR_SOUTH, + [MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = DIR_SOUTH, + [MOVEMENT_TYPE_ROTATE_CLOCKWISE] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_UP_AND_DOWN] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_DOWN_AND_UP] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = DIR_WEST, + [MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = DIR_EAST, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = DIR_EAST, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = DIR_EAST, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = DIR_EAST, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = DIR_EAST, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = DIR_EAST, + [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = DIR_EAST, + [MOVEMENT_TYPE_COPY_PLAYER] = DIR_NORTH, + [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = DIR_SOUTH, + [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = DIR_WEST, + [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = DIR_EAST, + [MOVEMENT_TYPE_TREE_DISGUISE] = DIR_SOUTH, + [MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = DIR_SOUTH, + [MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = DIR_NORTH, + [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = DIR_SOUTH, + [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = DIR_WEST, + [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = DIR_EAST, + [MOVEMENT_TYPE_HIDDEN] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = DIR_WEST, + [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = DIR_EAST, + [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = DIR_SOUTH, + [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = DIR_NORTH, + [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = DIR_WEST, + [MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = DIR_EAST, + [MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = DIR_SOUTH, + [MOVEMENT_TYPE_RUN_IN_PLACE_UP] = DIR_NORTH, + [MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = DIR_WEST, + [MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = DIR_EAST, + [MOVEMENT_TYPE_INVISIBLE] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = DIR_SOUTH, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = DIR_NORTH, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = DIR_WEST, + [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = DIR_EAST, }; #define EVENT_OBJ_PAL_TAG_0 0x1103 @@ -646,181 +668,181 @@ const s16 gMovementDelaysShort[] = {32, 48, 64, 80}; #include "data/field_event_obj/movement_type_func_tables.h" const u8 gFaceDirectionAnimNums[] = { - 0, // DIR_NONE - 0, // DIR_SOUTH - 1, // DIR_NORTH - 2, // DIR_WEST - 3, // DIR_EAST - 0, // DIR_SOUTHWEST - 0, // DIR_SOUTHEAST - 1, // DIR_NORTHWEST - 1, // DIR_NORTHEAST + [DIR_NONE] = 0, + [DIR_SOUTH] = 0, + [DIR_NORTH] = 1, + [DIR_WEST] = 2, + [DIR_EAST] = 3, + [DIR_SOUTHWEST] = 0, + [DIR_SOUTHEAST] = 0, + [DIR_NORTHWEST] = 1, + [DIR_NORTHEAST] = 1, }; const u8 gMoveDirectionAnimNums[] = { - 4, // DIR_NONE - 4, // DIR_SOUTH - 5, // DIR_NORTH - 6, // DIR_WEST - 7, // DIR_EAST - 4, // DIR_SOUTHWEST - 4, // DIR_SOUTHEAST - 5, // DIR_NORTHWEST - 5, // DIR_NORTHEAST + [DIR_NONE] = 4, + [DIR_SOUTH] = 4, + [DIR_NORTH] = 5, + [DIR_WEST] = 6, + [DIR_EAST] = 7, + [DIR_SOUTHWEST] = 4, + [DIR_SOUTHEAST] = 4, + [DIR_NORTHWEST] = 5, + [DIR_NORTHEAST] = 5, }; const u8 gMoveDirectionFastAnimNums[] = { - 8, // DIR_NONE - 8, // DIR_SOUTH - 9, // DIR_NORTH - 10, // DIR_WEST - 11, // DIR_EAST - 8, // DIR_SOUTHWEST - 8, // DIR_SOUTHEAST - 9, // DIR_NORTHWEST - 9, // DIR_NORTHEAST + [DIR_NONE] = 8, + [DIR_SOUTH] = 8, + [DIR_NORTH] = 9, + [DIR_WEST] = 10, + [DIR_EAST] = 11, + [DIR_SOUTHWEST] = 8, + [DIR_SOUTHEAST] = 8, + [DIR_NORTHWEST] = 9, + [DIR_NORTHEAST] = 9, }; const u8 gMoveDirectionFasterAnimNums[] = { - 12, // DIR_NONE - 12, // DIR_SOUTH - 13, // DIR_NORTH - 14, // DIR_WEST - 15, // DIR_EAST - 12, // DIR_SOUTHWEST - 12, // DIR_SOUTHEAST - 13, // DIR_NORTHWEST - 13, // DIR_NORTHEAST + [DIR_NONE] = 12, + [DIR_SOUTH] = 12, + [DIR_NORTH] = 13, + [DIR_WEST] = 14, + [DIR_EAST] = 15, + [DIR_SOUTHWEST] = 12, + [DIR_SOUTHEAST] = 12, + [DIR_NORTHWEST] = 13, + [DIR_NORTHEAST] = 13, }; const u8 gMoveDirectionFastestAnimNums[] = { - 16, // DIR_NONE - 16, // DIR_SOUTH - 17, // DIR_NORTH - 18, // DIR_WEST - 19, // DIR_EAST - 16, // DIR_SOUTHWEST - 16, // DIR_SOUTHEAST - 17, // DIR_NORTHWEST - 17, // DIR_NORTHEAST + [DIR_NONE] = 16, + [DIR_SOUTH] = 16, + [DIR_NORTH] = 17, + [DIR_WEST] = 18, + [DIR_EAST] = 19, + [DIR_SOUTHWEST] = 16, + [DIR_SOUTHEAST] = 16, + [DIR_NORTHWEST] = 17, + [DIR_NORTHEAST] = 17, }; const u8 gJumpSpecialDirectionAnimNums[] = { // used for jumping onto surf mon - 20, // DIR_NONE - 20, // DIR_SOUTH - 21, // DIR_NORTH - 22, // DIR_WEST - 23, // DIR_EAST - 20, // DIR_SOUTHWEST - 20, // DIR_SOUTHEAST - 21, // DIR_NORTHWEST - 21, // DIR_NORTHEAST + [DIR_NONE] = 20, + [DIR_SOUTH] = 20, + [DIR_NORTH] = 21, + [DIR_WEST] = 22, + [DIR_EAST] = 23, + [DIR_SOUTHWEST] = 20, + [DIR_SOUTHEAST] = 20, + [DIR_NORTHWEST] = 21, + [DIR_NORTHEAST] = 21, }; const u8 gAcroWheelieDirectionAnimNums[] = { - 20, // DIR_NONE - 20, // DIR_SOUTH - 21, // DIR_NORTH - 22, // DIR_WEST - 23, // DIR_EAST - 20, // DIR_SOUTHWEST - 20, // DIR_SOUTHEAST - 21, // DIR_NORTHWEST - 21, // DIR_NORTHEAST + [DIR_NONE] = 20, + [DIR_SOUTH] = 20, + [DIR_NORTH] = 21, + [DIR_WEST] = 22, + [DIR_EAST] = 23, + [DIR_SOUTHWEST] = 20, + [DIR_SOUTHEAST] = 20, + [DIR_NORTHWEST] = 21, + [DIR_NORTHEAST] = 21, }; const u8 gUnrefAnimNums_08375633[] = { - 24, // DIR_NONE - 24, // DIR_SOUTH - 25, // DIR_NORTH - 26, // DIR_WEST - 27, // DIR_EAST - 24, // DIR_SOUTHWEST - 24, // DIR_SOUTHEAST - 25, // DIR_NORTHWEST - 25, // DIR_NORTHEAST + [DIR_NONE] = 24, + [DIR_SOUTH] = 24, + [DIR_NORTH] = 25, + [DIR_WEST] = 26, + [DIR_EAST] = 27, + [DIR_SOUTHWEST] = 24, + [DIR_SOUTHEAST] = 24, + [DIR_NORTHWEST] = 25, + [DIR_NORTHEAST] = 25, }; const u8 gAcroEndWheelieDirectionAnimNums[] = { - 28, // DIR_NONE - 28, // DIR_SOUTH - 29, // DIR_NORTH - 30, // DIR_WEST - 31, // DIR_EAST - 28, // DIR_SOUTHWEST - 28, // DIR_SOUTHEAST - 29, // DIR_NORTHWEST - 29, // DIR_NORTHEAST + [DIR_NONE] = 28, + [DIR_SOUTH] = 28, + [DIR_NORTH] = 29, + [DIR_WEST] = 30, + [DIR_EAST] = 31, + [DIR_SOUTHWEST] = 28, + [DIR_SOUTHEAST] = 28, + [DIR_NORTHWEST] = 29, + [DIR_NORTHEAST] = 29, }; const u8 gAcroUnusedActionDirectionAnimNums[] = { - 32, // DIR_NONE - 32, // DIR_SOUTH - 33, // DIR_NORTH - 34, // DIR_WEST - 35, // DIR_EAST - 32, // DIR_SOUTHWEST - 32, // DIR_SOUTHEAST - 33, // DIR_NORTHWEST - 33, // DIR_NORTHEAST + [DIR_NONE] = 32, + [DIR_SOUTH] = 32, + [DIR_NORTH] = 33, + [DIR_WEST] = 34, + [DIR_EAST] = 35, + [DIR_SOUTHWEST] = 32, + [DIR_SOUTHEAST] = 32, + [DIR_NORTHWEST] = 33, + [DIR_NORTHEAST] = 33, }; const u8 gAcroWheeliePedalDirectionAnimNums[] = { - 36, // DIR_NONE - 36, // DIR_SOUTH - 37, // DIR_NORTH - 38, // DIR_WEST - 39, // DIR_EAST - 36, // DIR_SOUTHWEST - 36, // DIR_SOUTHEAST - 37, // DIR_NORTHWEST - 37, // DIR_NORTHEAST + [DIR_NONE] = 36, + [DIR_SOUTH] = 36, + [DIR_NORTH] = 37, + [DIR_WEST] = 38, + [DIR_EAST] = 39, + [DIR_SOUTHWEST] = 36, + [DIR_SOUTHEAST] = 36, + [DIR_NORTHWEST] = 37, + [DIR_NORTHEAST] = 37, }; const u8 gFishingDirectionAnimNums[] = { - 0, // DIR_NONE - 0, // DIR_SOUTH - 1, // DIR_NORTH - 2, // DIR_WEST - 3, // DIR_EAST - 0, // DIR_SOUTHWEST - 0, // DIR_SOUTHEAST - 1, // DIR_NORTHWEST - 1, // DIR_NORTHEAST + [DIR_NONE] = 0, + [DIR_SOUTH] = 0, + [DIR_NORTH] = 1, + [DIR_WEST] = 2, + [DIR_EAST] = 3, + [DIR_SOUTHWEST] = 0, + [DIR_SOUTHEAST] = 0, + [DIR_NORTHWEST] = 1, + [DIR_NORTHEAST] = 1, }; const u8 gFishingNoCatchDirectionAnimNums[] = { - 4, // DIR_NONE - 4, // DIR_SOUTH - 5, // DIR_NORTH - 6, // DIR_WEST - 7, // DIR_EAST - 4, // DIR_SOUTHWEST - 4, // DIR_SOUTHEAST - 5, // DIR_NORTHWEST - 5, // DIR_NORTHEAST + [DIR_NONE] = 4, + [DIR_SOUTH] = 4, + [DIR_NORTH] = 5, + [DIR_WEST] = 6, + [DIR_EAST] = 7, + [DIR_SOUTHWEST] = 4, + [DIR_SOUTHEAST] = 4, + [DIR_NORTHWEST] = 5, + [DIR_NORTHEAST] = 5, }; const u8 gFishingBiteDirectionAnimNums[] = { - 8, // DIR_NONE - 8, // DIR_SOUTH - 9, // DIR_NORTH - 10, // DIR_WEST - 11, // DIR_EAST - 8, // DIR_SOUTHWEST - 8, // DIR_SOUTHEAST - 9, // DIR_NORTHWEST - 9, // DIR_NORTHEAST + [DIR_NONE] = 8, + [DIR_SOUTH] = 8, + [DIR_NORTH] = 9, + [DIR_WEST] = 10, + [DIR_EAST] = 11, + [DIR_SOUTHWEST] = 8, + [DIR_SOUTHEAST] = 8, + [DIR_NORTHWEST] = 9, + [DIR_NORTHEAST] = 9, }; const u8 gRunningDirectionAnimNums[] = { - 20, // DIR_NONE - 20, // DIR_SOUTH - 21, // DIR_NORTH - 22, // DIR_WEST - 23, // DIR_EAST - 20, // DIR_SOUTHWEST - 20, // DIR_SOUTHEAST - 21, // DIR_NORTHWEST - 21, // DIR_NORTHEAST + [DIR_NONE] = 20, + [DIR_SOUTH] = 20, + [DIR_NORTH] = 21, + [DIR_WEST] = 22, + [DIR_EAST] = 23, + [DIR_SOUTHWEST] = 20, + [DIR_SOUTHEAST] = 20, + [DIR_NORTHWEST] = 21, + [DIR_NORTHEAST] = 21, }; const u8 gTrainerFacingDirectionMovementTypes[] = { - MOVEMENT_TYPE_FACE_DOWN, // DIR_NONE - MOVEMENT_TYPE_FACE_DOWN, // DIR_SOUTH - MOVEMENT_TYPE_FACE_UP, // DIR_NORTH - MOVEMENT_TYPE_FACE_LEFT, // DIR_WEST - MOVEMENT_TYPE_FACE_RIGHT, // DIR_EAST - MOVEMENT_TYPE_FACE_DOWN, // DIR_SOUTHWEST - MOVEMENT_TYPE_FACE_DOWN, // DIR_SOUTHEAST - MOVEMENT_TYPE_FACE_UP, // DIR_NORTHWEST - MOVEMENT_TYPE_FACE_UP, // DIR_NORTHEAST + [DIR_NONE] = MOVEMENT_TYPE_FACE_DOWN, + [DIR_SOUTH] = MOVEMENT_TYPE_FACE_DOWN, + [DIR_NORTH] = MOVEMENT_TYPE_FACE_UP, + [DIR_WEST] = MOVEMENT_TYPE_FACE_LEFT, + [DIR_EAST] = MOVEMENT_TYPE_FACE_RIGHT, + [DIR_SOUTHWEST] = MOVEMENT_TYPE_FACE_DOWN, + [DIR_SOUTHEAST] = MOVEMENT_TYPE_FACE_DOWN, + [DIR_NORTHWEST] = MOVEMENT_TYPE_FACE_UP, + [DIR_NORTHEAST] = MOVEMENT_TYPE_FACE_UP, }; bool8 (*const gOppositeDirectionBlockedMetatileFuncs[])(u8) = { |