From ed245b677addbb7f5c748193301507de7fed6ec4 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Mon, 11 Jun 2018 18:17:31 -0500 Subject: Add remaining rodata to event_object_movement.c --- include/event_object_movement.h | 44 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) (limited to 'include') diff --git a/include/event_object_movement.h b/include/event_object_movement.h index a12032c93..293c2e3dc 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -46,9 +46,47 @@ struct UnkStruct_085094AC { #define GROUND_EFFECT_FLAG_HOT_SPRINGS (1 << 18) #define GROUND_EFFECT_FLAG_SEAWEED (1 << 19) -// Exported RAM declarations +#define null_object_step(name, retval) \ +bool8 FieldObjectCB2_##name(struct MapObject *, struct Sprite *);\ +void FieldObjectCB_##name(struct Sprite *sprite)\ +{\ + FieldObjectStep(&gMapObjects[sprite->data[0]], sprite, FieldObjectCB2_##name);\ +}\ +bool8 FieldObjectCB2_##name(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + return (retval);\ +} -// Exported ROM declarations +#define field_object_step(name, table) \ +extern bool8 (*const (table)[])(struct MapObject *, struct Sprite *);\ +bool8 FieldObjectCB2_##name(struct MapObject *, struct Sprite *);\ +void FieldObjectCB_##name(struct Sprite *sprite)\ +{\ + FieldObjectStep(&gMapObjects[sprite->data[0]], sprite, FieldObjectCB2_##name);\ +}\ +bool8 FieldObjectCB2_##name(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + return (table)[sprite->data[1]](mapObject, sprite);\ +} + +#define field_object_path(idx, table, sub, path, catch, coord)\ +field_object_step(GoInDirectionSequence##idx, table)\ +extern const u8 path[4];\ +bool8 sub(struct MapObject *mapObject, struct Sprite *sprite)\ +{\ + u8 route[sizeof(path)];\ + memcpy(route, path, sizeof(path));\ + if (mapObject->directionSequenceIndex == (catch) && mapObject->initialCoords.coord == mapObject->currentCoords.coord)\ + {\ + mapObject->directionSequenceIndex = (catch) + 1;\ + }\ + return MoveFieldObjectInNextDirectionInSequence(mapObject, sprite, route);\ +}\ + +struct PairedPalettes { + u16 tag; + const u16 *data; +}; extern const struct SpriteFrameImage gFieldObjectPicTable_PechaBerryTree[]; @@ -111,6 +149,8 @@ const u8 *GetFieldObjectScriptPointerByFieldObjectId(u8 mapObjectId); u8 sub_8092C8C(struct MapObject *mapObject, s16 x, s16 y, u8 direction); u8 GetFaceDirectionAnimId(u32); u8 GetGoSpeed0AnimId(u32); +u8 GetGoSpeed1AnimId(u32); +u8 GetGoSpeed3AnimId(u32); u8 sub_80934BC(u32); bool8 FieldObjectSetSpecialAnim(struct MapObject *mapObject, u8 specialAnimId); bool8 FieldObjectIsSpecialAnimOrDirectionSequenceAnimActive(struct MapObject *mapObject); -- cgit v1.2.3