Path: blob/master/SonicMania/Objects/UFO/UFO_Message.c
338 views
// ---------------------------------------------------------------------1// RSDK Project: Sonic Mania2// Object Description: UFO_Message Object3// Object Author: Christian Whitehead/Simon Thomley/Hunter Bridges4// Decompiled by: Rubberduckycooly & RMGRich5// ---------------------------------------------------------------------67#include "Game.h"89ObjectUFO_Message *UFO_Message;1011void UFO_Message_Update(void)12{13RSDK_THIS(UFO_Message);1415StateMachine_Run(self->state);16}1718void UFO_Message_LateUpdate(void) {}1920void UFO_Message_StaticUpdate(void) {}2122void UFO_Message_Draw(void)23{24RSDK_THIS(UFO_Message);2526Vector2 drawPos;27drawPos.x = (ScreenInfo->center.x - self->timer) << 16;28drawPos.y = 0x580000;29RSDK.DrawSprite(&self->leftAnimator, &drawPos, true);3031drawPos.x = (self->timer + ScreenInfo->center.x) << 16;32RSDK.DrawSprite(&self->rightAnimator, &drawPos, true);33}3435void UFO_Message_Create(void *data)36{37RSDK_THIS(UFO_Message);3839if (!SceneInfo->inEditor) {40self->active = ACTIVE_NORMAL;41self->visible = true;42self->drawGroup = 12;43self->state = UFO_Message_State_Appear;4445int32 type = VOID_TO_INT(data);46RSDK.SetSpriteAnimation(UFO_Message->aniFrames, 4, &self->leftAnimator, true, 2 * type);47RSDK.SetSpriteAnimation(UFO_Message->aniFrames, 4, &self->rightAnimator, true, 2 * type + 1);48self->timer = 320;4950foreach_active(UFO_Message, message)51{52if (message != self)53message->state = UFO_Message_State_Exit;54}55}56}5758void UFO_Message_StageLoad(void) { UFO_Message->aniFrames = RSDK.LoadSpriteAnimation("SpecialUFO/HUD.bin", SCOPE_STAGE); }5960void UFO_Message_State_Appear(void)61{62RSDK_THIS(UFO_Message);6364self->timer -= 16;6566if (self->timer <= 0)67self->state = UFO_Message_State_ShowMsg;68}69void UFO_Message_State_ShowMsg(void)70{71RSDK_THIS(UFO_Message);7273if (++self->displayTime >= 180) {74self->displayTime = 0;7576self->state = UFO_Message_State_Exit;77}78}79void UFO_Message_State_Exit(void)80{81RSDK_THIS(UFO_Message);8283self->timer += 16;84if (self->timer > 320)85destroyEntity(self);86}8788#if GAME_INCLUDE_EDITOR89void UFO_Message_EditorDraw(void) {}9091void UFO_Message_EditorLoad(void) {}92#endif9394void UFO_Message_Serialize(void) {}959697