Path: blob/master/SonicMania/Objects/Credits/AnimalHBH.c
338 views
// ---------------------------------------------------------------------1// RSDK Project: Sonic Mania2// Object Description: AnimalHBH Object3// Object Author: Christian Whitehead/Simon Thomley/Hunter Bridges4// Decompiled by: Rubberduckycooly & RMGRich5// ---------------------------------------------------------------------67#include "Game.h"89ObjectAnimalHBH *AnimalHBH;1011void AnimalHBH_Update(void)12{13RSDK_THIS(AnimalHBH);1415self->position.x -= 0x10000;1617int32 pos = self->position.x - (ScreenInfo->position.x << 16) - (ScreenInfo->center.x << 16);1819if (pos < 0)20pos = ((ScreenInfo->position.x + ScreenInfo->center.x) << 16) - self->position.x;2122if (pos < 0x800000)23AnimalHBH->colorCount = 0x20 * self->type;2425if (!self->type) {26++self->timer;27if ((ControllerInfo->keyA.press || ControllerInfo->keyStart.press))28self->timer = 1400;2930if (self->timer == 1400) {31EntityFXFade *fxFade = CREATE_ENTITY(FXFade, NULL, self->position.x, self->position.y);32fxFade->speedIn = 12;33fxFade->wait = 240;34}3536if (self->timer == 1536) {37RSDK.SetScene("Presentation", "Menu");38RSDK.LoadScene();39}4041if (AnimalHBH->currentColor < AnimalHBH->colorCount)42AnimalHBH->currentColor++;4344RSDK.SetPaletteEntry(1, 1, RSDK.GetPaletteEntry(5, AnimalHBH->currentColor));45}46}4748void AnimalHBH_LateUpdate(void) {}4950void AnimalHBH_StaticUpdate(void) {}5152void AnimalHBH_Draw(void)53{54RSDK_THIS(AnimalHBH);5556Vector2 drawPos;57drawPos.x = 2 * (self->position.x - ((ScreenInfo->position.x + ScreenInfo->center.x) << 15));58drawPos.y = self->position.y;5960RSDK.SetActivePalette(1, 0, ScreenInfo->size.y);61RSDK.DrawSprite(&self->silhouetteAnimator, &drawPos, false);6263RSDK.SetActivePalette(4, 0, ScreenInfo->size.y);64RSDK.DrawSprite(&self->animalHBHAnimator, NULL, false);6566RSDK.SetActivePalette(1, 0, ScreenInfo->size.y);67}6869void AnimalHBH_Create(void *data)70{71RSDK_THIS(AnimalHBH);7273if (!SceneInfo->inEditor) {74self->visible = true;75self->drawGroup = 2;76self->active = ACTIVE_NORMAL;77self->updateRange.x = 0x800000;78self->updateRange.y = 0x800000;7980RSDK.SetSpriteAnimation(AnimalHBH->aniFrames, self->type, &self->animalHBHAnimator, true, 0);81RSDK.SetSpriteAnimation(AnimalHBH->silhouetteFrames, self->type, &self->silhouetteAnimator, true, 0);82}83}8485void AnimalHBH_StageLoad(void)86{87AnimalHBH->aniFrames = RSDK.LoadSpriteAnimation("Credits/AnimalHBH.bin", SCOPE_STAGE);88AnimalHBH->silhouetteFrames = RSDK.LoadSpriteAnimation("Credits/Silhouettes.bin", SCOPE_STAGE);8990AnimalHBH->currentColor = 0;91AnimalHBH->colorCount = 0;92}9394#if GAME_INCLUDE_EDITOR95void AnimalHBH_EditorDraw(void)96{97RSDK_THIS(AnimalHBH);98RSDK.SetSpriteAnimation(AnimalHBH->aniFrames, self->type, &self->animalHBHAnimator, true, 0);99100RSDK.DrawSprite(&self->animalHBHAnimator, NULL, false);101}102103void AnimalHBH_EditorLoad(void) { AnimalHBH->aniFrames = RSDK.LoadSpriteAnimation("Credits/AnimalHBH.bin", SCOPE_STAGE); }104#endif105106void AnimalHBH_Serialize(void) { RSDK_EDITABLE_VAR(AnimalHBH, VAR_UINT8, type); }107108109