Path: blob/master/SonicMania/Objects/MMZ/MatryoshkaBom.h
338 views
#ifndef OBJ_MATRYOSHKABOM_H1#define OBJ_MATRYOSHKABOM_H23#include "Game.h"45typedef enum {6MATRYOSHKA_SIZE_BIG,7MATRYOSHKA_SIZE_MED,8MATRYOSHKA_SIZE_SMALL,9MATRYOSHKA_SIZE_SHRAPNEL,10} MatryoshkaSizes;1112// Object Class13struct ObjectMatryoshkaBom {14RSDK_OBJECT15Hitbox hitboxHurt;16Hitbox hitboxExplode;17Hitbox hitboxShrapnel;18uint16 aniFrames;19uint16 sfxExplosion;20uint16 sfxButton;21uint16 sfxPon;22};2324// Entity Class25struct EntityMatryoshkaBom {26RSDK_ENTITY27StateMachine(state);28PlaneFilterTypes planeFilter;29MatryoshkaSizes size;30bool32 canExplode;31bool32 destroyOffscreen;32int32 offsetY;33int32 offsetX;34Vector2 startPos;35uint8 startDir;36int32 timer;37int32 fusePos;38Animator bodyAnimator;39Animator fuseAnimator;40Animator legsAnimator;41};4243// Object Struct44extern ObjectMatryoshkaBom *MatryoshkaBom;4546// Standard Entity Events47void MatryoshkaBom_Update(void);48void MatryoshkaBom_LateUpdate(void);49void MatryoshkaBom_StaticUpdate(void);50void MatryoshkaBom_Draw(void);51void MatryoshkaBom_Create(void *data);52void MatryoshkaBom_StageLoad(void);53#if GAME_INCLUDE_EDITOR54void MatryoshkaBom_EditorDraw(void);55void MatryoshkaBom_EditorLoad(void);56#endif57void MatryoshkaBom_Serialize(void);5859// Extra Entity Functions60void MatryoshkaBom_DebugSpawn(void);61void MatryoshkaBom_DebugDraw(void);6263void MatryoshkaBom_CheckPlayerCollisions(void);64void MatryoshkaBom_CheckOffScreen(void);6566void MatryoshkaBom_State_Init(void);67void MatryoshkaBom_State_Walk(void);68void MatryoshkaBom_State_Stopped(void);69void MatryoshkaBom_State_Turn(void);70void MatryoshkaBom_State_FuseLit(void);71void MatryoshkaBom_State_ReleaseSmallerBuddy(void);72void MatryoshkaBom_State_Hatched(void);73void MatryoshkaBom_State_Shrapnel(void);7475#endif //! OBJ_MATRYOSHKABOM_H767778