2018-06-12 02:11:48 +02:00
|
|
|
#ifndef GUARD_FIELD_EVENT_OBJ_H
|
|
|
|
#define GUARD_FIELD_EVENT_OBJ_H
|
2017-09-06 14:35:16 +02:00
|
|
|
|
2017-09-08 20:16:44 +02:00
|
|
|
#define NUM_OBJECT_GRAPHICS_INFO 239
|
|
|
|
#define SPRITE_VAR 240
|
|
|
|
|
2018-06-14 00:51:26 +02:00
|
|
|
enum SpinnerRunnerFollowPatterns
|
|
|
|
{
|
2017-09-15 21:53:07 +02:00
|
|
|
RUNFOLLOW_ANY,
|
|
|
|
RUNFOLLOW_NORTH_SOUTH,
|
|
|
|
RUNFOLLOW_EAST_WEST,
|
|
|
|
RUNFOLLOW_NORTH_WEST,
|
|
|
|
RUNFOLLOW_NORTH_EAST,
|
|
|
|
RUNFOLLOW_SOUTH_WEST,
|
|
|
|
RUNFOLLOW_SOUTH_EAST,
|
|
|
|
RUNFOLLOW_NORTH_SOUTH_WEST,
|
|
|
|
RUNFOLLOW_NORTH_SOUTH_EAST,
|
|
|
|
RUNFOLLOW_NORTH_EAST_WEST,
|
|
|
|
RUNFOLLOW_SOUTH_EAST_WEST
|
|
|
|
};
|
|
|
|
|
2018-06-12 00:33:50 +02:00
|
|
|
struct UnkStruct_085094AC {
|
|
|
|
const union AnimCmd *const *anims;
|
|
|
|
u8 animPos[4];
|
|
|
|
};
|
|
|
|
|
2018-06-11 17:23:14 +02:00
|
|
|
#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_SPAWN (1 << 0)
|
|
|
|
#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_MOVE (1 << 1)
|
|
|
|
#define GROUND_EFFECT_FLAG_LONG_GRASS_ON_SPAWN (1 << 2)
|
|
|
|
#define GROUND_EFFECT_FLAG_LONG_GRASS_ON_MOVE (1 << 3)
|
|
|
|
#define GROUND_EFFECT_FLAG_ICE_REFLECTION (1 << 4)
|
|
|
|
#define GROUND_EFFECT_FLAG_REFLECTION (1 << 5)
|
|
|
|
#define GROUND_EFFECT_FLAG_SHALLOW_FLOWING_WATER (1 << 6)
|
|
|
|
#define GROUND_EFFECT_FLAG_SAND (1 << 7)
|
|
|
|
#define GROUND_EFFECT_FLAG_DEEP_SAND (1 << 8)
|
|
|
|
#define GROUND_EFFECT_FLAG_RIPPLES (1 << 9)
|
|
|
|
#define GROUND_EFFECT_FLAG_PUDDLE (1 << 10)
|
|
|
|
#define GROUND_EFFECT_FLAG_SAND_PILE (1 << 11)
|
|
|
|
#define GROUND_EFFECT_FLAG_LAND_IN_TALL_GRASS (1 << 12)
|
|
|
|
#define GROUND_EFFECT_FLAG_LAND_IN_LONG_GRASS (1 << 13)
|
|
|
|
#define GROUND_EFFECT_FLAG_LAND_IN_SHALLOW_WATER (1 << 14)
|
|
|
|
#define GROUND_EFFECT_FLAG_LAND_IN_DEEP_WATER (1 << 15)
|
|
|
|
#define GROUND_EFFECT_FLAG_LAND_ON_NORMAL_GROUND (1 << 16)
|
|
|
|
#define GROUND_EFFECT_FLAG_SHORT_GRASS (1 << 17)
|
|
|
|
#define GROUND_EFFECT_FLAG_HOT_SPRINGS (1 << 18)
|
|
|
|
#define GROUND_EFFECT_FLAG_SEAWEED (1 << 19)
|
|
|
|
|
2018-06-14 00:51:26 +02:00
|
|
|
#define movement_type_def(setup, table) \
|
|
|
|
static u8 setup##_callback(struct EventObject *, struct Sprite *);\
|
|
|
|
void setup(struct Sprite *sprite)\
|
2018-06-12 01:17:31 +02:00
|
|
|
{\
|
2018-06-14 00:51:26 +02:00
|
|
|
UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, setup##_callback);\
|
2018-06-12 01:17:31 +02:00
|
|
|
}\
|
2018-06-14 00:51:26 +02:00
|
|
|
static u8 setup##_callback(struct EventObject *eventObject, struct Sprite *sprite)\
|
2018-06-12 01:17:31 +02:00
|
|
|
{\
|
2018-06-14 00:51:26 +02:00
|
|
|
return table[sprite->data[1]](eventObject, sprite);\
|
2018-06-12 01:17:31 +02:00
|
|
|
}
|
2017-09-06 14:35:16 +02:00
|
|
|
|
2018-06-14 00:51:26 +02:00
|
|
|
#define movement_type_empty_callback(setup) \
|
|
|
|
static u8 setup##_callback(struct EventObject *, struct Sprite *);\
|
|
|
|
void setup(struct Sprite *sprite)\
|
2018-06-12 01:17:31 +02:00
|
|
|
{\
|
2018-06-14 00:51:26 +02:00
|
|
|
UpdateEventObjectCurrentMovement(&gEventObjects[sprite->data[0]], sprite, setup##_callback);\
|
2018-06-12 01:17:31 +02:00
|
|
|
}\
|
2018-06-14 00:51:26 +02:00
|
|
|
static u8 setup##_callback(struct EventObject *eventObject, struct Sprite *sprite)\
|
2018-06-12 01:17:31 +02:00
|
|
|
{\
|
2018-06-14 00:51:26 +02:00
|
|
|
return 0;\
|
2018-06-12 01:17:31 +02:00
|
|
|
}
|
|
|
|
|
2018-06-14 00:51:26 +02:00
|
|
|
struct PairedPalettes
|
|
|
|
{
|
2018-06-12 01:17:31 +02:00
|
|
|
u16 tag;
|
|
|
|
const u16 *data;
|
|
|
|
};
|
2017-09-06 14:35:16 +02:00
|
|
|
|
2018-06-14 00:51:26 +02:00
|
|
|
struct LockedAnimEventObjects
|
|
|
|
{
|
2018-10-17 14:52:26 +02:00
|
|
|
u8 eventObjectIds[EVENT_OBJECTS_COUNT];
|
2018-06-14 00:51:26 +02:00
|
|
|
u8 count;
|
|
|
|
};
|
|
|
|
|
2018-06-12 02:11:48 +02:00
|
|
|
extern const struct SpriteFrameImage gEventObjectPicTable_PechaBerryTree[];
|
2018-10-09 23:32:39 +02:00
|
|
|
extern const u8 gReflectionEffectPaletteMap[];
|
2018-06-12 00:33:50 +02:00
|
|
|
|
2018-10-17 02:11:44 +02:00
|
|
|
void ResetEventObjects(void);
|
2018-06-14 00:51:26 +02:00
|
|
|
u8 GetMoveDirectionAnimNum(u8);
|
2018-06-12 02:11:48 +02:00
|
|
|
u8 GetEventObjectIdByLocalIdAndMap(u8, u8, u8);
|
|
|
|
bool8 TryGetEventObjectIdByLocalIdAndMap(u8, u8, u8, u8 *);
|
|
|
|
u8 GetEventObjectIdByXY(s16, s16);
|
2018-06-14 00:51:26 +02:00
|
|
|
void SetEventObjectDirection(struct EventObject *, u8);
|
|
|
|
u8 GetFirstInactiveEventObjectId(void);
|
2018-06-12 02:11:48 +02:00
|
|
|
void RemoveEventObjectByLocalIdAndMap(u8, u8, u8);
|
2018-09-03 00:20:45 +02:00
|
|
|
void LoadPlayerObjectReflectionPalette(u16, u8);
|
|
|
|
void LoadSpecialObjectReflectionPalette(u16, u8);
|
2017-10-12 09:06:19 +02:00
|
|
|
void sub_808EBA8(u8, u8, u8, s16, s16);
|
2018-09-03 00:20:45 +02:00
|
|
|
void PatchObjectPalette(u16, u8);
|
2017-09-08 01:45:30 +02:00
|
|
|
void sub_808E16C(s16, s16);
|
2017-10-25 04:34:52 +02:00
|
|
|
void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat);
|
2017-09-07 02:28:36 +02:00
|
|
|
void sub_8092FF0(s16, s16, s16 *, s16 *);
|
2018-06-14 00:51:26 +02:00
|
|
|
u8 GetFaceDirectionAnimNum(u8);
|
2017-09-17 04:19:23 +02:00
|
|
|
void sub_80930E0(s16 *, s16 *, s16, s16);
|
2018-06-14 00:51:26 +02:00
|
|
|
void EventObjectClearHeldMovement(struct EventObject *);
|
|
|
|
void EventObjectClearHeldMovementIfActive(struct EventObject *);
|
|
|
|
void TrySpawnEventObjects(s16, s16);
|
2018-10-15 00:43:40 +02:00
|
|
|
u8 sprite_new(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction);
|
|
|
|
u8 AddPseudoEventObject(u16, void (*)(struct Sprite *), s16 x, s16 y, u8 subpriority);
|
2017-09-08 01:45:30 +02:00
|
|
|
u8 show_sprite(u8, u8, u8);
|
2018-10-15 00:43:40 +02:00
|
|
|
u8 SpawnSpecialEventObjectParameterized(u8 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 z);
|
2018-06-12 02:11:48 +02:00
|
|
|
u8 SpawnSpecialEventObject(struct EventObjectTemplate *);
|
2017-09-08 03:04:32 +02:00
|
|
|
void sub_8093038(s16, s16, s16 *, s16 *);
|
|
|
|
void CameraObjectReset1(void);
|
2018-10-15 00:43:40 +02:00
|
|
|
void EventObjectSetGraphicsId(struct EventObject *, u8 graphicsId);
|
2018-06-12 02:11:48 +02:00
|
|
|
void EventObjectTurn(struct EventObject *, u8);
|
|
|
|
void EventObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
|
2018-10-15 00:43:40 +02:00
|
|
|
const struct EventObjectGraphicsInfo *GetEventObjectGraphicsInfo(u8 graphicsId);
|
2017-09-08 20:36:58 +02:00
|
|
|
void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
|
2018-09-03 00:20:45 +02:00
|
|
|
void FreeAndReserveObjectSpritePalettes(void);
|
2017-09-08 23:34:12 +02:00
|
|
|
void sub_808E82C(u8, u8, u8, s16, s16);
|
|
|
|
void sub_808E7E4(u8, u8, u8);
|
|
|
|
void sub_808E78C(u8, u8, u8, u8);
|
|
|
|
void sub_808E75C(s16, s16);
|
2018-06-12 02:11:48 +02:00
|
|
|
void EventObjectGetLocalIdAndMap(struct EventObject *eventObject, void *localId, void *mapNum, void *mapGroup);
|
2018-06-14 00:51:26 +02:00
|
|
|
void ShiftEventObjectCoords(struct EventObject *, s16, s16);
|
2018-06-12 02:11:48 +02:00
|
|
|
void sub_808EB08(struct EventObject *, s16, s16);
|
2017-09-12 22:17:52 +02:00
|
|
|
void sub_808F254(u8, u8, u8);
|
2018-09-03 00:20:45 +02:00
|
|
|
void InitEventObjectPalettes(u8 palSlot);
|
2018-06-14 00:51:26 +02:00
|
|
|
void UpdateEventObjectCurrentMovement(struct EventObject *, struct Sprite *, bool8(struct EventObject *, struct Sprite *));
|
2018-06-12 02:11:48 +02:00
|
|
|
u8 EventObjectFaceOppositeDirection(struct EventObject *, u8);
|
2017-09-16 03:26:56 +02:00
|
|
|
u8 GetOppositeDirection(u8);
|
2018-06-14 00:51:26 +02:00
|
|
|
u8 GetWalkInPlaceFastestMovementAction(u32);
|
|
|
|
u8 GetWalkInPlaceFastMovementAction(u32);
|
|
|
|
u8 GetWalkInPlaceNormalMovementAction(u32);
|
|
|
|
u8 GetWalkInPlaceSlowMovementAction(u32);
|
|
|
|
u8 GetCollisionAtCoords(struct EventObject *, s16, s16, u32);
|
2017-09-17 00:33:38 +02:00
|
|
|
void MoveCoords(u8, s16 *, s16 *);
|
2018-06-14 00:51:26 +02:00
|
|
|
bool8 EventObjectIsHeldMovementActive(struct EventObject *);
|
|
|
|
u8 EventObjectClearHeldMovementIfFinished(struct EventObject *);
|
2018-06-12 02:11:48 +02:00
|
|
|
u8 GetEventObjectIdByXYZ(u16 x, u16 y, u8 z);
|
2018-06-14 00:51:26 +02:00
|
|
|
void SetTrainerMovementType(struct EventObject *eventObject, u8 movementType);
|
|
|
|
u8 GetTrainerFacingDirectionMovementType(u8 direction);
|
2018-06-12 02:11:48 +02:00
|
|
|
const u8 *GetEventObjectScriptPointerByEventObjectId(u8 eventObjectId);
|
2018-06-14 00:51:26 +02:00
|
|
|
u8 GetCollisionFlagsAtCoords(struct EventObject *eventObject, s16 x, s16 y, u8 direction);
|
|
|
|
u8 GetFaceDirectionMovementAction(u32);
|
|
|
|
u8 GetWalkNormalMovementAction(u32);
|
|
|
|
u8 GetWalkFastMovementAction(u32);
|
2018-10-19 07:05:54 +02:00
|
|
|
u8 GetRideWaterCurrentMovementAction(u32);
|
2018-06-14 00:51:26 +02:00
|
|
|
u8 GetWalkFastestMovementAction(u32);
|
2018-10-19 07:05:54 +02:00
|
|
|
u8 GetPlayerRunMovementAction(u32);
|
2018-06-14 00:51:26 +02:00
|
|
|
u8 GetJumpInPlaceMovementAction(u32);
|
2018-10-19 07:05:54 +02:00
|
|
|
u8 GetAcroWheelieFaceDirectionMovementAction(u32);
|
|
|
|
u8 GetAcroPopWheelieFaceDirectionMovementAction(u32);
|
|
|
|
u8 GetAcroEndWheelieFaceDirectionMovementAction(u32);
|
|
|
|
u8 GetAcroWheelieHopFaceDirectionMovementAction(u32);
|
|
|
|
u8 GetAcroWheelieHopDirectionMovementAction(u32);
|
|
|
|
u8 GetAcroWheelieJumpDirectionMovementAction(u32);
|
|
|
|
u8 GetJumpInPlaceTurnAroundMovementAction(u32);
|
|
|
|
u8 GetAcroWheelieInPlaceDirectionMovementAction(u32);
|
|
|
|
u8 GetAcroPopWheelieMoveDirectionMovementAction(u32);
|
|
|
|
u8 GetAcroWheelieMoveDirectionMovementAction(u32);
|
|
|
|
u8 GetAcroEndWheelieMoveDirectionMovementAction(u32);
|
|
|
|
u8 GetFishingDirectionAnimNum(u8 direction);
|
|
|
|
u8 GetAcroWheelieDirectionAnimNum(u8 direction);
|
|
|
|
u8 GetFishingBiteDirectionAnimNum(u8 direction);
|
|
|
|
u8 GetFishingNoCatchDirectionAnimNum(u8 direction);
|
2018-06-14 00:51:26 +02:00
|
|
|
bool8 EventObjectSetHeldMovement(struct EventObject *eventObject, u8 specialAnimId);
|
2018-10-19 07:05:54 +02:00
|
|
|
void EventObjectForceSetHeldMovement(struct EventObject *eventObject, u8 movementActionId);
|
2018-06-14 00:51:26 +02:00
|
|
|
bool8 EventObjectIsMovementOverridden(struct EventObject *eventObject);
|
|
|
|
u8 EventObjectCheckHeldMovementStatus(struct EventObject *eventObject);
|
2018-08-12 19:59:44 +02:00
|
|
|
u8 EventObjectGetHeldMovementActionId(struct EventObject *eventObject);
|
2018-06-14 00:51:26 +02:00
|
|
|
void TryOverrideTemplateCoordsForEventObject(const struct EventObject *eventObject, u8 movementType);
|
|
|
|
void OverrideTemplateCoordsForEventObject(const struct EventObject *eventObject);
|
|
|
|
void ShiftStillEventObjectCoords(struct EventObject *pObject);
|
2018-06-12 02:11:48 +02:00
|
|
|
void EventObjectMoveDestCoords(struct EventObject *pObject, u32 unk_19, s16 *pInt, s16 *pInt1);
|
2018-04-18 14:12:41 +02:00
|
|
|
u8 AddCameraObject(u8 linkedSpriteId);
|
2018-06-12 02:11:48 +02:00
|
|
|
void UpdateEventObjectsForCameraUpdate(s16 x, s16 y);
|
2018-06-14 00:51:26 +02:00
|
|
|
u8 GetWalkSlowMovementAction(u32);
|
|
|
|
u8 GetJumpMovementAction(u32);
|
2018-06-11 17:23:14 +02:00
|
|
|
bool8 AreZCoordsCompatible(u8, u8);
|
|
|
|
u8 ZCoordToPriority(u8);
|
2018-06-12 02:11:48 +02:00
|
|
|
void EventObjectUpdateZCoord(struct EventObject *pObject);
|
2018-06-11 17:23:14 +02:00
|
|
|
void SetObjectSubpriorityByZCoord(u8, struct Sprite *, u8);
|
|
|
|
bool8 IsZCoordMismatchAt(u8, s16, s16);
|
2018-06-14 00:51:26 +02:00
|
|
|
void UnfreezeEventObject(struct EventObject *);
|
|
|
|
u8 FindLockedEventObjectIndex(struct EventObject *);
|
2018-06-12 00:33:50 +02:00
|
|
|
bool8 obj_npc_ministep(struct Sprite *sprite);
|
|
|
|
bool8 sub_80976EC(struct Sprite *sprite);
|
|
|
|
void sub_80976DC(struct Sprite *, u8);
|
|
|
|
void sub_809783C(struct Sprite *, u8, u8, u8);
|
2018-06-12 02:11:48 +02:00
|
|
|
void DoShadowFieldEffect(struct EventObject *);
|
2018-06-12 00:33:50 +02:00
|
|
|
u8 sub_809785C(struct Sprite *);
|
|
|
|
u8 sub_80978E4(struct Sprite *);
|
2018-06-14 00:51:26 +02:00
|
|
|
void SetAndStartSpriteAnim(struct Sprite *, u8, u8);
|
|
|
|
bool8 SpriteAnimEnded(struct Sprite *);
|
2018-06-12 00:33:50 +02:00
|
|
|
void sub_8097750(struct Sprite *);
|
|
|
|
bool8 sub_8097758(struct Sprite *);
|
2018-06-14 00:51:26 +02:00
|
|
|
void CreateLevitateMovementTask(struct EventObject *);
|
|
|
|
void DestroyExtraMovementTask(u8);
|
2018-06-12 02:11:48 +02:00
|
|
|
void UnfreezeEventObjects(void);
|
|
|
|
void FreezeEventObjectsExceptOne(u8 eventObjectId);
|
2018-06-12 00:33:50 +02:00
|
|
|
void sub_8097B78(u8, u8);
|
|
|
|
void sub_8098074(u8 var1, u8 var2);
|
2018-06-12 02:11:48 +02:00
|
|
|
void FreezeEventObjects(void);
|
|
|
|
bool8 FreezeEventObject(struct EventObject *eventObject);
|
2018-06-14 00:51:26 +02:00
|
|
|
u8 GetMoveDirectionFastAnimNum(u8);
|
|
|
|
u8 GetMoveDirectionFasterAnimNum(u8);
|
|
|
|
u8 GetMoveDirectionFastestAnimNum(u8);
|
2018-08-12 19:59:44 +02:00
|
|
|
u8 GetLedgeJumpDirection(s16, s16, u8);
|
2018-08-12 20:47:27 +02:00
|
|
|
void CameraObjectSetFollowedObjectId(u8 objectId);
|
2018-10-09 23:32:39 +02:00
|
|
|
u16 GetObjectPaletteTag(u8 palSlot);
|
|
|
|
void UpdateEventObjectSpriteVisibility(struct Sprite *sprite, bool8 invisible);
|
2018-10-10 18:02:02 +02:00
|
|
|
s16 sub_809773C(s16 a1);
|
|
|
|
s16 sub_8097728(s16 a1);
|
2018-10-19 07:05:54 +02:00
|
|
|
void CameraObjectReset2(void);
|
2018-06-12 00:33:50 +02:00
|
|
|
|
2018-06-14 00:51:26 +02:00
|
|
|
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 MovementType_Player(struct Sprite *);
|
|
|
|
void MovementType_BerryTreeGrowth(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_JogInPlace(struct Sprite *);
|
|
|
|
void MovementType_RunInPlace(struct Sprite *);
|
|
|
|
void MovementType_Invisible(struct Sprite *);
|
|
|
|
void MovementType_WalkSlowlyInPlace(struct Sprite *);
|
|
|
|
u8 GetSlideMovementAction(u32);
|
|
|
|
u8 GetJumpInPlaceMovementAction(u32);
|
|
|
|
u8 GetJumpMovementAction(u32);
|
|
|
|
u8 GetJump2MovementAction(u32);
|
2018-10-09 23:32:39 +02:00
|
|
|
u8 CreateCopySpriteAt(struct Sprite *sprite, s16 x, s16 y, u8 subpriority);
|
2018-06-12 00:33:50 +02:00
|
|
|
|
2018-06-14 00:51:26 +02:00
|
|
|
u8 MovementType_WanderAround_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderAround_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderAround_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderAround_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderAround_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderAround_Step5(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderAround_Step6(struct EventObject *, struct Sprite *);
|
|
|
|
u8 GetVectorDirection(s16, s16, s16, s16);
|
|
|
|
u8 GetLimitedVectorDirection_SouthNorth(s16, s16, s16, s16);
|
|
|
|
u8 GetLimitedVectorDirection_WestEast(s16, s16, s16, s16);
|
|
|
|
u8 GetLimitedVectorDirection_WestNorth(s16, s16, s16, s16);
|
|
|
|
u8 GetLimitedVectorDirection_EastNorth(s16, s16, s16, s16);
|
|
|
|
u8 GetLimitedVectorDirection_WestSouth(s16, s16, s16, s16);
|
|
|
|
u8 GetLimitedVectorDirection_EastSouth(s16, s16, s16, s16);
|
|
|
|
u8 GetLimitedVectorDirection_SouthNorthWest(s16, s16, s16, s16);
|
|
|
|
u8 GetLimitedVectorDirection_SouthNorthEast(s16, s16, s16, s16);
|
|
|
|
u8 GetLimitedVectorDirection_NorthWestEast(s16, s16, s16, s16);
|
|
|
|
u8 GetLimitedVectorDirection_SouthWestEast(s16, s16, s16, s16);
|
|
|
|
u8 MovementType_LookAround_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_LookAround_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_LookAround_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_LookAround_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_LookAround_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderUpAndDown_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderUpAndDown_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderUpAndDown_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderUpAndDown_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderUpAndDown_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderUpAndDown_Step5(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderUpAndDown_Step6(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderLeftAndRight_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderLeftAndRight_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderLeftAndRight_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderLeftAndRight_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderLeftAndRight_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderLeftAndRight_Step5(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WanderLeftAndRight_Step6(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDirection_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDirection_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDirection_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_BerryTreeGrowth_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_BerryTreeGrowth_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_BerryTreeGrowth_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_BerryTreeGrowth_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_BerryTreeGrowth_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndUp_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndUp_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndUp_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndUp_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndUp_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceLeftAndRight_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceLeftAndRight_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceLeftAndRight_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceLeftAndRight_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceLeftAndRight_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpAndLeft_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpAndLeft_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpAndLeft_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpAndLeft_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpAndLeft_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpAndRight_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpAndRight_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpAndRight_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpAndRight_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpAndRight_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndLeft_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndLeft_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndLeft_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndLeft_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndLeft_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndRight_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndRight_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndRight_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndRight_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownAndRight_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownUpAndLeft_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownUpAndLeft_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownUpAndLeft_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownUpAndLeft_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownUpAndLeft_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownUpAndRight_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownUpAndRight_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownUpAndRight_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownUpAndRight_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownUpAndRight_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpLeftAndRight_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpLeftAndRight_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpLeftAndRight_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpLeftAndRight_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceUpLeftAndRight_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownLeftAndRight_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownLeftAndRight_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownLeftAndRight_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownLeftAndRight_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_FaceDownLeftAndRight_Step4(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_RotateCounterclockwise_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_RotateCounterclockwise_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_RotateCounterclockwise_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_RotateCounterclockwise_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_RotateClockwise_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_RotateClockwise_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_RotateClockwise_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_RotateClockwise_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkBackAndForth_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkBackAndForth_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkBackAndForth_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkBackAndForth_Step3(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequence_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequence_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceUpRightLeftDown_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceRightLeftDownUp_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceDownUpRightLeft_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceLeftDownUpRight_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceUpLeftRightDown_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceLeftRightDownUp_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceDownUpLeftRight_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceRightDownUpLeft_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceLeftUpDownRight_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceUpDownRightLeft_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceRightLeftUpDown_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceDownRightLeftUp_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceRightUpDownLeft_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceUpDownLeftRight_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceLeftRightUpDown_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceDownLeftRightUp_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceUpLeftDownRight_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceDownRightUpLeft_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceLeftDownRightUp_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceRightUpLeftDown_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceUpRightDownLeft_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceDownLeftUpRight_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceLeftUpRightDown_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSequenceRightDownLeftUp_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_CopyPlayer_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_CopyPlayer_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_CopyPlayer_Step2(struct EventObject *, struct Sprite *);
|
|
|
|
bool8 CopyablePlayerMovement_None(struct EventObject *, struct Sprite *, u8, bool8(u8));
|
|
|
|
bool8 CopyablePlayerMovement_FaceDirection(struct EventObject *, struct Sprite *, u8, bool8(u8));
|
|
|
|
bool8 CopyablePlayerMovement_GoSpeed0(struct EventObject *, struct Sprite *, u8, bool8(u8));
|
|
|
|
bool8 CopyablePlayerMovement_GoSpeed1(struct EventObject *, struct Sprite *, u8, bool8(u8));
|
|
|
|
bool8 CopyablePlayerMovement_GoSpeed2(struct EventObject *, struct Sprite *, u8, bool8(u8));
|
|
|
|
bool8 CopyablePlayerMovement_Slide(struct EventObject *, struct Sprite *, u8, bool8(u8));
|
2018-06-12 02:11:48 +02:00
|
|
|
bool8 cph_IM_DIFFERENT(struct EventObject *, struct Sprite *, u8, bool8(u8));
|
2018-06-14 00:51:26 +02:00
|
|
|
bool8 CopyablePlayerMovement_GoSpeed4(struct EventObject *, struct Sprite *, u8, bool8(u8));
|
|
|
|
bool8 CopyablePlayerMovement_Jump(struct EventObject *, struct Sprite *, u8, bool8(u8));
|
|
|
|
u8 MovementType_CopyPlayerInGrass_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_Hidden_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkInPlace_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_MoveInPlace_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_WalkSlowlyInPlace_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_JogInPlace_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_RunInPlace_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_Invisible_Step0(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_Invisible_Step1(struct EventObject *, struct Sprite *);
|
|
|
|
u8 MovementType_Invisible_Step2(struct EventObject *, struct Sprite *);
|
2017-09-06 15:38:38 +02:00
|
|
|
|
2018-06-12 02:11:48 +02:00
|
|
|
#endif //GUARD_FIELD_EVENT_OBJ_H
|