#ifndef Z_EN_A_OBJ_H #define Z_EN_A_OBJ_H #include "ultra64.h" #include "actor.h" // Only A_OBJ_SIGNPOST_OBLONG and A_OBJ_SIGNPOST_ARROW are used in room files. typedef enum AObjType { /* 0x00 */ A_OBJ_BLOCK_SMALL, /* 0x01 */ A_OBJ_BLOCK_LARGE, /* 0x02 */ A_OBJ_BLOCK_HUGE, /* 0x03 */ A_OBJ_BLOCK_SMALL_ROT, /* 0x04 */ A_OBJ_BLOCK_LARGE_ROT, /* 0x05 */ A_OBJ_CUBE_SMALL, /* 0x06 */ A_OBJ_UNKNOWN_6, /* 0x07 */ A_OBJ_GRASS_CLUMP, /* 0x08 */ A_OBJ_TREE_STUMP, /* 0x09 */ A_OBJ_SIGNPOST_OBLONG, /* 0x0A */ A_OBJ_SIGNPOST_ARROW, /* 0x0B */ A_OBJ_BOULDER_FRAGMENT, /* 0x0C */ A_OBJ_MAX } AObjType; struct EnAObj; typedef void (*EnAObjActionFunc)(struct EnAObj*, struct PlayState*); typedef struct EnAObj { /* 0x000 */ DynaPolyActor dyna; /* 0x164 */ EnAObjActionFunc actionFunc; /* 0x168 */ s32 rotateWaitTimer; /* 0x16C */ s16 textId; /* 0x16E */ s16 rotateState; /* 0x170 */ s16 rotateForTimer; /* 0x172 */ s16 rotSpeedY; /* 0x174 */ s16 rotSpeedX; /* 0x178 */ f32 focusYoffset; /* 0x17C */ ColliderCylinder collider; } EnAObj; // size = 0x1C8 #endif