Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-1-2-2013-Decompilation
Path: blob/main/RSDKv4/NativeObjects/CWSplash.cpp
817 views
1
#include "RetroEngine.hpp"
2
3
void CWSplash_Create(void *objPtr)
4
{
5
RSDK_THIS(CWSplash);
6
self->state = CWSPLASH_STATE_ENTER;
7
self->rectAlpha = 320.0;
8
self->textureID = LoadTexture("Data/Game/Menu/CWLogo.png", TEXFMT_RGBA8888);
9
}
10
void CWSplash_Main(void *objPtr)
11
{
12
RSDK_THIS(CWSplash);
13
14
switch (self->state) {
15
case CWSPLASH_STATE_ENTER:
16
self->rectAlpha -= 300.0 * Engine.deltaTime;
17
if (self->rectAlpha < -320.0)
18
self->state = CWSPLASH_STATE_EXIT;
19
SetRenderBlendMode(RENDER_BLEND_ALPHA);
20
RenderRect(-SCREEN_CENTERX_F, SCREEN_CENTERY_F, 160.0, SCREEN_XSIZE_F, SCREEN_YSIZE_F, 0xFF, 0x90, 0x00, 0xFF);
21
SetRenderBlendMode(RENDER_BLEND_ALPHA);
22
RenderImage(0.0, 0.0, 160.0, 0.25, 0.25, 512.0, 256.0, 1024.0, 512.0, 0.0, 0.0, 255, self->textureID);
23
RenderRect(-SCREEN_CENTERX_F, SCREEN_CENTERY_F, 160.0, SCREEN_XSIZE_F, SCREEN_YSIZE_F, 0, 0, 0, self->rectAlpha);
24
break;
25
case CWSPLASH_STATE_EXIT:
26
self->rectAlpha += 300.0 * Engine.deltaTime;
27
if (self->rectAlpha > 512.0)
28
self->state = CWSPLASH_STATE_SPAWNTITLE;
29
SetRenderBlendMode(RENDER_BLEND_ALPHA);
30
RenderRect(-SCREEN_CENTERX_F, SCREEN_CENTERY_F, 160.0, SCREEN_XSIZE_F, SCREEN_YSIZE_F, 0xFF, 0x90, 0x00, 0xFF);
31
SetRenderBlendMode(RENDER_BLEND_ALPHA);
32
RenderImage(0.0, 0.0, 160.0, 0.25, 0.25, 512.0, 256.0, 1024.0, 512.0, 0.0, 0.0, 255, self->textureID);
33
RenderRect(-SCREEN_CENTERX_F, SCREEN_CENTERY_F, 160.0, SCREEN_XSIZE_F, SCREEN_YSIZE_F, 0, 0, 0, self->rectAlpha);
34
break;
35
case CWSPLASH_STATE_SPAWNTITLE: ResetNativeObject(self, TitleScreen_Create, TitleScreen_Main); break;
36
}
37
}
38
39