Path: blob/master/SonicMania/Objects/HCZ/TurboSpiker.h
338 views
#ifndef OBJ_TURBOSPIKER_H1#define OBJ_TURBOSPIKER_H23#include "Game.h"45typedef enum {6TURBOSPIKER_VISIBLE,7TURBOSPIKER_HIDDEN,8} TurboSpikerTypes;910// Object Class11struct ObjectTurboSpiker {12RSDK_OBJECT13Hitbox hitboxBadnik;14Hitbox hitboxSpike;15Hitbox hitboxRange;16uint16 aniFrames;17uint16 sfxLaunch;18uint16 sfxSplash;19};2021// Entity Class22struct EntityTurboSpiker {23RSDK_ENTITY24StateMachine(state);25uint32 type;26int32 timer;27int32 unused;28Vector2 startPos;29uint8 startDir;30EntityTurboSpiker *spike;31Animator shellAnimator;32Animator animator;33bool32 playedLaunchSfx;34};3536// Object Struct37extern ObjectTurboSpiker *TurboSpiker;3839// Standard Entity Events40void TurboSpiker_Update(void);41void TurboSpiker_LateUpdate(void);42void TurboSpiker_StaticUpdate(void);43void TurboSpiker_Draw(void);44void TurboSpiker_Create(void *data);45void TurboSpiker_StageLoad(void);46#if GAME_INCLUDE_EDITOR47void TurboSpiker_EditorDraw(void);48void TurboSpiker_EditorLoad(void);49#endif50void TurboSpiker_Serialize(void);5152void TurboSpiker_DebugSpawn(void);53void TurboSpiker_DebugDraw(void);5455// Extra Entity Functions56void TurboSpiker_Hermit_Collide(void);57void TurboSpiker_Hermit_CheckOffScreen(void);58void TurboSpiker_HandleMovement(void);5960void TurboSpiker_State_Init(void);61void TurboSpiker_State_Idle(void);62void TurboSpiker_State_Hidden(void);63void TurboSpiker_State_Moving(void);64void TurboSpiker_State_Turning(void);65void TurboSpiker_State_FinishTurning(void);66void TurboSpiker_State_Falling(void);67void TurboSpiker_State_FireShell(void);6869void TurboSpiker_HandleSpikeCollisions(void);70void TurboSpiker_State_Spike(void);7172void TurboSpiker_State_Ember(void);7374#endif //! OBJ_TURBOSPIKER_H757677