Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Rubberduckycooly
GitHub Repository: Rubberduckycooly/RSDKv5-Decompilation
Path: blob/master/RSDKv5/RSDK/Scene/Objects/DevOutput.cpp
1737 views
1
#include "RSDK/Core/RetroEngine.hpp"
2
3
#if RETRO_REV02
4
using namespace RSDK;
5
6
ObjectDevOutput *RSDK::DevOutput;
7
8
void RSDK::DevOutput_Update()
9
{
10
RSDK_THIS(DevOutput);
11
12
switch (self->state) {
13
default: break;
14
15
case DEVOUTPUT_DELAY:
16
if (self->timer <= 0)
17
self->state = DEVOUTPUT_ENTERPOPUP;
18
else
19
self->timer--;
20
break;
21
22
case DEVOUTPUT_ENTERPOPUP:
23
if (self->position.y >= 0)
24
self->state = DEVOUTPUT_SHOWPOPUP;
25
else
26
self->position.y += 2;
27
break;
28
29
case DEVOUTPUT_SHOWPOPUP:
30
if (self->timer >= 120)
31
self->state = 3;
32
else
33
self->timer++;
34
break;
35
36
case DEVOUTPUT_EXITPOPUP:
37
self->position.y -= 2;
38
if (-self->position.y > self->ySize)
39
ResetEntity(self, TYPE_DEFAULTOBJECT, NULL);
40
break;
41
}
42
}
43
44
void RSDK::DevOutput_LateUpdate() {}
45
46
void RSDK::DevOutput_StaticUpdate() {}
47
48
void RSDK::DevOutput_Draw()
49
{
50
RSDK_THIS(DevOutput);
51
52
DrawRectangle(0, 0, currentScreen->size.x, self->position.y + self->ySize, 0x000080, 0xFF, INK_NONE, true);
53
DrawDevString(self->message, 8, self->position.y + 8, 0, 0xF0F0F0);
54
}
55
56
void RSDK::DevOutput_Create(void *data)
57
{
58
RSDK_THIS(DevOutput);
59
strncpy(self->message, (char *)data, 0x3F4);
60
61
self->active = ACTIVE_ALWAYS;
62
self->visible = true;
63
self->isPermanent = true;
64
self->drawGroup = 15;
65
self->timer = 180 * GetEntityCount(DevOutput->classID, false);
66
self->ySize = DevOutput_GetStringYSize(self->message);
67
self->position.y = -self->ySize;
68
}
69
70
void RSDK::DevOutput_StageLoad() {}
71
72
#if RETRO_REV0U
73
void RSDK::DevOutput_StaticLoad(ObjectDevOutput *staticVars) { memset(staticVars, 0, sizeof(*staticVars)); }
74
#endif
75
76
void RSDK::DevOutput_EditorLoad() {}
77
78
void RSDK::DevOutput_EditorDraw() {}
79
80
void RSDK::DevOutput_Serialize() {}
81
82
int32 RSDK::DevOutput_GetStringYSize(char *string)
83
{
84
if (!*string)
85
return 24;
86
87
int32 lineCount = 0;
88
while (*string) {
89
if (*string == '\n')
90
lineCount++;
91
92
++string;
93
}
94
95
if (lineCount >= 1)
96
return 8 * lineCount + 16;
97
else
98
return 24;
99
}
100
#endif
101
102