Path: blob/master/SonicMania/Objects/LRZ/BuckwildBall.h
338 views
#ifndef OBJ_BUCKWILDBALL_H1#define OBJ_BUCKWILDBALL_H23#include "Game.h"45typedef enum { BUCKWILDBALL_PATROLLING, BUCKWILDBALL_ROLLING } BuckwildBallModes;67// Object Class8struct ObjectBuckwildBall {9RSDK_OBJECT10Hitbox hitbox;11uint16 aniFrames;12uint16 particleFrames;13uint16 sfxImpact;14uint16 sfxSharp;15};1617// Entity Class18struct EntityBuckwildBall {19RSDK_ENTITY20StateMachine(state);21int32 amplitude;22uint8 mode;23int32 speed;24Vector2 detectOffset;25Vector2 detectSize;26bool32 respawn;27int32 unused;28Vector2 startPos;29Vector2 ballPos;30int32 particleDelay;31int32 timerSfx;32Hitbox detectHitbox;33Animator animator;34int32 bossBallSlot;35};3637// Object Struct38extern ObjectBuckwildBall *BuckwildBall;3940// Standard Entity Events41void BuckwildBall_Update(void);42void BuckwildBall_LateUpdate(void);43void BuckwildBall_StaticUpdate(void);44void BuckwildBall_Draw(void);45void BuckwildBall_Create(void *data);46void BuckwildBall_StageLoad(void);47#if GAME_INCLUDE_EDITOR48void BuckwildBall_EditorDraw(void);49void BuckwildBall_EditorLoad(void);50#endif51void BuckwildBall_Serialize(void);5253// Extra Entity Functions54void BuckwildBall_HandleTimerSfx(void);55void BuckwildBall_CheckOffScreen(void);56void BuckwildBall_SpawnDebris(void);57void BuckwildBall_CheckPlayerCollisions(void);58void BuckwildBall_HandleRollCrush(void);5960void BuckwildBall_State_Init(void);61void BuckwildBall_State_Patrolling(void);62void BuckwildBall_State_AwaitDetection(void);63void BuckwildBall_State_Falling(void);64void BuckwildBall_State_Rolling(void);65void BuckwildBall_State_Debris(void);6667#endif //! OBJ_BUCKWILDBALL_H686970