Path: blob/master/SonicMania/Objects/GHZ/Splats.h
338 views
#ifndef OBJ_SPLATS_H1#define OBJ_SPLATS_H23#include "Game.h"45typedef enum {6// GHZ7SPLATS_BOUNCEAROUND = 0,89// PGZ10SPLATS_SPAWNER = 0,11SPLATS_INKSPLATS,12SPLATS_SPLAT,13} SplatsTypes;1415// Object Class16struct ObjectSplats {17RSDK_OBJECT18StateMachine(initialState);19Hitbox hitboxBadnikGHZ;20Hitbox hitboxJar;21Hitbox hitboxBadnikPGZ;22uint16 aniFrames;23uint16 sfxSplatsSpawn;24uint16 sfxSplatsLand;25};2627// Entity Class28struct EntitySplats {29RSDK_ENTITY30StateMachine(state);31uint8 bounceCount;32uint8 activeCount;33uint8 numActive;34uint16 minDelay;35int32 delay;36bool32 isOnScreen;37EntitySplats *parent;38Vector2 startPos;39int32 startDir;40Animator mainAnimator;41Animator splashAnimator;42};4344// Object Struct45extern ObjectSplats *Splats;4647// Standard Entity Events48void Splats_Update(void);49void Splats_LateUpdate(void);50void Splats_StaticUpdate(void);51void Splats_Draw(void);52void Splats_Create(void *data);53void Splats_StageLoad(void);54#if GAME_INCLUDE_EDITOR55void Splats_EditorDraw(void);56void Splats_EditorLoad(void);57#endif58void Splats_Serialize(void);5960// Extra Entity Functions61void Splats_DebugDraw(void);62void Splats_DebugSpawn(void);6364void Splats_CheckPlayerCollisions(void);65void Splats_CheckOffScreen(void);6667void Splats_State_Init(void);68void Splats_State_BounceAround(void);69void Splats_State_SetupInkJar(void);70void Splats_State_InkJarSpawner(void);71void Splats_State_JumpOutOfJar(void);72void Splats_State_HandleBouncing(void);73void Splats_State_HandleLanding(void);74void Splats_State_NoMoreJumps(void);75void Splats_State_InkSplat(void);7677#endif //! OBJ_SPLATS_H787980