Path: blob/master/SonicMania/Objects/LRZ/Fireworm.h
338 views
#ifndef OBJ_FIREWORM_H1#define OBJ_FIREWORM_H23#include "Game.h"45#define FIREWORM_SEGMENT_COUNT (1 + 4) // Head + 4 Segments67// Object Class8struct ObjectFireworm {9RSDK_OBJECT10Hitbox hitboxBadnik;11Hitbox hitboxRange;12Animator holeAnimator;13uint16 aniFrames;14};1516// Entity Class17struct EntityFireworm {18RSDK_ENTITY19StateMachine(state);20Vector2 startPos;21uint8 startDir;22Vector2 bodyPositions[FIREWORM_SEGMENT_COUNT];23Vector2 bodyVelocities[FIREWORM_SEGMENT_COUNT];24uint8 bodyDirections[FIREWORM_SEGMENT_COUNT];25uint16 bodyAngles[FIREWORM_SEGMENT_COUNT];26uint8 bodyTimers[FIREWORM_SEGMENT_COUNT];27uint8 flameExhaustDelays[FIREWORM_SEGMENT_COUNT];28int32 bodyOriginY[FIREWORM_SEGMENT_COUNT];29int32 timer;30int32 boundsL;31int32 boundsR;32Animator bodyAnimators[FIREWORM_SEGMENT_COUNT];33Animator flameAnimators[FIREWORM_SEGMENT_COUNT];34};3536// Object Struct37extern ObjectFireworm *Fireworm;3839// Standard Entity Events40void Fireworm_Update(void);41void Fireworm_LateUpdate(void);42void Fireworm_StaticUpdate(void);43void Fireworm_Draw(void);44void Fireworm_Create(void *data);45void Fireworm_StageLoad(void);46#if GAME_INCLUDE_EDITOR47void Fireworm_EditorDraw(void);48void Fireworm_EditorLoad(void);49#endif50void Fireworm_Serialize(void);5152// Extra Entity Functions53void Fireworm_DebugSpawn(void);54void Fireworm_DebugDraw(void);5556void Fireworm_CheckPlayerCollisions(void);57void Fireworm_CheckOffScreen(void);5859void Fireworm_State_Init(void);60void Fireworm_State_AwaitPlayer(void);61void Fireworm_State_HeadAppear(void);6263void Fireworm_State_BodyAppear(void);64void Fireworm_State_FlyAround(void);6566#endif //! OBJ_FIREWORM_H676869