Path: blob/master/SonicMania/Objects/CPZ/Spiny.h
338 views
#ifndef OBJ_SPINY_H1#define OBJ_SPINY_H23#include "Game.h"45typedef enum {6SPINY_FLOOR,7SPINY_WALL,8} SpinyTypes;910// Object Class11struct ObjectSpiny {12RSDK_OBJECT13Hitbox hitboxSpiny;14Hitbox hitboxRange;15Hitbox hitboxShot;16uint16 aniFrames;17uint16 sfxShot;18};1920// Entity Class21struct EntitySpiny {22RSDK_ENTITY23StateMachine(state);24Animator animator;25int32 unused;26uint8 type;27Vector2 startPos;28uint8 startDir;29int32 shotVelocity;30int32 dirChangeTimer;31int32 moveTimer;32};3334// Object Struct35extern ObjectSpiny *Spiny;3637// Standard Entity Events38void Spiny_Update(void);39void Spiny_LateUpdate(void);40void Spiny_StaticUpdate(void);41void Spiny_Draw(void);42void Spiny_Create(void *data);43void Spiny_StageLoad(void);44#if GAME_INCLUDE_EDITOR45void Spiny_EditorDraw(void);46void Spiny_EditorLoad(void);47#endif48void Spiny_Serialize(void);4950// Extra Entity Functions51void Spiny_DebugSpawn(void);52void Spiny_DebugDraw(void);5354void Spiny_CheckPlayerCollisions(void);55void Spiny_CheckOffScreen(void);5657void Spiny_State_Init(void);58void Spiny_State_Floor(void);59void Spiny_State_Shoot_Floor(void);60void Spiny_State_Wall(void);61void Spiny_State_Shoot_Wall(void);6263void Spiny_State_Shot(void);64void Spiny_State_ShotDisappear(void);6566#endif //! OBJ_SPINY_H676869