Path: blob/master/SonicMania/Objects/TMZ/TMZFlames.c
338 views
// ---------------------------------------------------------------------1// RSDK Project: Sonic Mania2// Object Description: TMZFlames Object3// Object Author: Christian Whitehead/Simon Thomley/Hunter Bridges4// Decompiled by: Rubberduckycooly & RMGRich5// ---------------------------------------------------------------------67#include "Game.h"89ObjectTMZFlames *TMZFlames;1011void TMZFlames_Update(void)12{13RSDK_THIS(TMZFlames);1415self->active = ACTIVE_NORMAL;1617RSDK.ProcessAnimation(&self->animator);1819StateMachine_Run(self->state);20}2122void TMZFlames_LateUpdate(void) {}2324void TMZFlames_StaticUpdate(void) {}2526void TMZFlames_Draw(void)27{28RSDK_THIS(TMZFlames);2930Vector2 drawPos;31drawPos.y = (ScreenInfo[SceneInfo->currentScreenID].center.y - 112) << 16;32for (int32 i = 0; i < 0x80; i += 0x10) {33drawPos.x = (RSDK.Sin256(4 * (i + Zone->timer)) << 11) + self->offset;34RSDK.DrawSprite(&self->animator, &drawPos, true);3536drawPos.y += 0x200000;37}38}3940void TMZFlames_Create(void *data)41{42RSDK_THIS(TMZFlames);4344if (!SceneInfo->inEditor) {45self->visible = true;46self->drawGroup = Zone->objectDrawGroup[1];47self->active = ACTIVE_BOUNDS;48self->updateRange.x = 0x800000;49self->updateRange.y = 0x800000;50self->drawFX = FX_SCALE;51self->inkEffect = INK_ADD;52self->alpha = 0x100;53self->scale.x = 0x400;54self->scale.y = 0x200;55self->offset = -0x800000;5657self->state = TMZFlames_State_Delay;58RSDK.SetSpriteAnimation(TMZFlames->aniFrames, 0, &self->animator, true, 0);59}60}6162void TMZFlames_StageLoad(void) { TMZFlames->aniFrames = RSDK.LoadSpriteAnimation("Phantom/Flames.bin", SCOPE_STAGE); }6364void TMZFlames_State_Delay(void)65{66RSDK_THIS(TMZFlames);6768if (++self->timer == 240) {69self->timer = 0;70self->state = TMZFlames_State_EnterFlames;71}72}7374void TMZFlames_State_EnterFlames(void)75{76RSDK_THIS(TMZFlames);7778if (self->offset < 0)79self->offset += 0x40000;8081if (++self->timer == 260) {82self->timer = 0;83self->state = TMZFlames_State_FlamesEnlarge;84}85}8687void TMZFlames_State_FlamesEnlarge(void)88{89RSDK_THIS(TMZFlames);9091if (self->scale.x < 0x1000)92self->scale.x += 16;93}9495#if GAME_INCLUDE_EDITOR96void TMZFlames_EditorDraw(void) {}9798void TMZFlames_EditorLoad(void) {}99#endif100101void TMZFlames_Serialize(void) {}102103104