Path: blob/master/SonicMania/Objects/MMZ/SpikeCorridor.h
338 views
#ifndef OBJ_SPIKECORRIDOR_H1#define OBJ_SPIKECORRIDOR_H23#include "Game.h"45// Object Class6struct ObjectSpikeCorridor {7RSDK_OBJECT8uint16 aniFrames;9uint16 sfxDrop;10uint16 sfxImpact;11uint16 sfxIndicator;12};1314// Entity Class15struct EntitySpikeCorridor {16RSDK_ENTITY17StateMachine(state);18StateMachine(stateDraw);19Vector2 startPos;20int8 colWidth;21int8 rowHeight;22int32 yOffset;23int32 timer;24int8 rowID;25int8 lastSize;26int8 storedRowID;27int8 size;28int32 fallOffset;29Hitbox hitbox;30Hitbox hitboxes[4];31EntitySpikeCorridor *parent;32};3334// Object Struct35extern ObjectSpikeCorridor *SpikeCorridor;3637// Standard Entity Events38void SpikeCorridor_Update(void);39void SpikeCorridor_LateUpdate(void);40void SpikeCorridor_StaticUpdate(void);41void SpikeCorridor_Draw(void);42void SpikeCorridor_Create(void *data);43void SpikeCorridor_StageLoad(void);44#if GAME_INCLUDE_EDITOR45void SpikeCorridor_EditorDraw(void);46void SpikeCorridor_EditorLoad(void);47#endif48void SpikeCorridor_Serialize(void);4950// Extra Entity Functions51void SpikeCorridor_SetupHitboxes(void);52void SpikeCorridor_HandleDrawing(Animator *animator, int32 offsetY, int8 size, bool32 useWarnAnim);53void SpikeCorridor_SetupNextSpikeRow(void);54void SpikeCorridor_CheckPlayerCollisions(void);5556void SpikeCorridor_StateDropper_Setup(void);57void SpikeCorridor_StateDropper_CheckForPlayer(void);58void SpikeCorridor_StateDropper_DropWarn(void);59void SpikeCorridor_StateDropper_SpawnSpikes(void);60void SpikeCorridor_StateDropper_DropWait(void);6162void SpikeCorridor_StateSpikes_Setup(void);63void SpikeCorridor_StateSpikes_Fall(void);64void SpikeCorridor_StateSpikes_Land(void);6566void SpikeCorridor_Draw_DropWarn(void);67void SpikeCorridor_Draw_Spikes(void);6869#endif //! OBJ_SPIKECORRIDOR_H707172