Move data up to object event graphics to src

This commit is contained in:
GriffinR
2020-03-25 00:57:23 -04:00
parent 970717ee2c
commit 5b612393eb
2 changed files with 308 additions and 250 deletions
-249
View File
@@ -757,253 +757,4 @@ gUnknown_839D3A8:: @ 839D3A8
gUnknown_839D3C8:: @ 839D3C8
.incbin "graphics/object_events/pics/unknown/839D3C8.4bpp"
sMovementTypeCallbacks:: @ 839FBC8
.4byte MovementType_None
.4byte MovementType_LookAround
.4byte MovementType_WanderAround
.4byte MovementType_WanderUpAndDown
.4byte MovementType_WanderUpAndDown
.4byte MovementType_WanderLeftAndRight
.4byte MovementType_WanderLeftAndRight
.4byte MovementType_FaceDirection
.4byte MovementType_FaceDirection
.4byte MovementType_FaceDirection
.4byte MovementType_FaceDirection
.4byte sub_805B3B8
.4byte NULL
.4byte MovementType_FaceDownAndUp
.4byte MovementType_FaceLeftAndRight
.4byte MovementType_FaceUpAndLeft
.4byte MovementType_FaceUpAndRight
.4byte MovementType_FaceDownAndLeft
.4byte MovementType_FaceDownAndRight
.4byte MovementType_FaceDownUpAndLeft
.4byte MovementType_FaceDownUpAndRight
.4byte MovementType_FaceUpRightAndLeft
.4byte MovementType_FaceDownRightAndLeft
.4byte MovementType_RotateCounterclockwise
.4byte MovementType_RotateClockwise
.4byte MovementType_WalkBackAndForth
.4byte MovementType_WalkBackAndForth
.4byte MovementType_WalkBackAndForth
.4byte MovementType_WalkBackAndForth
.4byte MovementType_WalkSequenceUpRightLeftDown
.4byte MovementType_WalkSequenceRightLeftDownUp
.4byte MovementType_WalkSequenceDownUpRightLeft
.4byte MovementType_WalkSequenceLeftDownUpRight
.4byte MovementType_WalkSequenceUpLeftRightDown
.4byte MovementType_WalkSequenceLeftRightDownUp
.4byte MovementType_WalkSequenceDownUpLeftRight
.4byte MovementType_WalkSequenceRightDownUpLeft
.4byte MovementType_WalkSequenceLeftUpDownRight
.4byte MovementType_WalkSequenceUpDownRightLeft
.4byte MovementType_WalkSequenceRightLeftUpDown
.4byte MovementType_WalkSequenceDownRightLeftUp
.4byte MovementType_WalkSequenceRightUpDownLeft
.4byte MovementType_WalkSequenceUpDownLeftRight
.4byte MovementType_WalkSequenceLeftRightUpDown
.4byte MovementType_WalkSequenceDownLeftRightUp
.4byte MovementType_WalkSequenceUpLeftDownRight
.4byte MovementType_WalkSequenceDownRightUpLeft
.4byte MovementType_WalkSequenceLeftDownRightUp
.4byte MovementType_WalkSequenceRightUpLeftDown
.4byte MovementType_WalkSequenceUpRightDownLeft
.4byte MovementType_WalkSequenceDownLeftUpRight
.4byte MovementType_WalkSequenceLeftUpRightDown
.4byte MovementType_WalkSequenceRightDownLeftUp
.4byte MovementType_CopyPlayer
.4byte MovementType_CopyPlayer
.4byte MovementType_CopyPlayer
.4byte MovementType_CopyPlayer
.4byte MovementType_TreeDisguise
.4byte MovementType_MountainDisguise
.4byte MovementType_CopyPlayerInGrass
.4byte MovementType_CopyPlayerInGrass
.4byte MovementType_CopyPlayerInGrass
.4byte MovementType_CopyPlayerInGrass
.4byte MovementType_Hidden
.4byte MovementType_WalkInPlace
.4byte MovementType_WalkInPlace
.4byte MovementType_WalkInPlace
.4byte MovementType_WalkInPlace
.4byte MovementType_WalkSlowlyInPlace
.4byte MovementType_WalkSlowlyInPlace
.4byte MovementType_WalkSlowlyInPlace
.4byte MovementType_WalkSlowlyInPlace
.4byte MovementType_JogInPlace
.4byte MovementType_JogInPlace
.4byte MovementType_JogInPlace
.4byte MovementType_JogInPlace
.4byte MovementType_Invisible
.4byte sub_8063298
.4byte sub_80632BC
.4byte sub_80632E0
.4byte MovementType_WanderAroundDuplicate
gRangedMovementTypes:: @ 839FD0C
.byte FALSE @ MOVEMENT_TYPE_NONE
.byte FALSE @ MOVEMENT_TYPE_LOOK_AROUND
.byte TRUE @ MOVEMENT_TYPE_WANDER_AROUND
.byte TRUE @ MOVEMENT_TYPE_WANDER_UP_AND_DOWN
.byte TRUE @ MOVEMENT_TYPE_WANDER_DOWN_AND_UP
.byte TRUE @ MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT
.byte TRUE @ MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT
.byte FALSE @ MOVEMENT_TYPE_FACE_UP
.byte FALSE @ MOVEMENT_TYPE_FACE_DOWN
.byte FALSE @ MOVEMENT_TYPE_FACE_LEFT
.byte FALSE @ MOVEMENT_TYPE_FACE_RIGHT
.byte FALSE @ MOVEMENT_TYPE_PLAYER
.byte FALSE @ MOVEMENT_TYPE_BERRY_TREE_GROWTH
.byte FALSE @ MOVEMENT_TYPE_FACE_DOWN_AND_UP
.byte FALSE @ MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT
.byte FALSE @ MOVEMENT_TYPE_FACE_UP_AND_LEFT
.byte FALSE @ MOVEMENT_TYPE_FACE_UP_AND_RIGHT
.byte FALSE @ MOVEMENT_TYPE_FACE_DOWN_AND_LEFT
.byte FALSE @ MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT
.byte FALSE @ MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT
.byte FALSE @ MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT
.byte FALSE @ MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT
.byte FALSE @ MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT
.byte FALSE @ MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE
.byte FALSE @ MOVEMENT_TYPE_ROTATE_CLOCKWISE
.byte TRUE @ MOVEMENT_TYPE_WALK_UP_AND_DOWN
.byte TRUE @ MOVEMENT_TYPE_WALK_DOWN_AND_UP
.byte TRUE @ MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT
.byte TRUE @ MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN
.byte TRUE @ MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP
.byte TRUE @ MOVEMENT_TYPE_COPY_PLAYER
.byte TRUE @ MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE
.byte TRUE @ MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE
.byte TRUE @ MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE
.byte FALSE @ MOVEMENT_TYPE_TREE_DISGUISE
.byte FALSE @ MOVEMENT_TYPE_MOUNTAIN_DISGUISE
.byte TRUE @ MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS
.byte TRUE @ MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS
.byte TRUE @ MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS
.byte TRUE @ MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS
.byte FALSE @ MOVEMENT_TYPE_HIDDEN
.byte FALSE @ MOVEMENT_TYPE_WALK_IN_PLACE_DOWN
.byte FALSE @ MOVEMENT_TYPE_WALK_IN_PLACE_UP
.byte FALSE @ MOVEMENT_TYPE_WALK_IN_PLACE_LEFT
.byte FALSE @ MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT
.byte FALSE @ MOVEMENT_TYPE_JOG_IN_PLACE_DOWN
.byte FALSE @ MOVEMENT_TYPE_JOG_IN_PLACE_UP
.byte FALSE @ MOVEMENT_TYPE_JOG_IN_PLACE_LEFT
.byte FALSE @ MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT
.byte FALSE @ MOVEMENT_TYPE_RUN_IN_PLACE_DOWN
.byte FALSE @ MOVEMENT_TYPE_RUN_IN_PLACE_UP
.byte FALSE @ MOVEMENT_TYPE_RUN_IN_PLACE_LEFT
.byte FALSE @ MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT
.byte FALSE @ MOVEMENT_TYPE_INVISIBLE
.byte FALSE @ MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN
.byte FALSE @ MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP
.byte FALSE @ MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT
.byte TRUE @ MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT
gInitialMovementTypeFacingDirections:: @ 839FD5D
.byte 1 @ [MOVEMENT_TYPE_NONE] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_LOOK_AROUND] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_WANDER_AROUND] = DIR_SOUTH,
.byte 2 @ [MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = DIR_NORTH,
.byte 1 @ [MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = DIR_SOUTH,
.byte 3 @ [MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = DIR_WEST,
.byte 4 @ [MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = DIR_EAST,
.byte 2 @ [MOVEMENT_TYPE_FACE_UP] = DIR_NORTH,
.byte 1 @ [MOVEMENT_TYPE_FACE_DOWN] = DIR_SOUTH,
.byte 3 @ [MOVEMENT_TYPE_FACE_LEFT] = DIR_WEST,
.byte 4 @ [MOVEMENT_TYPE_FACE_RIGHT] = DIR_EAST,
.byte 1 @ [MOVEMENT_TYPE_PLAYER] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_BERRY_TREE_GROWTH] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_FACE_DOWN_AND_UP] = DIR_SOUTH,
.byte 3 @ [MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = DIR_WEST,
.byte 2 @ [MOVEMENT_TYPE_FACE_UP_AND_LEFT] = DIR_NORTH,
.byte 2 @ [MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = DIR_NORTH,
.byte 1 @ [MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = DIR_SOUTH,
.byte 2 @ [MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = DIR_NORTH,
.byte 1 @ [MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_ROTATE_CLOCKWISE] = DIR_SOUTH,
.byte 2 @ [MOVEMENT_TYPE_WALK_UP_AND_DOWN] = DIR_NORTH,
.byte 1 @ [MOVEMENT_TYPE_WALK_DOWN_AND_UP] = DIR_SOUTH,
.byte 3 @ [MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = DIR_WEST,
.byte 4 @ [MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = DIR_EAST,
.byte 2 @ [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = DIR_NORTH,
.byte 4 @ [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = DIR_EAST,
.byte 1 @ [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = DIR_SOUTH,
.byte 3 @ [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = DIR_WEST,
.byte 2 @ [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = DIR_NORTH,
.byte 3 @ [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = DIR_WEST,
.byte 1 @ [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = DIR_SOUTH,
.byte 4 @ [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = DIR_EAST,
.byte 3 @ [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = DIR_WEST,
.byte 2 @ [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = DIR_NORTH,
.byte 4 @ [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = DIR_EAST,
.byte 1 @ [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = DIR_SOUTH,
.byte 4 @ [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = DIR_EAST,
.byte 2 @ [MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = DIR_NORTH,
.byte 3 @ [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = DIR_WEST,
.byte 1 @ [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = DIR_SOUTH,
.byte 2 @ [MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = DIR_NORTH,
.byte 1 @ [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = DIR_SOUTH,
.byte 3 @ [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = DIR_WEST,
.byte 4 @ [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = DIR_EAST,
.byte 2 @ [MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = DIR_NORTH,
.byte 1 @ [MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = DIR_SOUTH,
.byte 3 @ [MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = DIR_WEST,
.byte 4 @ [MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = DIR_EAST,
.byte 2 @ [MOVEMENT_TYPE_COPY_PLAYER] = DIR_NORTH,
.byte 1 @ [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = DIR_SOUTH,
.byte 3 @ [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = DIR_WEST,
.byte 4 @ [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = DIR_EAST,
.byte 1 @ [MOVEMENT_TYPE_TREE_DISGUISE] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = DIR_SOUTH,
.byte 2 @ [MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = DIR_NORTH,
.byte 1 @ [MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = DIR_SOUTH,
.byte 3 @ [MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = DIR_WEST,
.byte 4 @ [MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = DIR_EAST,
.byte 1 @ [MOVEMENT_TYPE_HIDDEN] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = DIR_SOUTH,
.byte 2 @ [MOVEMENT_TYPE_WALK_IN_PLACE_UP] = DIR_NORTH,
.byte 3 @ [MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = DIR_WEST,
.byte 4 @ [MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = DIR_EAST,
.byte 1 @ [MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = DIR_SOUTH,
.byte 2 @ [MOVEMENT_TYPE_JOG_IN_PLACE_UP] = DIR_NORTH,
.byte 3 @ [MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = DIR_WEST,
.byte 4 @ [MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = DIR_EAST,
.byte 1 @ [MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = DIR_SOUTH,
.byte 2 @ [MOVEMENT_TYPE_RUN_IN_PLACE_UP] = DIR_NORTH,
.byte 3 @ [MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = DIR_WEST,
.byte 4 @ [MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = DIR_EAST,
.byte 1 @ [MOVEMENT_TYPE_INVISIBLE] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = DIR_SOUTH,
.byte 1 @ [MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = DIR_SOUTH,
@9186
+308 -1
View File
@@ -96,6 +96,63 @@ static u8 sub_8063324(struct ObjectEvent *, struct Sprite *);
static u8 sub_8063344(struct ObjectEvent *, struct Sprite *);
static void sub_8064544(struct ObjectEvent *, struct Sprite *);
static void DoObjectUnionRoomWarpYDisplacement(struct Sprite * sprite);
void MovementType_None(struct Sprite *);
void MovementType_LookAround(struct Sprite *);
void MovementType_WanderAround(struct Sprite *);
void MovementType_WanderUpAndDown(struct Sprite *);
void MovementType_WanderLeftAndRight(struct Sprite *);
void MovementType_FaceDirection(struct Sprite *);
void sub_805B3B8(struct Sprite *);
void MovementType_FaceDownAndUp(struct Sprite *);
void MovementType_FaceLeftAndRight(struct Sprite *);
void MovementType_FaceUpAndLeft(struct Sprite *);
void MovementType_FaceUpAndRight(struct Sprite *);
void MovementType_FaceDownAndLeft(struct Sprite *);
void MovementType_FaceDownAndRight(struct Sprite *);
void MovementType_FaceDownUpAndLeft(struct Sprite *);
void MovementType_FaceDownUpAndRight(struct Sprite *);
void MovementType_FaceUpRightAndLeft(struct Sprite *);
void MovementType_FaceDownRightAndLeft(struct Sprite *);
void MovementType_RotateCounterclockwise(struct Sprite *);
void MovementType_RotateClockwise(struct Sprite *);
void MovementType_WalkBackAndForth(struct Sprite *);
void MovementType_WalkSequenceUpRightLeftDown(struct Sprite *);
void MovementType_WalkSequenceRightLeftDownUp(struct Sprite *);
void MovementType_WalkSequenceDownUpRightLeft(struct Sprite *);
void MovementType_WalkSequenceLeftDownUpRight(struct Sprite *);
void MovementType_WalkSequenceUpLeftRightDown(struct Sprite *);
void MovementType_WalkSequenceLeftRightDownUp(struct Sprite *);
void MovementType_WalkSequenceDownUpLeftRight(struct Sprite *);
void MovementType_WalkSequenceRightDownUpLeft(struct Sprite *);
void MovementType_WalkSequenceLeftUpDownRight(struct Sprite *);
void MovementType_WalkSequenceUpDownRightLeft(struct Sprite *);
void MovementType_WalkSequenceRightLeftUpDown(struct Sprite *);
void MovementType_WalkSequenceDownRightLeftUp(struct Sprite *);
void MovementType_WalkSequenceRightUpDownLeft(struct Sprite *);
void MovementType_WalkSequenceUpDownLeftRight(struct Sprite *);
void MovementType_WalkSequenceLeftRightUpDown(struct Sprite *);
void MovementType_WalkSequenceDownLeftRightUp(struct Sprite *);
void MovementType_WalkSequenceUpLeftDownRight(struct Sprite *);
void MovementType_WalkSequenceDownRightUpLeft(struct Sprite *);
void MovementType_WalkSequenceLeftDownRightUp(struct Sprite *);
void MovementType_WalkSequenceRightUpLeftDown(struct Sprite *);
void MovementType_WalkSequenceUpRightDownLeft(struct Sprite *);
void MovementType_WalkSequenceDownLeftUpRight(struct Sprite *);
void MovementType_WalkSequenceLeftUpRightDown(struct Sprite *);
void MovementType_WalkSequenceRightDownLeftUp(struct Sprite *);
void MovementType_CopyPlayer(struct Sprite *);
void MovementType_TreeDisguise(struct Sprite *);
void MovementType_MountainDisguise(struct Sprite *);
void MovementType_CopyPlayerInGrass(struct Sprite *);
void MovementType_Hidden(struct Sprite *);
void MovementType_WalkInPlace(struct Sprite *);
void MovementType_WalkSlowlyInPlace(struct Sprite *);
void MovementType_JogInPlace(struct Sprite *);
void MovementType_Invisible(struct Sprite *);
void sub_8063298(struct Sprite *);
void sub_80632BC(struct Sprite *);
void sub_80632E0(struct Sprite *);
void MovementType_WanderAroundDuplicate(struct Sprite *);
#define movement_type_def(setup, table) \
static u8 setup##_callback(struct ObjectEvent *, struct Sprite *); \
@@ -845,7 +902,257 @@ extern const u32 gUnknown_8394E28[];
//#include "data/object_events/object_event_graphics.h"
// TODO: some data
static void (*const sMovementTypeCallbacks[])(struct Sprite *) = {
MovementType_None,
MovementType_LookAround,
MovementType_WanderAround,
MovementType_WanderUpAndDown,
MovementType_WanderUpAndDown,
MovementType_WanderLeftAndRight,
MovementType_WanderLeftAndRight,
MovementType_FaceDirection,
MovementType_FaceDirection,
MovementType_FaceDirection,
MovementType_FaceDirection,
sub_805B3B8,
NULL,
MovementType_FaceDownAndUp,
MovementType_FaceLeftAndRight,
MovementType_FaceUpAndLeft,
MovementType_FaceUpAndRight,
MovementType_FaceDownAndLeft,
MovementType_FaceDownAndRight,
MovementType_FaceDownUpAndLeft,
MovementType_FaceDownUpAndRight,
MovementType_FaceUpRightAndLeft,
MovementType_FaceDownRightAndLeft,
MovementType_RotateCounterclockwise,
MovementType_RotateClockwise,
MovementType_WalkBackAndForth,
MovementType_WalkBackAndForth,
MovementType_WalkBackAndForth,
MovementType_WalkBackAndForth,
MovementType_WalkSequenceUpRightLeftDown,
MovementType_WalkSequenceRightLeftDownUp,
MovementType_WalkSequenceDownUpRightLeft,
MovementType_WalkSequenceLeftDownUpRight,
MovementType_WalkSequenceUpLeftRightDown,
MovementType_WalkSequenceLeftRightDownUp,
MovementType_WalkSequenceDownUpLeftRight,
MovementType_WalkSequenceRightDownUpLeft,
MovementType_WalkSequenceLeftUpDownRight,
MovementType_WalkSequenceUpDownRightLeft,
MovementType_WalkSequenceRightLeftUpDown,
MovementType_WalkSequenceDownRightLeftUp,
MovementType_WalkSequenceRightUpDownLeft,
MovementType_WalkSequenceUpDownLeftRight,
MovementType_WalkSequenceLeftRightUpDown,
MovementType_WalkSequenceDownLeftRightUp,
MovementType_WalkSequenceUpLeftDownRight,
MovementType_WalkSequenceDownRightUpLeft,
MovementType_WalkSequenceLeftDownRightUp,
MovementType_WalkSequenceRightUpLeftDown,
MovementType_WalkSequenceUpRightDownLeft,
MovementType_WalkSequenceDownLeftUpRight,
MovementType_WalkSequenceLeftUpRightDown,
MovementType_WalkSequenceRightDownLeftUp,
MovementType_CopyPlayer,
MovementType_CopyPlayer,
MovementType_CopyPlayer,
MovementType_CopyPlayer,
MovementType_TreeDisguise,
MovementType_MountainDisguise,
MovementType_CopyPlayerInGrass,
MovementType_CopyPlayerInGrass,
MovementType_CopyPlayerInGrass,
MovementType_CopyPlayerInGrass,
MovementType_Hidden,
MovementType_WalkInPlace,
MovementType_WalkInPlace,
MovementType_WalkInPlace,
MovementType_WalkInPlace,
MovementType_WalkSlowlyInPlace,
MovementType_WalkSlowlyInPlace,
MovementType_WalkSlowlyInPlace,
MovementType_WalkSlowlyInPlace,
MovementType_JogInPlace,
MovementType_JogInPlace,
MovementType_JogInPlace,
MovementType_JogInPlace,
MovementType_Invisible,
sub_8063298,
sub_80632BC,
sub_80632E0,
MovementType_WanderAroundDuplicate,
};
const u8 gRangedMovementTypes[NUM_FIELD_MAP_OBJECT_TEMPLATES] = {
[MOVEMENT_TYPE_NONE] = FALSE,
[MOVEMENT_TYPE_LOOK_AROUND] = FALSE,
[MOVEMENT_TYPE_WANDER_AROUND] = TRUE,
[MOVEMENT_TYPE_WANDER_UP_AND_DOWN] = TRUE,
[MOVEMENT_TYPE_WANDER_DOWN_AND_UP] = TRUE,
[MOVEMENT_TYPE_WANDER_LEFT_AND_RIGHT] = TRUE,
[MOVEMENT_TYPE_WANDER_RIGHT_AND_LEFT] = TRUE,
[MOVEMENT_TYPE_FACE_UP] = FALSE,
[MOVEMENT_TYPE_FACE_DOWN] = FALSE,
[MOVEMENT_TYPE_FACE_LEFT] = FALSE,
[MOVEMENT_TYPE_FACE_RIGHT] = FALSE,
[MOVEMENT_TYPE_PLAYER] = FALSE,
[MOVEMENT_TYPE_BERRY_TREE_GROWTH] = FALSE,
[MOVEMENT_TYPE_FACE_DOWN_AND_UP] = FALSE,
[MOVEMENT_TYPE_FACE_LEFT_AND_RIGHT] = FALSE,
[MOVEMENT_TYPE_FACE_UP_AND_LEFT] = FALSE,
[MOVEMENT_TYPE_FACE_UP_AND_RIGHT] = FALSE,
[MOVEMENT_TYPE_FACE_DOWN_AND_LEFT] = FALSE,
[MOVEMENT_TYPE_FACE_DOWN_AND_RIGHT] = FALSE,
[MOVEMENT_TYPE_FACE_DOWN_UP_AND_LEFT] = FALSE,
[MOVEMENT_TYPE_FACE_DOWN_UP_AND_RIGHT] = FALSE,
[MOVEMENT_TYPE_FACE_UP_LEFT_AND_RIGHT] = FALSE,
[MOVEMENT_TYPE_FACE_DOWN_LEFT_AND_RIGHT] = FALSE,
[MOVEMENT_TYPE_ROTATE_COUNTERCLOCKWISE] = FALSE,
[MOVEMENT_TYPE_ROTATE_CLOCKWISE] = FALSE,
[MOVEMENT_TYPE_WALK_UP_AND_DOWN] = TRUE,
[MOVEMENT_TYPE_WALK_DOWN_AND_UP] = TRUE,
[MOVEMENT_TYPE_WALK_LEFT_AND_RIGHT] = TRUE,
[MOVEMENT_TYPE_WALK_RIGHT_AND_LEFT] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_LEFT_DOWN] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_DOWN_UP] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_RIGHT_LEFT] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_UP_RIGHT] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_RIGHT_DOWN] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_DOWN_UP] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_UP_LEFT_RIGHT] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_UP_LEFT] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_DOWN_RIGHT] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_RIGHT_LEFT] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_LEFT_UP_DOWN] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_LEFT_UP] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_DOWN_LEFT] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_DOWN_LEFT_RIGHT] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_RIGHT_UP_DOWN] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_RIGHT_UP] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_LEFT_DOWN_RIGHT] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_RIGHT_UP_LEFT] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_DOWN_RIGHT_UP] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_UP_LEFT_DOWN] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_UP_RIGHT_DOWN_LEFT] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_DOWN_LEFT_UP_RIGHT] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_LEFT_UP_RIGHT_DOWN] = TRUE,
[MOVEMENT_TYPE_WALK_SEQUENCE_RIGHT_DOWN_LEFT_UP] = TRUE,
[MOVEMENT_TYPE_COPY_PLAYER] = TRUE,
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE] = TRUE,
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE] = TRUE,
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE] = TRUE,
[MOVEMENT_TYPE_TREE_DISGUISE] = FALSE,
[MOVEMENT_TYPE_MOUNTAIN_DISGUISE] = FALSE,
[MOVEMENT_TYPE_COPY_PLAYER_IN_GRASS] = TRUE,
[MOVEMENT_TYPE_COPY_PLAYER_OPPOSITE_IN_GRASS] = TRUE,
[MOVEMENT_TYPE_COPY_PLAYER_COUNTERCLOCKWISE_IN_GRASS] = TRUE,
[MOVEMENT_TYPE_COPY_PLAYER_CLOCKWISE_IN_GRASS] = TRUE,
[MOVEMENT_TYPE_HIDDEN] = FALSE,
[MOVEMENT_TYPE_WALK_IN_PLACE_DOWN] = FALSE,
[MOVEMENT_TYPE_WALK_IN_PLACE_UP] = FALSE,
[MOVEMENT_TYPE_WALK_IN_PLACE_LEFT] = FALSE,
[MOVEMENT_TYPE_WALK_IN_PLACE_RIGHT] = FALSE,
[MOVEMENT_TYPE_JOG_IN_PLACE_DOWN] = FALSE,
[MOVEMENT_TYPE_JOG_IN_PLACE_UP] = FALSE,
[MOVEMENT_TYPE_JOG_IN_PLACE_LEFT] = FALSE,
[MOVEMENT_TYPE_JOG_IN_PLACE_RIGHT] = FALSE,
[MOVEMENT_TYPE_RUN_IN_PLACE_DOWN] = FALSE,
[MOVEMENT_TYPE_RUN_IN_PLACE_UP] = FALSE,
[MOVEMENT_TYPE_RUN_IN_PLACE_LEFT] = FALSE,
[MOVEMENT_TYPE_RUN_IN_PLACE_RIGHT] = FALSE,
[MOVEMENT_TYPE_INVISIBLE] = FALSE,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN] = FALSE,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP] = FALSE,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = FALSE,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = TRUE,
};
const u8 gInitialMovementTypeFacingDirections[NUM_FIELD_MAP_OBJECT_TEMPLATES] = {
[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_SOUTH,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT] = DIR_SOUTH,
[MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_RIGHT] = DIR_SOUTH,
};
#define OBJ_EVENT_PAL_TAG_0 0x1103
#define OBJ_EVENT_PAL_TAG_1 0x1104