Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-Mania-Decompilation
Path: blob/master/SonicMania/Objects/Common/Palette.c
338 views
1
// ---------------------------------------------------------------------
2
// RSDK Project: Sonic Mania
3
// Object Description: Palette Object
4
// Object Author: Christian Whitehead/Simon Thomley/Hunter Bridges
5
// Decompiled by: Rubberduckycooly & RMGRich
6
// ---------------------------------------------------------------------
7
8
#include "Game.h"
9
10
#if MANIA_USE_PLUS
11
ObjectPalette *Palette;
12
13
void Palette_Update(void) {}
14
15
void Palette_LateUpdate(void) {}
16
17
void Palette_StaticUpdate(void) {}
18
19
void Palette_Draw(void) {}
20
21
void Palette_Create(void *data)
22
{
23
RSDK_THIS(Palette);
24
25
if (!SceneInfo->inEditor && (!self->loadOnce || Palette->count <= 1)) {
26
char text[32];
27
RSDK.GetCString(text, &self->paletteFile);
28
RSDK.LoadPalette(self->bankID, text, self->rowFlags);
29
30
destroyEntity(self);
31
}
32
}
33
34
void Palette_StageLoad(void)
35
{
36
if (Palette->count < 2)
37
Palette->count++;
38
}
39
40
#if GAME_INCLUDE_EDITOR
41
void Palette_EditorDraw(void)
42
{
43
RSDK_THIS(Palette);
44
45
RSDK.SetSpriteAnimation(Palette->aniFrames, 0, &self->animator, true, 9);
46
RSDK.DrawSprite(&self->animator, NULL, false);
47
}
48
49
void Palette_EditorLoad(void)
50
{
51
Palette->aniFrames = RSDK.LoadSpriteAnimation("Editor/EditorIcons.bin", SCOPE_STAGE);
52
53
RSDK_ACTIVE_VAR(Palette, bankID);
54
RSDK_ENUM_VAR("Bank 0", PALETTE_BANK_0);
55
RSDK_ENUM_VAR("Bank 1", PALETTE_BANK_1);
56
RSDK_ENUM_VAR("Bank 2", PALETTE_BANK_2);
57
RSDK_ENUM_VAR("Bank 3", PALETTE_BANK_3);
58
RSDK_ENUM_VAR("Bank 4", PALETTE_BANK_4);
59
RSDK_ENUM_VAR("Bank 5", PALETTE_BANK_5);
60
RSDK_ENUM_VAR("Bank 6", PALETTE_BANK_6);
61
RSDK_ENUM_VAR("Bank 7", PALETTE_BANK_7);
62
}
63
#endif
64
65
void Palette_Serialize(void)
66
{
67
RSDK_EDITABLE_VAR(Palette, VAR_STRING, paletteFile);
68
RSDK_EDITABLE_VAR(Palette, VAR_UINT16, rowFlags);
69
RSDK_EDITABLE_VAR(Palette, VAR_UINT8, bankID);
70
RSDK_EDITABLE_VAR(Palette, VAR_BOOL, loadOnce);
71
}
72
#endif
73
74