Path: blob/master/SonicMania/Objects/SPZ/PimPom.h
338 views
#ifndef OBJ_PIMPOM_H1#define OBJ_PIMPOM_H23#include "Game.h"45typedef enum {6PIMPOM_SINGLE,7PIMPOM_HORIZONTAL,8PIMPOM_DIAGONAL,9PIMPOM_VERTICAL,10} PimPomTypes;1112typedef enum {13PIMPOM_MOVE_FIXED,14PIMPOM_MOVE_NORMAL,15PIMPOM_MOVE_CIRCLE,16PIMPOM_MOVE_TRACK,17PIMPOM_MOVE_PATH,18} PimPomMoveTypes;1920typedef enum { PIMPOM_CLR_CYAN, PIMPOM_CLR_PURPLE, PIMPOM_CLR_GREEN } PimPomColors;2122// Object Class23struct ObjectPimPom {24RSDK_OBJECT25uint16 aniFrames;26uint16 sfxPimPom;27uint16 sfxBumper2;28};2930// Entity Class31struct EntityPimPom {32RSDK_ENTITY33StateMachine(state);34StateMachine(stateMove);35int32 type;36uint8 color;37int32 newAngle;38uint8 spinSpeed;39int32 negAngle;40int32 sfxTimer;41Hitbox hitbox;42int32 moveType;43Vector2 amplitude;44int32 speed;45int32 angleM;46uint8 length;47uint8 gap;48uint8 numChildren;49Vector2 drawPos;50Vector2 offset;51Vector2 moveAmount;52Animator animator;53};5455// Object Struct56extern ObjectPimPom *PimPom;5758// Standard Entity Events59void PimPom_Update(void);60void PimPom_LateUpdate(void);61void PimPom_StaticUpdate(void);62void PimPom_Draw(void);63void PimPom_Create(void *data);64void PimPom_StageLoad(void);65#if GAME_INCLUDE_EDITOR66void PimPom_EditorDraw(void);67void PimPom_EditorLoad(void);68#endif69void PimPom_Serialize(void);7071// Extra Entity Functions72void PimPom_State_Single(void);73void PimPom_State_Horizontal(void);74void PimPom_State_Vertical(void);7576void PimPom_Move_Fixed(void);77void PimPom_Move_Normal(void);78void PimPom_Move_Circle(void);79void PimPom_Move_Path(void);80void PimPom_Move_Track(void);8182#endif //! OBJ_PIMPOM_H838485