Path: blob/master/SonicMania/Objects/ERZ/ERZMystic.h
338 views
#ifndef OBJ_ERZMYSTIC_H1#define OBJ_ERZMYSTIC_H23#include "Game.h"45// Object Class6struct ObjectERZMystic {7RSDK_OBJECT8uint16 aniFrames;9};1011// Entity Class12struct EntityERZMystic {13RSDK_ENTITY14StateMachine(state);15StateMachine(stateDraw);16Vector2 originPos;17Vector2 mysticPos;18int32 mysticVelY;19int32 middleCupY;20int32 timer;21int32 invincibilityTimer;22int32 correctCup;23int32 cupPos[3];24int32 unused1[3];25int32 unused2[3];26int32 cupAlpha[3];27int32 swapCup1;28int32 swapCup2;29int32 swapCup1Pos;30int32 swapCup2Pos;31int32 swapCup1Alpha;32int32 swapCup2Alpha;33int32 cupSwapCount;34Animator mysticAnimator;35Animator cupAnimator;36Animator cupSilhouetteAnimator;37Animator cupSpikeAnimator; // Not actually ever drawn...38Animator cupBlastAnimator;39Hitbox hitbox;40};4142// Object Struct43extern ObjectERZMystic *ERZMystic;4445// Standard Entity Events46void ERZMystic_Update(void);47void ERZMystic_LateUpdate(void);48void ERZMystic_StaticUpdate(void);49void ERZMystic_Draw(void);50void ERZMystic_Create(void *data);51void ERZMystic_StageLoad(void);52#if GAME_INCLUDE_EDITOR53void ERZMystic_EditorDraw(void);54void ERZMystic_EditorLoad(void);55#endif56void ERZMystic_Serialize(void);5758// Extra Entity Functions59void ERZMystic_CheckPlayerCollisions(void);60void ERZMystic_Hit(void);61void ERZMystic_SetupNewCupSwap(void);6263void ERZMystic_Draw_CupSetup(void);64void ERZMystic_Draw_CupSwap(void);6566void ERZMystic_State_Init(void);67void ERZMystic_State_SetupInitialCupPos(void);68void ERZMystic_State_MoveCupsDownwards(void);69void ERZMystic_State_RotateMiddleCup(void);70void ERZMystic_State_MoveMiddleCupToFloor(void);71void ERZMystic_State_PrepareCupSwap(void);72void ERZMystic_State_CupSwapping(void);73void ERZMystic_State_RevealMystic(void);74void ERZMystic_State_CupBlast(void);75void ERZMystic_State_MoveCupsToMystic(void);7677#endif //! OBJ_ERZMYSTIC_H787980