Path: blob/master/SonicMania/Objects/OOZ/PushSpring.h
338 views
#ifndef OBJ_PUSHSPRING_H1#define OBJ_PUSHSPRING_H23#include "Game.h"45typedef enum { PUSHSPRING_V, PUSHSPRING_H } PushSpringTypes;67// Object Class8struct ObjectPushSpring {9RSDK_OBJECT10uint16 aniFrames;11uint16 sfxPush;12uint16 sfxSpring;13};1415// Entity Class16struct EntityPushSpring {17RSDK_ENTITY18StateMachine(state);19StateMachine(stateDraw);20StateMachine(stateCollide);21uint8 type;22int32 pushOffset;23int32 timer;24Hitbox hitbox;25bool32 beingPushed;26Animator animator;27};2829// Object Struct30extern ObjectPushSpring *PushSpring;3132// Standard Entity Events33void PushSpring_Update(void);34void PushSpring_LateUpdate(void);35void PushSpring_StaticUpdate(void);36void PushSpring_Draw(void);37void PushSpring_Create(void *data);38void PushSpring_StageLoad(void);39#if GAME_INCLUDE_EDITOR40void PushSpring_EditorDraw(void);41void PushSpring_EditorLoad(void);42#endif43void PushSpring_Serialize(void);4445// Extra Entity Functions46void PushSpring_Collide_Top(void);47void PushSpring_Collide_Bottom(void);48void PushSpring_Collide_Left(void);49void PushSpring_Collide_Right(void);5051void PushSpring_Draw_Top(void);52void PushSpring_Draw_Bottom(void);53void PushSpring_Draw_Left(void);54void PushSpring_Draw_Right(void);5556void PushSpring_State_WaitForPushed(void);57void PushSpring_State_BeingPushed(void);58void PushSpring_State_PushRecoil(void);5960#endif //! OBJ_PUSHSPRING_H616263