Path: blob/master/SonicMania/Objects/Helpers/ParticleHelpers.c
338 views
// ---------------------------------------------------------------------1// RSDK Project: Sonic Mania2// Object Description: ParticleHelpers Object3// Object Author: Christian Whitehead/Simon Thomley/Hunter Bridges4// Decompiled by: Rubberduckycooly & RMGRich5// ---------------------------------------------------------------------67#include "Game.h"89ObjectParticleHelpers *ParticleHelpers = NULL;1011void ParticleHelpers_Update(void) {}1213void ParticleHelpers_LateUpdate(void) {}1415void ParticleHelpers_StaticUpdate(void) {}1617void ParticleHelpers_Draw(void) {}1819void ParticleHelpers_Create(void *data) {}2021void ParticleHelpers_StageLoad(void) {}2223void ParticleHelpers_SetupFallingParticles(int32 x, int32 y, void (*callback)(EntityDebris *))24{25int32 pos = x - 0x80000;26for (int32 i = 0; i < 5; ++i) {27int32 spawnX = pos + (i << 18);28EntityDebris *debris = CREATE_ENTITY(Debris, Debris_State_Fall, spawnX, y);29debris->drawGroup = Zone->objectDrawGroup[1];30debris->gravityStrength = 0x3800;31debris->velocity.y = 0;32debris->velocity.x = 0x30 * ((spawnX - x) >> 8);3334if (debris->position.x < x)35debris->direction = FLIP_X;3637if (callback)38callback(debris);39}40}4142void ParticleHelpers_SetupParticleFX(void *debrisState, void (*callback)(EntityDebris *), int32 speed, int32 xOffset, int32 yOffset, int32 maxX,43int32 maxY)44{45int32 x = ZONE_RAND(-(maxX >> 1), maxX >> 1) + xOffset;46int32 y = ZONE_RAND(-(maxY >> 1), maxY >> 1) + yOffset;47EntityDebris *debris = CREATE_ENTITY(Debris, debrisState, x, y);4849debris->drawGroup = Zone->objectDrawGroup[1];50debris->gravityStrength = 0x3800;51debris->velocity.x = ((x - xOffset) >> 8) * (speed >> 8);52debris->velocity.y = ((y - yOffset) >> 8) * (speed >> 8);5354if (debris->position.x < xOffset)55debris->direction = FLIP_X;5657if (callback)58callback(debris);59}6061#if GAME_INCLUDE_EDITOR62void ParticleHelpers_EditorDraw(void) {}6364void ParticleHelpers_EditorLoad(void) {}65#endif6667void ParticleHelpers_Serialize(void) {}686970