Path: blob/master/SonicMania/Objects/ERZ/PhantomRuby.h
338 views
#ifndef OBJ_PHANTOMRUBY_H1#define OBJ_PHANTOMRUBY_H23#include "Game.h"45typedef enum {6RUBYSFX_NONE,7RUBYSFX_ATTACK1,8RUBYSFX_ATTACK2,9RUBYSFX_ATTACK3,10RUBYSFX_ATTACK4,11RUBYSFX_ATTACK5,12RUBYSFX_ATTACK6,13RUBYSFX_REDCUBE,14} RubySfxIDs;1516// Object Class17struct ObjectPhantomRuby {18RSDK_OBJECT19uint16 aniFrames;20uint16 sfxL[7];21uint16 sfxR[7];22};2324// Entity Class25struct EntityPhantomRuby {26RSDK_ENTITY27StateMachine(state);28Vector2 startPos;29int32 timer;30bool32 flashFinished;31bool32 hasFlashed;32uint8 sfx;33int32 unused1;34int32 unused2;35Animator rubyAnimator;36Animator flashAnimator;37};3839// Object Struct40extern ObjectPhantomRuby *PhantomRuby;4142// Standard Entity Events43void PhantomRuby_Update(void);44void PhantomRuby_LateUpdate(void);45void PhantomRuby_StaticUpdate(void);46void PhantomRuby_Draw(void);47void PhantomRuby_Create(void *data);48void PhantomRuby_StageLoad(void);49#if GAME_INCLUDE_EDITOR50void PhantomRuby_EditorDraw(void);51void PhantomRuby_EditorLoad(void);52#endif53void PhantomRuby_Serialize(void);5455// Extra Entity Functions56void PhantomRuby_PlaySfx(uint8 sfxID);57void PhantomRuby_SetupFlash(EntityPhantomRuby *ruby);58void PhantomRuby_State_FinishedFlash(void);59void PhantomRuby_State_PlaySfx(void);60void PhantomRuby_State_Oscillate(void);61void PhantomRuby_State_MoveGravity(void);62void PhantomRuby_State_MoveRotateGravity(void);63void PhantomRuby_State_MoveRotateGravity_CheckGround(void);64#if MANIA_USE_PLUS65void PhantomRuby_State_MoveToPos(void);66#endif67void PhantomRuby_State_RotateToOrigin(void);6869#endif //! OBJ_PHANTOMRUBY_H707172