Path: blob/main/RSDKv4/NativeObjects/ModsButton.cpp
817 views
#include "RetroEngine.hpp"12#if RETRO_USE_MOD_LOADER3void ModsButton_Create(void *objPtr)4{5RSDK_THIS(ModsButton);6self->textureCircle = LoadTexture("Data/Game/Menu/Circle.png", TEXFMT_RGBA4444);78int texture = LoadTexture("Data/Game/Menu/Intro.png", TEXFMT_RGBA4444);9self->meshMods = LoadMesh("Data/Game/Models/Options.bin", texture);10self->x = 0.0;11self->y = 16.0;12self->z = 160.0;13self->r = 0xFF;14self->g = 0xFF;15self->b = 0x00;16self->labelPtr = CREATE_ENTITY(TextLabel);17self->labelPtr->fontID = FONT_HEADING;18self->labelPtr->scale = 0.15;19self->labelPtr->alpha = 0;20self->labelPtr->state = TEXTLABEL_STATE_IDLE;21SetStringToFont8(self->labelPtr->text, "MODS", FONT_HEADING);22self->labelPtr->alignPtr(self->labelPtr, ALIGN_CENTER);23}2425void ModsButton_Main(void *objPtr)26{27RSDK_THIS(ModsButton);2829if (self->visible) {30if (self->scale < 0.2) {31self->scale += ((0.25 - self->scale) / ((60.0 * Engine.deltaTime) * 16.0));32if (self->scale > 0.2)33self->scale = 0.2;34}35SetRenderBlendMode(RENDER_BLEND_ALPHA);36SetRenderVertexColor(self->r, self->g, self->b);37RenderImage(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);38SetRenderVertexColor(0xFF, 0xFF, 0xFF);39SetRenderBlendMode(RENDER_BLEND_NONE);4041self->angle -= Engine.deltaTime;42if (self->angle < -M_PI_2)43self->angle += M_PI_2;4445NewRenderState();46MatrixRotateXYZF(&self->renderMatrix, 0.0, 0.0, self->angle);47MatrixTranslateXYZF(&self->matrixTemp, self->x, self->y, self->z - 8.0);48MatrixMultiplyF(&self->renderMatrix, &self->matrixTemp);49SetRenderMatrix(&self->renderMatrix);50RenderMesh(self->meshMods, MESH_NORMALS, true);51SetRenderMatrix(NULL);5253NativeEntity_TextLabel *label = self->labelPtr;54label->x = self->x;55label->y = self->y - 72.0;56label->z = self->z;57if (label->x <= -8.0 || label->x >= 8.0) {58if (label->alpha > 0)59label->alpha -= 8;60}61else if (label->alpha < 0x100)62label->alpha += 8;63}64}65#endif6667