Path: blob/master/SonicMania/Objects/FBZ/Cylinder.h
338 views
#ifndef OBJ_CYLINDER_H1#define OBJ_CYLINDER_H23#include "Game.h"45typedef enum {6CYLINDER_TUBE_H,7CYLINDER_TUBE_V,8CYLINDER_SPIRAL_LR,9CYLINDER_SPIRAL_RL,10CYLINDER_INKROLLER,11CYLINDER_FIXED_V_L,12CYLINDER_FIXED_V_R,13CYLINDER_PILLAR,14} CylinderTypes;1516// Object Class17struct ObjectCylinder {18RSDK_OBJECT19// unused, all frames are calculated on the fly20TABLE(int32 frameTable[24], { 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13 });21Animator animator;22uint16 aniFrames;23};2425// Entity Class26struct EntityCylinder {27RSDK_ENTITY28StateMachine(state);29uint8 type;30int32 length;31int32 radius;32int32 unused1;33int32 playerStatus[PLAYER_COUNT];34int32 playerAngles[PLAYER_COUNT];35Hitbox hitboxRange;36Hitbox hitboxSize;37Hitbox hitboxL;38Hitbox hitboxR;39};4041// Object Struct42extern ObjectCylinder *Cylinder;4344// Standard Entity Events45void Cylinder_Update(void);46void Cylinder_LateUpdate(void);47void Cylinder_StaticUpdate(void);48void Cylinder_Draw(void);49void Cylinder_Create(void *data);50void Cylinder_StageLoad(void);51#if GAME_INCLUDE_EDITOR52void Cylinder_EditorDraw(void);53void Cylinder_EditorLoad(void);54#endif55void Cylinder_Serialize(void);5657// Extra Entity Functions58void Cylinder_State_TubeH(void);59void Cylinder_State_TubeV(void);60void Cylinder_State_Spiral(void);61void Cylinder_State_InkRoller(void);62void Cylinder_State_Pillar(void);6364void Cylinder_PlayerState_InkRoller_Stand(void);65void Cylinder_PlayerState_InkRoller_Roll(void);66void Cylinder_PlayerState_Pillar(void);67void Cylinder_PlayerState_Spiral(void);6869#endif //! OBJ_CYLINDER_H707172