Path: blob/master/SonicMania/Objects/Puyo/PuyoScore.c
338 views
// ---------------------------------------------------------------------1// RSDK Project: Sonic Mania2// Object Description: PuyoScore Object3// Object Author: Christian Whitehead/Simon Thomley/Hunter Bridges4// Decompiled by: Rubberduckycooly & RMGRich5// ---------------------------------------------------------------------67#include "Game.h"89ObjectPuyoScore *PuyoScore;1011void PuyoScore_Update(void)12{13RSDK_THIS(PuyoScore);1415self->visible = self->flashing ? !(Zone->timer & 4) : true;16}1718void PuyoScore_LateUpdate(void) {}1920void PuyoScore_StaticUpdate(void) {}2122void PuyoScore_Draw(void)23{24RSDK_THIS(PuyoScore);2526PuyoScore_DrawScore(self->score);27}2829void PuyoScore_Create(void *data)30{31RSDK_THIS(PuyoScore);3233self->active = ACTIVE_NORMAL;34self->drawGroup = 10;35self->visible = true;36self->updateRange.x = 0x800000;37self->updateRange.y = 0x800000;38}3940void PuyoScore_StageLoad(void) { PuyoScore->aniFrames = RSDK.LoadSpriteAnimation("Puyo/PuyoUI.bin", SCOPE_STAGE); }4142void PuyoScore_DrawScore(int32 score)43{44RSDK_THIS(PuyoScore);4546char buffer[8];47if (self->counter)48sprintf_s(buffer, (int32)sizeof(buffer), "%d", score);49else50sprintf_s(buffer, (int32)sizeof(buffer), "%06d", score);5152Vector2 drawPos = self->position;53for (int32 i = 0; i < 6; ++i) {54if (!buffer[i])55break;5657RSDK.SetSpriteAnimation(PuyoScore->aniFrames, (self->counter != false) + 2, &self->animator, true, (buffer[i] - '0'));58RSDK.DrawSprite(&self->animator, &drawPos, false);59drawPos.x += 0x80000;60}61}6263#if GAME_INCLUDE_EDITOR64void PuyoScore_EditorDraw(void)65{66RSDK_THIS(PuyoScore);6768if (self->counter)69PuyoScore_DrawScore(self->playerID);70else71PuyoScore_DrawScore(self->playerID ? 67890 : 12345);72}7374void PuyoScore_EditorLoad(void)75{76PuyoScore->aniFrames = RSDK.LoadSpriteAnimation("Puyo/PuyoUI.bin", SCOPE_STAGE);7778RSDK_ACTIVE_VAR(PuyoScore, playerID);79RSDK_ENUM_VAR("Player 1", PUYOGAME_PLAYER1);80RSDK_ENUM_VAR("Player 2", PUYOGAME_PLAYER2);81}82#endif8384void PuyoScore_Serialize(void)85{86RSDK_EDITABLE_VAR(PuyoScore, VAR_ENUM, playerID);87RSDK_EDITABLE_VAR(PuyoScore, VAR_BOOL, counter);88}899091