Path: blob/main/RSDKv4/NativeObjects/InstructionsScreen.cpp
817 views
#include "RetroEngine.hpp"12ushort helpText[0x1000];34void InstructionsScreen_Create(void *objPtr)5{6RSDK_THIS(InstructionsScreen);78self->labelPtr = CREATE_ENTITY(TextLabel);9self->labelPtr->useRenderMatrix = true;10self->labelPtr->fontID = FONT_HEADING;11self->labelPtr->scale = 0.2;12self->labelPtr->alpha = 256;13self->labelPtr->x = -144.0;14self->labelPtr->y = 100.0;15self->labelPtr->z = 16.0;16self->labelPtr->state = TEXTLABEL_STATE_IDLE;17SetStringToFont(self->labelPtr->text, strInstructions, FONT_HEADING);18SetStringToFont8(self->pageIDText, "1 / 5", FONT_TEXT);19SetStringToFont(helpText, strHelpText1, FONT_TEXT);2021self->meshPanel = LoadMesh("Data/Game/Models/Panel.bin", -1);22SetMeshVertexColors(self->meshPanel, 0, 0, 0, 0xC0);23self->textureArrows = LoadTexture("Data/Game/Menu/ArrowButtons.png", TEXFMT_RGBA5551);24self->touchedPrev = false;25self->textY = 68.0;26self->textHeight = (GetTextHeight(helpText, FONT_TEXT, 0.14) - 152.0) + 68.0;2728if (Engine.gameDeviceType == RETRO_STANDARD) {29self->textureDPad = LoadTexture("Data/Game/Menu/Generic.png", TEXFMT_RGBA8888);30if (timeAttackTex)31ReplaceTexture("Data/Game/Menu/HelpGraphics.png", timeAttackTex);32else33self->textureHelp = LoadTexture("Data/Game/Menu/HelpGraphics.png", TEXFMT_RGBA5551);34}35else {36self->textureDPad = LoadTexture("Data/Game/Menu/VirtualDPad.png", TEXFMT_RGBA8888);37if (timeAttackTex)38ReplaceTexture("Data/Game/Menu/HelpGraphics.png", timeAttackTex);39else40self->textureHelp = LoadTexture("Data/Game/Menu/HelpGraphics.png", TEXFMT_RGBA5551);41}42}43void InstructionsScreen_Main(void *objPtr)44{45RSDK_THIS(InstructionsScreen);46NativeEntity_OptionsMenu *optionsMenu = (NativeEntity_OptionsMenu *)self->optionsMenu;47switch (self->state) {48case INSTRUCTIONSCREEN_STATE_ENTER: {49if (self->arrowAlpha < 0x100)50self->arrowAlpha += 8;5152self->scale = fminf(self->scale + ((1.05 - self->scale) / ((60.0 * Engine.deltaTime) * 8.0)), 1.0f);5354NewRenderState();55MatrixScaleXYZF(&self->renderMatrix, self->scale, self->scale, 1.0);56MatrixTranslateXYZF(&self->matrixTemp, 0.0, -8.0, 160.0);57MatrixMultiplyF(&self->renderMatrix, &self->matrixTemp);58SetRenderMatrix(&self->renderMatrix);5960memcpy(&self->labelPtr->renderMatrix, &self->renderMatrix, sizeof(MatrixF));6162self->timer += Engine.deltaTime;63if (self->timer > 1.0) {64self->arrowAlpha = 256;65self->timer = 0.0;66self->state = INSTRUCTIONSCREEN_STATE_MAIN;67}68break;69}7071case INSTRUCTIONSCREEN_STATE_MAIN: {72CheckKeyDown(&keyDown);73CheckKeyPress(&keyPress);74SetRenderMatrix(&self->matrixTemp);7576if (usePhysicalControls) {77if (touches > 0) {78usePhysicalControls = false;79}80else {81self->touchedPrev = false;82self->touchedNext = false;83self->touchedBack = false;8485if (self->textHeight > 68.0) {86if (keyDown.up)87self->textY = fmaxf(68.0, self->textY - 2.0);88if (keyDown.down)89self->textY = fminf(self->textHeight, self->textY + 2.0);90}9192if (keyDown.left) {93PlaySfxByName("Menu Move", false);94self->state = INSTRUCTIONSCREEN_STATE_FLIP;95self->stateInput = INSTRUCTIONSCREEN_STATEINPUT_CHECKPRESS;96self->touchedPrev = false;97self->flipRight = true;98if (--self->pageID < 0)99self->pageID = 4;100}101else if (keyDown.right) {102PlaySfxByName("Menu Move", false);103self->state = INSTRUCTIONSCREEN_STATE_FLIP;104self->stateInput = INSTRUCTIONSCREEN_STATEINPUT_CHECKPRESS;105self->touchedNext = false;106self->flipRight = false;107self->pageID = (self->pageID + 1) % 5;108}109}110}111else {112switch (self->stateInput) {113case INSTRUCTIONSCREEN_STATEINPUT_CHECKPRESS:114if (touches > 0) {115if (CheckTouchRect(0.0, -8.0, 128.0, 96.0) >= 0 && self->textHeight > 68.0) {116self->stateInput = INSTRUCTIONSCREEN_STATEINPUT_HANDLEMOVEMENT;117self->lastSwipeDistanceV = 0.0;118self->lastTouchY = touchYF[0];119}120}121else {122self->selectionEnabled = false;123}124125if (keyDown.up || keyDown.down)126usePhysicalControls = true;127break;128129case INSTRUCTIONSCREEN_STATEINPUT_HANDLEMOVEMENT:130if (touches > 0) {131self->swipeDistanceV = self->lastTouchY - touchYF[0];132if (self->lastSwipeDistanceV > 0.0 || self->lastSwipeDistanceV < 0.0)133self->textVelocity = self->lastSwipeDistanceV - self->swipeDistanceV;134else135self->textVelocity = 0.0;136self->lastSwipeDistanceV = self->swipeDistanceV;137self->textY += self->textVelocity;138}139else {140self->stateInput = INSTRUCTIONSCREEN_STATEINPUT_HANDLESCROLL;141}142break;143144case INSTRUCTIONSCREEN_STATEINPUT_HANDLESCROLL:145if (touches <= 0) {146float acc = self->textVelocity / ((60.0 * Engine.deltaTime) * 1.1);147self->textY += acc;148self->textVelocity = acc;149150if (abs(self->textVelocity) < 0.0025)151self->stateInput = INSTRUCTIONSCREEN_STATEINPUT_CHECKPRESS;152153if (68.0 - abs(self->textVelocity * 4.0) > self->textY) {154self->swipeDistanceV = 68.0;155self->stateInput = INSTRUCTIONSCREEN_STATEINPUT_HANDLESWIPE;156}157158if (self->textY > (abs(self->textVelocity * 4.0) + self->textHeight)) {159self->swipeDistanceV = self->textHeight;160self->stateInput = INSTRUCTIONSCREEN_STATEINPUT_HANDLESWIPE;161}162}163else if (CheckTouchRect(0.0, -8.0, 128.0, 96.0) >= 0) {164self->stateInput = INSTRUCTIONSCREEN_STATEINPUT_HANDLEMOVEMENT;165self->lastSwipeDistanceV = 0.0;166self->lastTouchY = touchYF[0];167}168break;169170case INSTRUCTIONSCREEN_STATEINPUT_HANDLESWIPE:171if (touches <= 0) {172self->textY = ((self->swipeDistanceV - self->textY) / ((60.0 * Engine.deltaTime) * 8.0)) + self->textY;173174if (abs(self->swipeDistanceV - self->textY) < 0.025) {175self->textY = self->swipeDistanceV;176self->stateInput = INSTRUCTIONSCREEN_STATEINPUT_CHECKPRESS;177}178}179else if (CheckTouchRect(0.0, -8.0, 128.0, 96.0) >= 0) {180self->stateInput = INSTRUCTIONSCREEN_STATEINPUT_HANDLEMOVEMENT;181self->lastSwipeDistanceV = 0.0;182self->lastTouchY = touchYF[0];183}184break;185}186}187188if (touches <= 0) {189if (self->touchedBack) {190PlaySfxByName("Menu Back", false);191self->touchedBack = false;192self->state = INSTRUCTIONSCREEN_STATE_EXIT;193}194195if (self->touchedPrev) {196PlaySfxByName("Menu Move", false);197self->state = INSTRUCTIONSCREEN_STATE_FLIP;198self->stateInput = INSTRUCTIONSCREEN_STATEINPUT_CHECKPRESS;199self->touchedPrev = false;200self->flipRight = true;201202if (--self->pageID < 0)203self->pageID = 4;204}205206if (self->touchedNext) {207PlaySfxByName("Menu Move", false);208self->state = INSTRUCTIONSCREEN_STATE_FLIP;209self->stateInput = INSTRUCTIONSCREEN_STATEINPUT_CHECKPRESS;210self->touchedNext = false;211self->flipRight = false;212self->pageID = (self->pageID + 1) % 5;213}214}215else if (self->state == 1) {216self->touchedBack = CheckTouchRect(128.0, -92.0, 32.0, 32.0) >= 0;217self->touchedPrev = CheckTouchRect(-162.0, 0.0, 32.0, 32.0) >= 0;218self->touchedNext = CheckTouchRect(162.0, 0.0, 32.0, 32.0) >= 0;219220if (self->selectionEnabled) {221if (self->lastTouchX - touchXF[0] > 16.0f) {222PlaySfxByName("Menu Move", false);223self->state = INSTRUCTIONSCREEN_STATE_FLIP;224self->stateInput = INSTRUCTIONSCREEN_STATEINPUT_CHECKPRESS;225self->flipRight = false;226self->selectionEnabled = false;227self->pageID = (self->pageID + 1) % 5;228}229else if (self->lastTouchX - touchXF[0] < -16.0f) {230PlaySfxByName("Menu Move", false);231self->state = INSTRUCTIONSCREEN_STATE_FLIP;232self->stateInput = INSTRUCTIONSCREEN_STATEINPUT_CHECKPRESS;233self->flipRight = true;234self->selectionEnabled = false;235if (--self->pageID < 0)236self->pageID = 4;237}238}239else {240self->selectionEnabled = true;241}242self->lastTouchX = touchXF[0];243}244else {245self->selectionEnabled = false;246}247248if (keyDown.up || keyDown.down || keyDown.left || keyDown.right)249usePhysicalControls = true;250251if (self->state == 1 && keyPress.B) {252PlaySfxByName("Menu Back", false);253self->touchedBack = false;254self->state = INSTRUCTIONSCREEN_STATE_EXIT;255}256break;257}258259case INSTRUCTIONSCREEN_STATE_FLIP: {260if (!self->flipRight) {261self->rotationY -= (10.0 * Engine.deltaTime);262}263else {264self->rotationY += (10.0 * Engine.deltaTime);265}266267if (abs(self->rotationY) > (M_PI * 0.5)) {268self->state = INSTRUCTIONSCREEN_STATE_FINISHFLIP;269self->rotationY = self->rotationY < 0.0f ? -4.712389 : 4.712389;270switch (self->pageID) {271case 0:272SetStringToFont(helpText, strHelpText1, FONT_TEXT);273SetStringToFont8(self->pageIDText, "1 / 5", 2);274break;275276case 1:277if (Engine.gameDeviceType == RETRO_MOBILE)278SetStringToFont(helpText, strHelpText2, FONT_TEXT);279else280SetStringToFont8(helpText, " CONTROLS", FONT_TEXT);281SetStringToFont8(self->pageIDText, "2 / 5", FONT_TEXT);282break;283284case 2:285SetStringToFont(helpText, strHelpText3, 2);286SetStringToFont8(self->pageIDText, "3 / 5", FONT_TEXT);287break;288289case 3:290SetStringToFont(helpText, strHelpText4, 2);291SetStringToFont8(self->pageIDText, "4 / 5", FONT_TEXT);292break;293294case 4:295SetStringToFont(helpText, strHelpText5, 2);296SetStringToFont8(self->pageIDText, "5 / 5", FONT_TEXT);297break;298299default: break;300}301self->shownPage = self->pageID;302self->textY = 68.0;303self->textHeight = (GetTextHeight(helpText, FONT_TEXT, 0.14) - 152.0) + 68.0;304}305306NewRenderState();307MatrixRotateYF(&self->renderMatrix, self->rotationY);308MatrixTranslateXYZF(&self->matrixTemp, 0.0, -8.0, 160.0);309MatrixMultiplyF(&self->renderMatrix, &self->matrixTemp);310SetRenderMatrix(&self->renderMatrix);311break;312}313314case INSTRUCTIONSCREEN_STATE_FINISHFLIP: {315if (self->flipRight) {316self->rotationY += (10.0 * Engine.deltaTime);317if (self->rotationY > (M_PI_2)) {318self->state = INSTRUCTIONSCREEN_STATE_MAIN;319self->rotationY = 0.0;320}321}322else {323self->rotationY -= (10.0 * Engine.deltaTime);324if (self->rotationY < -(M_PI_2)) {325self->state = INSTRUCTIONSCREEN_STATE_MAIN;326self->rotationY = 0.0;327}328}329NewRenderState();330MatrixRotateYF(&self->renderMatrix, self->rotationY);331MatrixTranslateXYZF(&self->matrixTemp, 0.0, -8.0, 160.0);332MatrixMultiplyF(&self->renderMatrix, &self->matrixTemp);333SetRenderMatrix(&self->renderMatrix);334break;335}336337case INSTRUCTIONSCREEN_STATE_EXIT: {338if (self->arrowAlpha > 0)339self->arrowAlpha -= 8;340341if (self->timer < 0.2)342self->scale = fmaxf(self->scale + ((1.5f - self->scale) / ((Engine.deltaTime * 60.0) * 8.0)), 0.0);343else344self->scale = fmaxf(self->scale + ((-1.0f - self->scale) / ((Engine.deltaTime * 60.0) * 8.0)), 0.0);345346NewRenderState();347MatrixScaleXYZF(&self->renderMatrix, self->scale, self->scale, 1.0);348MatrixTranslateXYZF(&self->matrixTemp, 0.0, -8.0, 160.0);349MatrixMultiplyF(&self->renderMatrix, &self->matrixTemp);350SetRenderMatrix(&self->renderMatrix);351352memcpy(&self->labelPtr->renderMatrix, &self->renderMatrix, sizeof(MatrixF));353354self->timer += Engine.deltaTime;355if (self->timer > 0.5) {356optionsMenu->state = OPTIONSMENU_STATE_EXITSUBMENU;357RemoveNativeObject(self->labelPtr);358RemoveNativeObject(self);359return;360}361break;362}363default: break;364}365366RenderMesh(self->meshPanel, MESH_COLORS, false);367RenderTextClipped(helpText, FONT_TEXT, -138.0, self->textY, 8.0, 0.14, 255);368369switch (self->shownPage) {370case 0:371if (Engine.gameType == GAME_SONIC1) {372RenderImageClipped(0.0, self->textY - 36.0, 8.0, 0.3, 0.3, 72.0, 72.0, 144.0, 144.0, 4.0, 4.0, 255, self->textureHelp);373switch (Engine.language) {374default:375RenderImageClipped(0.0, self->textY - 164.0, 8.0, 0.3, 0.3, 72.0, 72.0, 144.0, 144.0, 312.0, 300.0, 255, self->textureHelp);376break;377378case RETRO_FR:379RenderImageClipped(0.0, self->textY - 172.0, 8.0, 0.3, 0.3, 72.0, 72.0, 144.0, 144.0, 312.0, 300.0, 255, self->textureHelp);380break;381382case RETRO_JP:383RenderImageClipped(0.0, self->textY - 248.0, 8.0, 0.3, 0.3, 72.0, 72.0, 144.0, 144.0, 312.0, 300.0, 255, self->textureHelp);384break;385386case RETRO_KO:387RenderImageClipped(0.0, self->textY - 268.0, 8.0, 0.3, 0.3, 72.0, 72.0, 144.0, 144.0, 312.0, 300.0, 255, self->textureHelp);388break;389}390}391else {392RenderImageClipped(0.0, self->textY - 36.0, 8.0, 0.3, 0.3, 72.0, 72.0, 144.0, 144.0, 312.0, 300.0, 255, self->textureHelp);393}394break;395396case 1:397if (Engine.gameDeviceType == RETRO_MOBILE) {398RenderImageClipped(-96.0, self->textY - 28.0, 8.0, 0.2, 0.2, 128.0, 128.0, 256.0, 256.0, 0.0, 0.0, 255, self->textureDPad);399RenderImageClipped(-96.0, self->textY - 28.0, 8.0, 0.2, 0.2, 84.0, 84.0, 168.0, 168.0, 16.0, 328.0, 255, self->textureDPad);400RenderImageClipped(-96.0, self->textY - 92.0, 8.0, 0.2, 0.2, 128.0, 128.0, 256.0, 256.0, 0.0, 0.0, 255, self->textureDPad);401RenderImageClipped(-96.0, self->textY - 92.0, 8.0, 0.2, 0.2, 128.0, 128.0, 256.0, 120.0, 256.0, 256.0, 255, self->textureDPad);402RenderImageClipped(-96.0, self->textY - 92.0, 8.0, 0.2, 0.2, 84.0, 104.0, 168.0, 168.0, 16.0, 328.0, 255, self->textureDPad);403RenderImageClipped(-96.0, self->textY - 156.0, 8.0, 0.2, 0.2, 128.0, 128.0, 256.0, 256.0, 0.0, 0.0, 255, self->textureDPad);404RenderImageClipped(-96.0, self->textY - 156.0, 8.0, 0.2, 0.2, 128.0, -8.0, 256.0, 120.0, 256.0, 392.0, 255, self->textureDPad);405RenderImageClipped(-96.0, self->textY - 156.0, 8.0, 0.2, 0.2, 84.0, 64.0, 168.0, 168.0, 16.0, 328.0, 255, self->textureDPad);406RenderImageClipped(-96.0, self->textY - 220.0, 8.0, 0.2, 0.2, 128.0, 128.0, 256.0, 256.0, 256.0, 0.0, 255, self->textureDPad);407RenderImageClipped(-96.0, self->textY - 220.0, 8.0, 0.25, 0.25, 84.0, 84.0, 168.0, 168.0, 16.0, 328.0, 255, self->textureDPad);408RenderImageClipped(-96.0, self->textY - 284.0, 8.0, 0.5, 0.5, 32.0, 32.0, 64.0, 64.0, 160.0, 258.0, 255, self->textureDPad);409}410else {411RenderImage(0.0, 0.0, 0.0, 0.275, 0.275, 512.0, 256.0, 1024.0, 512.0, 0.0, 0.0, 255, self->textureDPad);412}413break;414415case 2: break;416417case 3:418switch (Engine.language) {419default:420RenderImageClipped(0.0, self->textY - 128.0, 8.0, 0.3, 0.3, 253.0, 45.0, 506.0, 90.0, 155.0, 10.0, 255, self->textureHelp);421RenderImageClipped(0.0, self->textY - 220.0, 8.0, 0.3, 0.3, 24.0, 96.0, 48.0, 192.0, 4.0, 152.0, 255, self->textureHelp);422break;423424case RETRO_JP:425RenderImageClipped(0.0, self->textY - 112.0, 8.0, 0.3, 0.3, 253.0, 45.0, 506.0, 90.0, 155.0, 10.0, 255, self->textureHelp);426RenderImageClipped(0.0, self->textY - 232.0, 8.0, 0.3, 0.3, 24.0, 96.0, 48.0, 192.0, 4.0, 152.0, 255, self->textureHelp);427break;428429case RETRO_KO:430RenderImageClipped(0.0, self->textY - 132.0, 8.0, 0.3, 0.3, 253.0, 45.0, 506.0, 90.0, 155.0, 10.0, 255, self->textureHelp);431RenderImageClipped(0.0, self->textY - 232.0, 8.0, 0.3, 0.3, 24.0, 96.0, 48.0, 192.0, 4.0, 152.0, 255, self->textureHelp);432break;433434case RETRO_ZS:435RenderImageClipped(0.0, self->textY - 122.0, 8.0, 0.3, 0.3, 253.0, 45.0, 506.0, 90.0, 155.0, 10.0, 255, self->textureHelp);436RenderImageClipped(0.0, self->textY - 210.0, 8.0, 0.3, 0.3, 24.0, 96.0, 48.0, 192.0, 4.0, 152.0, 255, self->textureHelp);437break;438}439break;440441case 4:442RenderImageClipped(0.0, self->textY - 56.0, 8.0, 0.5, 0.5, 162.0, 96.0, 324.0, 192.0, 152.0, 104.0, 255, self->textureHelp);443444if (Engine.gameType == GAME_SONIC1) {445switch (Engine.language) {446default:447RenderImageClipped(0.0, self->textY - 188.0, 8.0, 0.3, 0.3, 204.0, 24.0, 408.0, 48.0, 16.0, 448.0, 255, self->textureHelp);448RenderImageClipped(0.0, self->textY - 240.0, 8.0, 0.3, 0.3, 36.0, 36.0, 72.0, 72.0, 4.0, 360.0, 255, self->textureHelp);449RenderImageClipped(0.0, self->textY - 288.0, 8.0, 0.3, 0.3, 42.0, 42.0, 84.0, 84.0, 56.0, 152.0, 255, self->textureHelp);450RenderImageClipped(0.0, self->textY - 336.0, 8.0, 0.3, 0.3, 36.0, 36.0, 72.0, 72.0, 80.0, 360.0, 255, self->textureHelp);451RenderImageClipped(0.0, self->textY - 380.0, 8.0, 0.3, 0.3, 76.0, 36.0, 152.0, 72.0, 156.0, 360.0, 255, self->textureHelp);452break;453454case RETRO_JP:455RenderImageClipped(0.0, (self->textY - 188.0) - 32.0, 8.0, 0.3, 0.3, 204.0, 24.0, 408.0, 48.0, 16.0, 448.0, 255,456self->textureHelp);457RenderImageClipped(0.0, (self->textY - 240.0) - 26.0, 8.0, 0.3, 0.3, 36.0, 36.0, 72.0, 72.0, 4.0, 360.0, 255,458self->textureHelp);459RenderImageClipped(0.0, (self->textY - 288.0) - 32.0, 8.0, 0.3, 0.3, 42.0, 42.0, 84.0, 84.0, 56.0, 152.0, 255,460self->textureHelp);461RenderImageClipped(0.0, (self->textY - 336.0) - 32.0, 8.0, 0.3, 0.3, 36.0, 36.0, 72.0, 72.0, 80.0, 360.0, 255,462self->textureHelp);463RenderImageClipped(0.0, (self->textY - 380.0) - 42.0, 8.0, 0.3, 0.3, 76.0, 36.0, 152.0, 72.0, 156.0, 360.0, 255,464self->textureHelp);465break;466467case RETRO_RU:468RenderImageClipped(0.0, self->textY - 204.0, 8.0, 0.3, 0.3, 204.0, 24.0, 408.0, 48.0, 16.0, 448.0, 255, self->textureHelp);469RenderImageClipped(0.0, self->textY - 256.0, 8.0, 0.3, 0.3, 36.0, 36.0, 72.0, 72.0, 4.0, 360.0, 255, self->textureHelp);470RenderImageClipped(0.0, self->textY - 304.0, 8.0, 0.3, 0.3, 42.0, 42.0, 84.0, 84.0, 56.0, 152.0, 255, self->textureHelp);471RenderImageClipped(0.0, self->textY - 352.0, 8.0, 0.3, 0.3, 36.0, 36.0, 72.0, 72.0, 80.0, 360.0, 255, self->textureHelp);472RenderImageClipped(0.0, self->textY - 396.0, 8.0, 0.3, 0.3, 76.0, 36.0, 152.0, 72.0, 156.0, 360.0, 255, self->textureHelp);473break;474475case RETRO_ZH:476RenderImageClipped(0.0, (self->textY - 188.0) - 22.0, 8.0, 0.3, 0.3, 204.0, 24.0, 408.0, 48.0, 16.0, 448.0, 255,477self->textureHelp);478RenderImageClipped(0.0, (self->textY - 240.0) - 20.0, 8.0, 0.3, 0.3, 36.0, 36.0, 72.0, 72.0, 4.0, 360.0, 255,479self->textureHelp);480RenderImageClipped(0.0, (self->textY - 288.0) - 22.0, 8.0, 0.3, 0.3, 42.0, 42.0, 84.0, 84.0, 56.0, 152.0, 255,481self->textureHelp);482RenderImageClipped(0.0, (self->textY - 336.0) - 22.0, 8.0, 0.3, 0.3, 36.0, 36.0, 72.0, 72.0, 80.0, 360.0, 255,483self->textureHelp);484RenderImageClipped(0.0, (self->textY - 380.0) - 22.0, 8.0, 0.3, 0.3, 76.0, 36.0, 152.0, 72.0, 156.0, 360.0, 255,485self->textureHelp);486break;487488case RETRO_ZS:489RenderImageClipped(0.0, self->textY - 196.0, 8.0, 0.3, 0.3, 204.0, 24.0, 408.0, 48.0, 16.0, 448.0, 255, self->textureHelp);490RenderImageClipped(0.0, self->textY - 240.0, 8.0, 0.3, 0.3, 36.0, 36.0, 72.0, 72.0, 4.0, 360.0, 255, self->textureHelp);491RenderImageClipped(0.0, self->textY - 288.0, 8.0, 0.3, 0.3, 42.0, 42.0, 84.0, 84.0, 56.0, 152.0, 255, self->textureHelp);492RenderImageClipped(0.0, self->textY - 336.0, 8.0, 0.3, 0.3, 36.0, 36.0, 72.0, 72.0, 80.0, 360.0, 255, self->textureHelp);493RenderImageClipped(0.0, self->textY - 380.0, 8.0, 0.3, 0.3, 76.0, 36.0, 152.0, 72.0, 156.0, 360.0, 255, self->textureHelp);494break;495}496}497break;498}499500NewRenderState();501SetRenderMatrix(NULL);502503if (self->touchedPrev)504RenderImageFlipH(-146.0, 0.0, 160.0, 0.2, 0.3, 64.0, 64.0, 128.0, 128.0, 0.0, 128.0, self->arrowAlpha, self->textureArrows);505else506RenderImageFlipH(-146.0, 0.0, 160.0, 0.2, 0.3, 64.0, 64.0, 128.0, 128.0, 0.0, 0.0, self->arrowAlpha, self->textureArrows);507508if (self->touchedNext)509RenderImage(146.0, 0.0, 160.0, 0.2, 0.3, 64.0, 64.0, 128.0, 128.0, 0.0, 128.0, self->arrowAlpha, self->textureArrows);510else511RenderImage(146.0, 0.0, 160.0, 0.2, 0.3, 64.0, 64.0, 128.0, 128.0, 0.0, 0.0, self->arrowAlpha, self->textureArrows);512513if (self->touchedBack)514RenderImage(128.0, -92.0, 160.0, 0.3, 0.3, 64.0, 64.0, 128.0, 128.0, 128.0, 128.0, self->arrowAlpha, self->textureArrows);515else516RenderImage(128.0, -92.0, 160.0, 0.3, 0.3, 64.0, 64.0, 128.0, 128.0, 128.0, 0.0, self->arrowAlpha, self->textureArrows);517518SetRenderVertexColor(0x00, 0x00, 0x40);519RenderText(self->pageIDText, FONT_TEXT, -18.0, -110.0, 160.0, 0.25, 255);520SetRenderVertexColor(0xFF, 0xFF, 0xFF);521}522523524