summaryrefslogtreecommitdiff
path: root/include/event_object_movement.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/event_object_movement.h')
-rw-r--r--include/event_object_movement.h107
1 files changed, 68 insertions, 39 deletions
diff --git a/include/event_object_movement.h b/include/event_object_movement.h
index 5c65db228..e8c0d4463 100644
--- a/include/event_object_movement.h
+++ b/include/event_object_movement.h
@@ -3,9 +3,6 @@
#include "global.h"
-#define NUM_OBJECT_GRAPHICS_INFO 239
-#define SPRITE_VAR 240
-
// Exported struct declarations
enum SpinnerRunnerFollowPatterns {
@@ -22,6 +19,18 @@ enum SpinnerRunnerFollowPatterns {
RUNFOLLOW_SOUTH_EAST_WEST
};
+struct UnkStruct_083A3698
+{
+ const union AnimCmd *const *anims;
+ u8 animPos[4];
+};
+
+struct PairedPalettes
+{
+ u16 tag;
+ const u16 *data;
+};
+
// Exported RAM declarations
// Exported ROM declarations
@@ -30,83 +39,91 @@ void sub_808D438(void);
u8 GetObjectEventIdByLocalIdAndMap(u8, u8, u8);
bool8 TryGetObjectEventIdByLocalIdAndMap(u8, u8, u8, u8 *);
u8 GetObjectEventIdByXY(s16, s16);
-void ObjectEventSetDirection(struct ObjectEvent *, u8);
+void SetObjectEventDirection(struct ObjectEvent *, u8);
u8 sub_808D4F4(void);
void RemoveObjectEventByLocalIdAndMap(u8, u8, u8);
void LoadPlayerObjectReflectionPalette(u16, u8);
void LoadSpecialObjectReflectionPalette(u16, u8);
-void sub_805F7C4(u8, u8, u8, s16, s16);
+void TryMoveObjectEventToMapCoords(u8, u8, u8, s16, s16);
void PatchObjectPalette(u16, u8);
void sub_808E16C(s16, s16);
void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat);
-void sub_8092FF0(s16, s16, s16 *, s16 *);
-u8 ObjectEventDirectionToImageAnimId(u8);
+void sub_8063AD4(s16, s16, s16 *, s16 *);
+u8 GetFaceDirectionAnimNum(u8);
void sub_8063BC4(s16 *, s16 *, s16, s16);
-void ObjectEventClearAnim(struct ObjectEvent *);
-void ObjectEventClearAnimIfSpecialAnimActive(struct ObjectEvent *);
+void ObjectEventClearHeldMovement(struct ObjectEvent *);
+void ObjectEventClearHeldMovementIfActive(struct ObjectEvent *);
void SpawnObjectEventsInView(s16, s16);
u8 sprite_new(u8, u8, s16, s16, u8, u8);
u8 AddPseudoObjectEvent(u16, SpriteCallback, s16, s16, u8);
u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup);
int SpawnSpecialObjectEventParameterized(u8, u8, u8, s16, s16, u8);
u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *);
-void sub_8093038(s16, s16, s16 *, s16 *);
void CameraObjectReset1(void);
void CameraObjectReset2(void);
void ObjectEventSetGraphicsId(struct ObjectEvent *, u8);
void ObjectEventTurn(struct ObjectEvent *, u8);
void ObjectEventTurnByLocalIdAndMap(u8, u8, u8, u8);
-void ObjectEventForceSetSpecialAnim(struct ObjectEvent *, u8);
-u8 sub_8064270(u8 a0);
+void ObjectEventForceSetHeldMovement(struct ObjectEvent *, u8);
const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u8);
void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
-void gpu_pal_allocator_reset__manage_upper_four(void);
+void FreeAndReserveObjectSpritePalettes(void);
void sub_808E82C(u8, u8, u8, s16, s16);
void sub_805F400(u8, u8, u8);
void sub_805F3A8(u8, u8, u8, u8);
void sub_808E75C(s16, s16);
-void ObjectEventGetLocalIdAndMap(struct ObjectEvent * objectEvent, u8 *localId, u8 *mapNum, u8 *mapGroup);
-void npc_coords_shift(struct ObjectEvent *, s16, s16);
+void ObjectEventGetLocalIdAndMap(struct ObjectEvent *objectEvent, void *localId, void *mapNum, void *mapGroup);
+void ShiftObjectEventCoords(struct ObjectEvent *, s16, s16);
void sub_808EB08(struct ObjectEvent *, s16, s16);
-void sub_805FE94(u8, u8, u8);
-void ObjectEventStep(struct ObjectEvent *, struct Sprite *, bool8(struct ObjectEvent *, struct Sprite *));
+void TryOverrideObjectEventTemplateCoords(u8, u8, u8);
+void UpdateObjectEventCurrentMovement(struct ObjectEvent *, struct Sprite *, bool8(struct ObjectEvent *, struct Sprite *));
u8 ObjectEventFaceOppositeDirection(struct ObjectEvent *, u8);
u8 GetOppositeDirection(u8);
-u8 GetStepInPlaceDelay4AnimId(u32);
+u8 GetWalkInPlaceFastMovementAction(u32);
u8 GetStepInPlaceDelay8AnimId(u32);
-u8 GetStepInPlaceDelay16AnimId(u32);
+u8 GetWalkInPlaceNormalMovementAction(u32);
+u8 GetWalkInPlaceSlowMovementAction(u32);
u8 GetStepInPlaceDelay32AnimId(u32);
u8 GetCollisionAtCoords(struct ObjectEvent *, s16, s16, u32);
void MoveCoords(u8, s16 *, s16 *);
-bool8 ObjectEventIsSpecialAnimActive(struct ObjectEvent *);
+bool8 ObjectEventIsHeldMovementActive(struct ObjectEvent *);
u8 ObjectEventClearHeldMovementIfFinished(struct ObjectEvent *);
u8 GetObjectEventIdByXYZ(u16 x, u16 y, u8 z);
void sub_8063E28(struct ObjectEvent *, struct Sprite *);
bool8 ObjectEventSetHeldMovement(struct ObjectEvent *, u8);
-void npc_coords_shift_still(struct ObjectEvent *);
-void TryOverrideTemplateCoordsForObjectEvent(struct ObjectEvent *, u8);
+void ShiftStillObjectEventCoords(struct ObjectEvent *);
+void OverrideMovementTypeForObjectEvent(const struct ObjectEvent *, u8);
void SetTrainerMovementType(struct ObjectEvent *, u8);
-u8 sub_80634F0(u8 direction);
-u8 sub_8063500(u8 a0);
+u8 GetFishingNoCatchDirectionAnimNum(u8 direction);
+u8 GetFishingBiteDirectionAnimNum(u8 a0);
void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 a1);
u8 sub_805EB44(u8, u8, s16, s16);
-void npc_paltag_set_load(u8 mode);
+void InitObjectEventPalettes(u8 mode);
bool8 ObjectEventIsMovementOverridden(struct ObjectEvent *objectEvent);
u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent);
-u8 GetWalkNormalMovementAction(u8 direction);
+u8 GetWalkNormalMovementAction(u32);
+u8 GetWalkFastMovementAction(u32);
+u8 GetWalkFastestMovementAction(u32);
+u8 sub_8063F2C(u32 direction);
u8 GetTrainerFacingDirectionMovementType(u8 direction);
-void CameraObjectSetFollowedObjectId(u8 spriteId);
+u8 GetFaceDirectionMovementAction(u32);
+void CameraObjectSetFollowedObjectId(u8 objectId);
void UnfreezeObjectEvents(void);
+void sub_8069058(u8, u8);
+u8 GetSlideMovementAction(u32);
+u8 GetJumpInPlaceMovementAction(u32);
+u8 GetJumpMovementAction(u32);
+u8 GetJump2MovementAction(u32);
+bool8 sub_8068BCC(struct Sprite *sprite);
+void sub_8068D1C(struct Sprite *, u8, u8, u8);
+u8 sub_8068D3C(struct Sprite *);
+u8 sub_8068DC4(struct Sprite *);
void TurnObjectEvent(u8, u8);
const u8 *GetObjectEventScriptPointerByObjectEventId(u8 objectEventId);
-u8 GetIndexOfFirstInactiveObjectEvent(void);
+u8 GetFirstInactiveObjectEventId(void);
u8 GetCollisionFlagsAtCoords(struct ObjectEvent * objectEvent, s16 x, s16 y, u8 direction);
-u8 GetFaceDirectionMovementAction(u8 direction);
-u8 GetJumpInPlaceMovementAction(u8 direction);
u8 sub_8063FB0(u8 direction);
-void OverrideTemplateCoordsForObjectEvent(struct ObjectEvent *);
-void sub_805C774(void);
-
+void OverrideTemplateCoordsForObjectEvent(const struct ObjectEvent *objectEvent);void sub_805C774(void);
void FreezeObjectEvents(void);
bool8 FreezeObjectEvent(struct ObjectEvent *);
void UnfreezeObjectEvent(struct ObjectEvent *);
@@ -116,12 +133,9 @@ void RfuUnionObjectToggleInvisibility(u8 objectEventId, bool32 invisible);
bool32 RfuUnionObjectIsInvisible(u8 objectEventId);
void RfuUnionObjectStartWarp(u8 objectEventId, u8 animNo);
bool32 RfuUnionObjectIsWarping(u8 objectEventId);
-u8 sub_8063F2C(u8 direction);
-u8 sub_8064194(u8 direction);
-u8 sub_80641C0(u8 direction);
-
+u8 sub_80641C0(u32 direction);
void sub_805F378(s16 x, s16 y);
-void sub_805F724(struct ObjectEvent *, s16 x, s16 y);
+void MoveObjectEventToMapCoords(struct ObjectEvent *objectEvent, s16 x, s16 y);
u8 CreateCopySpriteAt(struct Sprite * sprite, s16 x, s16 y, u8 subpriority);
u16 GetObjectPaletteTag(u8 paletteIndex);
void SetSpritePosToMapCoords(s16 x, s16 y, s16 *x2, s16 *y2);
@@ -131,6 +145,21 @@ void SetObjectSubpriorityByZCoord(u8 z, struct Sprite * sprite, u8 offset);
void MakeObjectTemplateFromObjectEventGraphicsInfo(u16 graphicsId, void (*callback)(struct Sprite *), struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables);
u8 AddCameraObject(u8 trackedSpriteId);
void UpdateObjectEventsForCameraUpdate(s16 x, s16 y);
+void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *);
+void SetMovementDelay(struct Sprite *, s16);
+bool8 WaitForMovementDelay(struct Sprite *);
+void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
+bool8 obj_npc_ministep(struct Sprite *sprite);
+void sub_8068BBC(struct Sprite *, u8);
+void sub_8068C58(struct Sprite *, u8);
+bool8 sub_8068C68(struct Sprite *sprite);
+void sub_8068C08(struct Sprite *, u8);
+bool8 sub_8068C18(struct Sprite *sprite);
+void DoShadowFieldEffect(struct ObjectEvent *);
+void sub_8068CA4(struct Sprite *, u8);
+bool8 sub_8068CB4(struct Sprite *sprite);
+void SetAndStartSpriteAnim(struct Sprite *, u8, u8);
+bool8 SpriteAnimEnded(struct Sprite *);
// Exported data declarations
@@ -138,7 +167,7 @@ extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
extern const struct SpritePalette gUnknown_83A5348;
extern const struct SpriteTemplate * const gFieldEffectObjectTemplatePointers[];
extern const struct OamData gObjectEventBaseOam_32x32;
-extern const struct UCoords16 gUnknown_83A64C8[];
+extern const struct Coords16 sDirectionToVectors[];
extern const u16 gUnknown_8398648[];
extern const u16 gUnknown_8398688[];
extern const u8 gReflectionEffectPaletteMap[];