Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rubberduckycooly
GitHub Repository: rubberduckycooly/Sonic-1-2-2013-Decompilation
Path: blob/main/RSDKv4/NativeObjects/BackButton.cpp
817 views
1
#include "RetroEngine.hpp"
2
3
void BackButton_Create(void *objPtr)
4
{
5
RSDK_THIS(BackButton);
6
self->textureCircle = LoadTexture("Data/Game/Menu/Circle.png", TEXFMT_RGBA4444);
7
8
int texture = LoadTexture("Data/Game/Menu/Intro.png", TEXFMT_RGBA4444);
9
self->meshBack = LoadMesh("Data/Game/Models/BackArrow.bin", texture);
10
self->x = 0.0;
11
self->y = 16.0;
12
self->z = 160.0;
13
self->r = 0xFF;
14
self->g = 0xFF;
15
self->b = 0x00;
16
}
17
void BackButton_Main(void *objPtr)
18
{
19
RSDK_THIS(BackButton);
20
21
if (self->visible) {
22
if (self->scale < 0.2) {
23
self->scale += ((0.25 - self->scale) / ((60.0 * Engine.deltaTime) * 16.0));
24
if (self->scale > 0.2)
25
self->scale = 0.2;
26
}
27
SetRenderBlendMode(RENDER_BLEND_ALPHA);
28
SetRenderVertexColor(self->r, self->g, self->b);
29
RenderImage(self->x, self->y, self->z, self->scale, self->scale, 256.0, 256.0, 512.0, 512.0, 0.0, 0.0, 255, self->textureCircle);
30
SetRenderVertexColor(0xFF, 0xFF, 0xFF);
31
SetRenderBlendMode(RENDER_BLEND_NONE);
32
33
self->angle -= (Engine.deltaTime + Engine.deltaTime);
34
if (self->angle < -M_PI_2)
35
self->angle += M_PI_2;
36
37
NewRenderState();
38
MatrixScaleXYZF(&self->renderMatrix, (cosf(self->angle) * 0.35) + 1.25, (sinf(self->angle) * 0.35) + 1.25, 1.0);
39
MatrixTranslateXYZF(&self->matrixTemp, self->x, self->y, self->z - 8.0);
40
MatrixMultiplyF(&self->renderMatrix, &self->matrixTemp);
41
SetRenderMatrix(&self->renderMatrix);
42
RenderMesh(self->meshBack, MESH_NORMALS, true);
43
SetRenderMatrix(NULL);
44
}
45
}
46
47