Path: blob/master/SonicMania/Objects/SSZ/Firework.h
338 views
#ifndef OBJ_FIREWORK_H1#define OBJ_FIREWORK_H23#include "Game.h"45// Object Class6struct ObjectFirework {7RSDK_OBJECT8uint16 aniFrames;9uint16 sfxRocketJet;10uint16 sfxFlame;11uint16 sfxExplosion2;12uint16 sfxExplosion;13bool32 playingFlameSfx;14Hitbox hitboxFireworkGrab;15Hitbox hitboxTileCheck;16};1718// Entity Class19struct EntityFirework {20RSDK_ENTITY21int32 distance;22int32 innerRadius;23int32 outerRadius;24StateMachine(state);25uint8 activePlayers;26int32 playerTimers[PLAYER_COUNT];27int32 sparkID;28bool32 activated;29int32 timer;30int32 moveVelocity;31int32 ridePos;32Vector2 startPos;33Vector2 lastPosition;34bool32 rideActive;35Animator mainAnimator;36Animator sparkAnimator;37};3839// Object Struct40extern ObjectFirework *Firework;4142// Standard Entity Events43void Firework_Update(void);44void Firework_LateUpdate(void);45void Firework_StaticUpdate(void);46void Firework_Draw(void);47void Firework_Create(void *data);48void Firework_StageLoad(void);49#if GAME_INCLUDE_EDITOR50void Firework_EditorDraw(void);51void Firework_EditorLoad(void);52#endif53void Firework_Serialize(void);5455// Extra Entity Functions56void Firework_CheckPlayerCollisions(void);57void Firework_HandlePlayerTimers(void);58void Firework_RemovePlayers(bool32 crashed);59void Firework_HandlePlayerRemoval(EntityPlayer *player, bool32 crashed);60void Firework_HandlePlayerJump(void);61void Firework_HandlePlayerControl(void);62void Firework_HandleMoveDir(void);63void Firework_HandleDebrisSpawn(void);64void Firework_HandleTileCollisions(void);65void Firework_HandleRideEnd(bool32 crashed);66void Firework_CheckOffScreen(void);67void Firework_HandleSparkAnimations(int32 sparkID, int16 angle, Animator *fireworkAnimator, Animator *sparkAnimator, uint8 *direction);6869void Firework_State_Init(void);70void Firework_State_AwaitPlayerRide(void);71void Firework_State_PlayerGrabDelay(void);72void Firework_State_Riding(void);73void Firework_State_Explode(void);74void Firework_State_ResetOffScreen(void);7576void Firework_State_SparkSetup(void);77void Firework_State_Spark(void);7879#endif //! OBJ_FIREWORK_H808182