Path: blob/master/SonicMania/Objects/Global/EggPrison.h
338 views
#ifndef OBJ_EGGPRISON_H1#define OBJ_EGGPRISON_H23#include "Game.h"45typedef enum {6EGGPRISON_NORMAL,7EGGPRISON_FLYING,8EGGPRISON_DUD,9EGGPRISON_RINGS,10EGGPRISON_TRAP,11EGGPRISON_SPRING,12} EggPrisonTypes;1314// Object Class15struct ObjectEggPrison {16RSDK_OBJECT17uint16 aniFrames;18uint16 sfxDestroy;19uint16 sfxSpring;20};2122// Entity Class23struct EntityEggPrison {24RSDK_ENTITY25StateMachine(state);26EggPrisonTypes type;27int32 timer;28int32 originY;29int32 buttonPos;30int32 notSolid;31int32 checkTileCollisions;32Hitbox hitboxSolid;33Hitbox hitboxButton;34Hitbox hitboxButtonTrigger;35Animator capsuleAnimator;36Animator propellerAnimator;37Animator panelAnimator;38Animator buttonAnimator;39};4041// Object Struct42extern ObjectEggPrison *EggPrison;4344// Standard Entity Events45void EggPrison_Update(void);46void EggPrison_LateUpdate(void);47void EggPrison_StaticUpdate(void);48void EggPrison_Draw(void);49void EggPrison_Create(void *data);50void EggPrison_StageLoad(void);51#if GAME_INCLUDE_EDITOR52void EggPrison_EditorDraw(void);53void EggPrison_EditorLoad(void);54#endif55void EggPrison_Serialize(void);5657// Extra Entity Functions58void EggPrison_HandleMovement(void);5960void EggPrison_State_Init(void);61void EggPrison_State_Idle(void);62void EggPrison_State_Opened(void);63void EggPrison_State_Explode(void);64void EggPrison_State_SetupActClear(void);65void EggPrison_State_FlyOffScreen(void);6667#endif //! OBJ_EGGPRISON_H686970