Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-1-2-2013-Decompilation
Path: blob/main/RSDKv4/NativeObjects/AchievementDisplay.cpp
817 views
1
#include "RetroEngine.hpp"
2
3
#if !RETRO_USE_ORIGINAL_CODE
4
void AchievementDisplay_Create(void *objPtr)
5
{
6
RSDK_THIS(AchievementDisplay);
7
8
self->z = 160.0;
9
self->alpha = 0xFF;
10
self->state = ACHDISP_STATE_LOCKED;
11
}
12
void AchievementDisplay_Main(void *objPtr)
13
{
14
RSDK_THIS(AchievementDisplay);
15
16
if (self->useRenderMatrix) {
17
NewRenderState();
18
SetRenderMatrix(&self->renderMatrix);
19
}
20
21
float width = GetTextWidth(self->achievementText, self->fontID, self->scale);
22
float height = GetTextHeight(self->achievementText, self->fontID, self->scale) + fontList[self->fontID].lineHeight * self->scale;
23
24
switch (self->state) {
25
case ACHDISP_STATE_LOCKED: // locked
26
SetRenderBlendMode(RENDER_BLEND_ALPHA);
27
28
// RenderRectClipped(self->x, self->y + 16.0f, self->z, 224.0f, 80.0f, 0x00, 0x00, 0x00, 0xC0);
29
30
RenderRectClipped(self->x, self->y + 16.0f, self->z, 4.0f, 80.0f, 0xFF, 0x00, 0x00, 0xC0);
31
RenderRectClipped(self->x + 220.0f, self->y + 16.0f, self->z, 4.0f, 80.0f, 0xFF, 0x00, 0x00, 0xC0);
32
RenderRectClipped(self->x + 4.0f, self->y + 16.0f, self->z, 216.0f, 4.0f, 0xFF, 0x00, 0x00, 0xC0);
33
RenderRectClipped(self->x + 4.0f, self->y - 60.0f, self->z, 216.0f, 4.0f, 0xFF, 0x00, 0x00, 0xC0);
34
35
RenderTextClipped(self->achievementText, self->fontID, self->x + (224.0f - width) / 2, self->y, self->z, self->scale, self->alpha);
36
RenderTextClipped(self->descriptionText, self->fontID, self->x + 8.0f, self->y - height, self->z, self->scale * 0.75, self->alpha);
37
break;
38
39
case ACHDISP_STATE_UNLOCKED: // unlocked
40
SetRenderBlendMode(RENDER_BLEND_ALPHA);
41
42
// RenderRectClipped(self->x, self->y + 16.0f, self->z, 224.0f, 80.0f, 0x00, 0x00, 0x00, 0xC0);
43
44
RenderRectClipped(self->x, self->y + 16.0f, self->z, 4.0f, 80.0f, 0x00, 0xFF, 0x00, 0xC0);
45
RenderRectClipped(self->x + 220.0f, self->y + 16.0f, self->z, 4.0f, 80.0f, 0x00, 0xFF, 0x00, 0xC0);
46
RenderRectClipped(self->x + 4.0f, self->y + 16.0f, self->z, 216.0f, 4.0f, 0x00, 0xFF, 0x00, 0xC0);
47
RenderRectClipped(self->x + 4.0f, self->y - 60.0f, self->z, 216.0f, 4.0f, 0x00, 0xFF, 0x00, 0xC0);
48
49
RenderTextClipped(self->achievementText, self->fontID, self->x + (224.0f - width) / 2, self->y, self->z, self->scale, self->alpha);
50
RenderTextClipped(self->descriptionText, self->fontID, self->x + 8.0f, self->y - height, self->z, self->scale * 0.75, self->alpha);
51
break;
52
}
53
54
if (self->useRenderMatrix) {
55
NewRenderState();
56
SetRenderMatrix(NULL);
57
}
58
}
59
#endif
60
61