Path: blob/master/SonicMania/Objects/FBZ/FlameSpring.h
338 views
#ifndef OBJ_FLAMESPRING_H1#define OBJ_FLAMESPRING_H23#include "Game.h"45typedef enum {6FLAMESPRING_BOTH,7FLAMESPRING_RIGHT,8FLAMESPRING_LEFT,9FLAMESPRING_BOTH_NOSPRING,10FLAMESPRING_RIGHT_NOSPRING,11FLAMESPRING_LEFT_NOSPRING,12} FlameSpringTypes;1314typedef enum {15FLAMESPRING_FORCE_WEAK,16FLAMESPRING_FORCE_STRONG,17} FlameSpringForceTypes;1819typedef enum {20FLAMESPRING_PANI_DIAGONAL,21FLAMESPRING_PANI_TWIRL,22} FlameSpringPAniTypes;2324// Object Class25struct ObjectFlameSpring {26RSDK_OBJECT27uint16 aniFrames;28Hitbox hitboxSpring;29Hitbox hitboxFlame;30uint16 sfxSpring;31uint16 sfxFlame;32};3334// Entity Class35struct EntityFlameSpring {36RSDK_ENTITY37StateMachine(state);38StateMachine(stateDraw);39int32 type;40int32 force;41uint8 playerAni;42uint8 offset;43Vector2 flamePosL;44Vector2 flamePosR;45bool32 spittingFire;46uint8 timer;47Animator mainAnimator;48Animator nozzleAnimator;49};5051// Object Struct52extern ObjectFlameSpring *FlameSpring;5354// Standard Entity Events55void FlameSpring_Update(void);56void FlameSpring_LateUpdate(void);57void FlameSpring_StaticUpdate(void);58void FlameSpring_Draw(void);59void FlameSpring_Create(void *data);60void FlameSpring_StageLoad(void);61#if GAME_INCLUDE_EDITOR62void FlameSpring_EditorDraw(void);63void FlameSpring_EditorLoad(void);64#endif65void FlameSpring_Serialize(void);6667// Extra Entity Functions68void FlameSpring_State_Spring(void);69void FlameSpring_State_Flame(void);7071void FlameSpring_Draw_Spring(void);72void FlameSpring_Draw_Flame(void);7374#endif //! OBJ_FLAMESPRING_H757677