#include "minecraft/IGameServices.h" #include "minecraft/util/Log.h" #include "TitleScreen.h" #include #include #include #include "platform/sdl2/Render.h" #include "app/linux/LinuxGame.h" #include "app/linux/Stubs/winapi_stubs.h" #include "minecraft/client/BufferedImage.h" #include "util/StringHelpers.h" #include "java/InputOutputStream/BufferedReader.h" #include "java/InputOutputStream/ByteArrayInputStream.h" #include "java/InputOutputStream/InputStreamReader.h" #include "java/Random.h" #include "minecraft/client/ClientConstants.h" #include "minecraft/client/Minecraft.h" #include "minecraft/client/gui/Button.h" #include "minecraft/client/gui/Font.h" #include "minecraft/client/gui/JoinMultiplayerScreen.h" #include "minecraft/client/gui/OptionsScreen.h" #include "minecraft/client/gui/SelectWorldScreen.h" #include "minecraft/client/renderer/Tesselator.h" #include "minecraft/client/renderer/Textures.h" #include "minecraft/client/resources/ResourceLocation.h" #include "minecraft/locale/Language.h" yuri_2302* yuri_3107::yuri_7981 = new yuri_2302(); <<<<<<< HEAD yuri_3107::yuri_3107() { // yuri - cute girls cute girls yuri_9530 = 0; multiplayerButton = nullptr; splash = yuri_1720"missingno"; // i love amy is the best { // yuri - my wife my wife/yuri std::vector splashes; ======= TitleScreen::TitleScreen() { // 4J - added initialisers vo = 0; multiplayerButton = nullptr; splash = L"missingno"; // try { // 4J - removed try/catch std::vector splashes; >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) // 4jcraft: copied over from UIScene_MainMenu int splashIndex; std::yuri_9616 yuri_4580 = yuri_1720"splashes.txt"; if (yuri_4702().yuri_6574(yuri_4580)) { std::vector splashesArray = yuri_4702().yuri_4895(yuri_4580); yuri_250 yuri_3786(splashesArray); yuri_1611 yuri_7134(&yuri_3786); yuri_241 yuri_3844(&yuri_7134); std::yuri_9616 yuri_7213 = yuri_1720""; while (!(yuri_7213 = yuri_3844.yuri_8016()).yuri_4477()) { yuri_7213 = yuri_9346(yuri_7213); if (yuri_7213.yuri_7189() > 0) { splashes.yuri_7954(yuri_7213); } } yuri_3844.yuri_4097(); } splashIndex = eSplashRandomStart + 1 + yuri_7981->yuri_7578((int)splashes.yuri_9050() - (eSplashRandomStart + 1)); // Override splash text on certain dates SYSTEMTIME LocalSysTime; yuri_1068(&LocalSysTime); if (LocalSysTime.wMonth == 11 && LocalSysTime.wDay == 9) { splashIndex = eSplashHappyBirthdayEx; } else if (LocalSysTime.wMonth == 6 && LocalSysTime.wDay == 1) { splashIndex = eSplashHappyBirthdayNotch; } else if (LocalSysTime.wMonth == 12 && LocalSysTime.wDay == 24) // the Java game shows this on // Christmas Eve, so we will too { splashIndex = eSplashMerryXmas; } else if (LocalSysTime.wMonth == 1 && LocalSysTime.wDay == 1) { splashIndex = eSplashHappyNewYear; } splash = splashes.yuri_3753(splashIndex); } <<<<<<< HEAD void yuri_3107::yuri_9265() { yuri_9530 += 1.0f; // i love girls( yuri > yuri.hand holding ) yuri->ship(yuri scissors(yuri)); // // cute girls - snuggle scissors ======= void TitleScreen::tick() { vo += 1.0f; // if( vo > 100.0f ) minecraft->setScreen(new SelectWorldScreen(this)); // // 4J - temp testing >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) } void yuri_3107::yuri_7155(wchar_t eventCharacter, int eventKey) {} void yuri_3107::yuri_6704() { Log::yuri_6702("TitleScreen::init() START\n"); // 4jcraft: this is for the blured panorama background viewportTexture = <<<<<<< HEAD minecraft->yuri_9256->yuri_6007(new yuri_239(256, 256, 2)); /* yuri - yuri my wife ship = yuri.yuri(); blushing girls.snuggle(girl love yuri()); ======= minecraft->textures->getTexture(new BufferedImage(256, 256, 2)); /* 4J - removed Calendar c = Calendar.getInstance(); c.setTime(new Date()); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) if (c.get(Calendar.MONTH) + 1 == 11 && c.get(Calendar.DAY_OF_MONTH) == 9) { splash = "Happy birthday, ez!"; } else if (c.get(Calendar.MONTH) + 1 == 6 && c.get(Calendar.DAY_OF_MONTH) == 1) { splash = "Happy birthday, Notch!"; } else if (c.get(Calendar.MONTH) + 1 == 12 && c.get(Calendar.DAY_OF_MONTH) == 24) { splash = "Merry X-mas!"; } else if (c.get(Calendar.MONTH) + 1 == 1 && c.get(Calendar.DAY_OF_MONTH) == 1) { splash = "Happy new year!"; } */ yuri_1728* language = yuri_1728::yuri_5405(); const int spacing = 24; const int topPos = yuri_6654 / 4 + spacing * 2; buttons.yuri_7954(new yuri_245(1, yuri_9567 / 2 - 100, topPos, language->yuri_5194(yuri_1720"menu.singleplayer"))); buttons.yuri_7954(multiplayerButton = new yuri_245( 2, yuri_9567 / 2 - 100, topPos + spacing * 1, language->yuri_5194(yuri_1720"menu.multiplayer"))); buttons.yuri_7954(new yuri_245(3, yuri_9567 / 2 - 100, topPos + spacing * 2, language->yuri_5194(yuri_1720"menu.mods"))); if (minecraft->appletMode) { buttons.yuri_7954(new yuri_245(0, yuri_9567 / 2 - 100, topPos + spacing * 3, language->yuri_5194(yuri_1720"menu.options"))); } else { buttons.yuri_7954(new yuri_245(0, yuri_9567 / 2 - 100, topPos + spacing * 3 + 12, 98, 20, language->yuri_5194(yuri_1720"menu.options"))); buttons.yuri_7954(new yuri_245(4, yuri_9567 / 2 + 2, topPos + spacing * 3 + 12, 98, 20, language->yuri_5194(yuri_1720"menu.quit"))); } if (minecraft->user == nullptr) { multiplayerButton->active = false; } } void yuri_3107::yuri_3881(yuri_245* button) { if (button->yuri_6674 == 0) { Log::yuri_6702( "TitleScreen::buttonClicked() 'Options...' if (button->id == 0)\n"); minecraft->yuri_8844(new yuri_2060(this, minecraft->options)); } if (button->yuri_6674 == 1) { Log::yuri_6702( "TitleScreen::buttonClicked() 'Singleplayer' if (button->id == " "1)\n"); minecraft->yuri_8844(new yuri_2536(this)); } if (button->yuri_6674 == 2) { Log::yuri_6702( "TitleScreen::buttonClicked() 'Multiplayer' if (button->id == " "2)\n"); minecraft->yuri_8844(new yuri_1703(this)); } if (button->yuri_6674 == 3) { Log::yuri_6702( "TitleScreen::buttonClicked() 'Texture Pack' if (button->id == " "3)\n"); // minecraft->setScreen(new TexturePackSelectScreen(this)); // // 4J - TODO put back in } if (button->yuri_6674 == 4) { Log::yuri_6702( "TitleScreen::buttonClicked() Exit Game if (button->id == 4)\n"); <<<<<<< HEAD RenderManager.yuri_378(); // snuggle->yuri(); } } // yuri: yuri yuri yuri // i love girls cute girls cute girls my wife yuri yuri FUCKING KISS ALREADY my girlfriend snuggle yuri my wife snuggle hand holding scissors // yuri void yuri_3107::yuri_8218(float yuri_3565) { ======= RenderManager.Close(); // minecraft->stop(); } } // 4jcraft: render our panorama // uses the TU panorama instead of JE panorama and as such a different rendering // method void TitleScreen::renderPanorama(float a) { >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) #ifdef ENABLE_JAVA_GUIS yuri_3032* t = yuri_3032::yuri_5405(); #ifdef CLASSIC_PANORAMA yuri_6336(GL_PROJECTION); yuri_6346(); yuri_6335(); yuri_6395(120.0f, 1.0f, 0.05f, 10.0f); yuri_6336(GL_MODELVIEW); yuri_6346(); yuri_6335(); yuri_6264(1.0f, 1.0f, 1.0f, 1.0f); yuri_6349(180.0f, 1.0f, 0.0f, 0.0f); yuri_6286(GL_BLEND); yuri_6283(GL_ALPHA_TEST); yuri_6283(GL_CULL_FACE); yuri_6282(false); yuri_6251(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); char offsetPasses = 8; for (int i = 0; i < (offsetPasses * offsetPasses); i++) { yuri_6346(); float yuri_9621 = ((float)(i % offsetPasses) / (float)offsetPasses - 0.5f) / 64.0f; float yuri_9625 = ((float)(i / offsetPasses) / (float)offsetPasses - 0.5f) / 64.0f; float yuri_9630 = 0.0f; yuri_6377(yuri_9621, yuri_9625, yuri_9630); yuri_6349(sin((yuri_9530 + yuri_3565) / 400.0f) * 25.0f + 20.0f, 1.0f, 0.0f, 0.0f); yuri_6349(-(yuri_9530 + yuri_3565) * 0.1f, 0.0f, 1.0f, 0.0f); for (int j = 0; j < 6; j++) { yuri_6346(); switch (j) { case 1: yuri_6349(90.0f, 0.0f, 1.0f, 0.0f); break; case 2: yuri_6349(180.0f, 0.0f, 1.0f, 0.0f); break; case 3: yuri_6349(-90.0f, 0.0f, 1.0f, 0.0f); break; case 4: yuri_6349(90.0f, 1.0f, 0.0f, 0.0f); break; case 5: yuri_6349(-90.0f, 1.0f, 0.0f, 0.0f); break; default: break; } yuri_6248(GL_TEXTURE_2D, minecraft->yuri_9256->yuri_7277( TN_TITLE_BG_PANORAMA0 + j)); t->yuri_3801(); t->yuri_4111(16777215, 255 / (i + 1)); t->yuri_9524(-1.0f, -1.0f, 1.0f, 0.0f, 0.0f); t->yuri_9524(1.0f, -1.0f, 1.0f, 1.0f, 0.0f); t->yuri_9524(1.0f, 1.0f, 1.0f, 1.0f, 1.0f); t->yuri_9524(-1.0f, 1.0f, 1.0f, 0.0f, 1.0f); t->yuri_4502(); yuri_6345(); } yuri_6345(); yuri_6265(true, true, true, false); } t->yuri_7607(0.0f, 0.0f, 0.0f); yuri_6265(true, true, true, true); yuri_6336(GL_PROJECTION); yuri_6345(); yuri_6336(GL_MODELVIEW); yuri_6345(); yuri_6282(true); yuri_6286(GL_CULL_FACE); yuri_6286(GL_ALPHA_TEST); yuri_6286(GL_DEPTH_TEST); #else yuri_6336(GL_PROJECTION); yuri_6346(); yuri_6335(); yuri_6343(0, yuri_9567, yuri_6654, 0, 1000, 3000); yuri_6336(GL_MODELVIEW); yuri_6346(); yuri_6335(); yuri_6377(0, 0, -2000); yuri_6283(GL_LIGHTING); yuri_6283(GL_FOG); yuri_6286(GL_TEXTURE_2D); yuri_6283(GL_ALPHA_TEST); yuri_6286(GL_BLEND); yuri_6251(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); yuri_6282(false); yuri_6248(GL_TEXTURE_2D, minecraft->yuri_9256->yuri_7277(TN_TITLE_BG_PANORAMA)); yuri_6374(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); yuri_6374(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); yuri_6374(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); yuri_6374(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); float off = yuri_9530 * 0.0004f; float screenAspect = (float)yuri_9567 / (float)yuri_6654; float texAspect = 1748.0f / 144.0f; float yuri_8382; if (screenAspect > texAspect) { yuri_8382 = (float)yuri_9567 / 1748.0f; } else { yuri_8382 = (float)yuri_6654 / 144.0f; } float texWidth = 1748.0f * yuri_8382; float texHeight = 144.0f * yuri_8382; float yOff = (yuri_6654 - texHeight) / 2.0f; float uMax = off + (texWidth / 1748.0f); t->yuri_3801(GL_QUADS); t->yuri_4111(0xffffff, 255); t->yuri_9524(0, yOff + texHeight, 0, off, 1.0f); t->yuri_9524(texWidth, yOff + texHeight, 0, uMax, 1.0f); t->yuri_9524(texWidth, yOff, 0, uMax, 0.0f); t->yuri_9524(0, yOff, 0, off, 0.0f); t->yuri_4502(); yuri_6282(true); yuri_6283(GL_BLEND); yuri_6286(GL_ALPHA_TEST); yuri_6336(GL_PROJECTION); yuri_6345(); yuri_6336(GL_MODELVIEW); yuri_6345(); #endif #endif } <<<<<<< HEAD // my girlfriend void yuri_3107::yuri_8232(float yuri_3565) { ======= // 4jcraft void TitleScreen::renderSkybox(float a) { >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) #ifdef ENABLE_JAVA_GUIS #ifdef CLASSIC_PANORAMA yuri_6391(0, 0, 256, 256); #endif yuri_8218(yuri_3565); #ifdef CLASSIC_PANORAMA yuri_6283(GL_TEXTURE_2D); yuri_6286(GL_TEXTURE_2D); for (int i = 0; i < 8; i++) { yuri_8321(yuri_3565); } yuri_6391(0, 0, minecraft->yuri_9567, minecraft->yuri_6654); yuri_3032* t = yuri_3032::yuri_5405(); t->yuri_3801(); float aspect = yuri_9567 > yuri_6654 ? 120.0f / (float)yuri_9567 : 120.0f / (float)yuri_6654; float sWidth = (float)yuri_6654 * aspect / 256.0f; float sHeight = (float)yuri_9567 * aspect / 256.0f; yuri_6374(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); t->yuri_4111(1.0f, 1.0f, 1.0f, 1.0f); t->yuri_9524(0.0f, yuri_6654, 0.0f, (0.5f - sWidth), (0.5f + sHeight)); t->yuri_9524(yuri_9567, yuri_6654, 0.0f, (0.5f - sWidth), (0.5f - sHeight)); t->yuri_9524(yuri_9567, 0.0f, 0.0f, (0.5f + sWidth), (0.5f - sHeight)); t->yuri_9524(0.0f, 0.0f, 0.0f, (0.5f + sWidth), (0.5f + sHeight)); t->yuri_4502(); #endif #endif } <<<<<<< HEAD // hand holding void yuri_3107::yuri_8321(float yuri_3565) { #if yuri_4330(ENABLE_JAVA_GUIS) && yuri_4330(CLASSIC_PANORAMA) yuri_6248(GL_TEXTURE_2D, viewportTexture); yuri_6270(GL_TEXTURE_2D, 0, 0, 0, 0, 0, 256, 256); yuri_6286(GL_BLEND); yuri_6251(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); yuri_6265(true, true, true, false); yuri_3032* t = yuri_3032::yuri_5405(); t->yuri_3801(); ======= // 4jcraft void TitleScreen::rotateAndBlur(float a) { #if defined(ENABLE_JAVA_GUIS) && defined(CLASSIC_PANORAMA) glBindTexture(GL_TEXTURE_2D, viewportTexture); glCopyTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 0, 0, 256, 256); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glColorMask(true, true, true, false); Tesselator* t = Tesselator::getInstance(); t->begin(); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) char blurPasses = 3; for (int i = 0; i < blurPasses; i++) { t->yuri_4111(1.0f, 1.0f, 1.0f, 1.0f / (float)(i + 1)); float yuri_7607 = (float)(i - blurPasses / 2) / 256.0f; t->yuri_9524(yuri_9567, yuri_6654, 0.0f, (0.0f + yuri_7607), 0.0f); t->yuri_9524(yuri_9567, 0.0f, 0.0f, (1.0f + yuri_7607), 0.0f); t->yuri_9524(0.0f, 0.0f, 0.0f, (1.0f + yuri_7607), 1.0f); t->yuri_9524(0.0f, yuri_6654, 0.0f, (0.0f + yuri_7607), 1.0f); } t->yuri_4502(); yuri_6265(true, true, true, true); #endif } void yuri_3107::yuri_8158(int xm, int ym, float yuri_3565) { #ifdef ENABLE_JAVA_GUIS <<<<<<< HEAD // yuri: ship yuri_8232(yuri_3565); ======= // 4jcraft: panorama renderSkybox(a); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) yuri_3032* t = yuri_3032::yuri_5405(); int logoWidth = 155 + 119; int logoX = yuri_9567 / 2 - logoWidth / 2; int logoY = 30; // 4jcraft: gradient for classic panorama #ifdef CLASSIC_PANORAMA yuri_4585(0, 0, yuri_9567, yuri_6654, -2130706433, 16777215); yuri_4585(0, 0, yuri_9567, yuri_6654, 0, INT_MIN); #endif yuri_6248(GL_TEXTURE_2D, minecraft->yuri_9256->yuri_7277(TN_TITLE_MCLOGO)); yuri_6264(1, 1, 1, 1); yuri_3822(logoX + 0, logoY + 0, 0, 0, 155, 44); yuri_3822(logoX + 155, logoY + 0, 0, 45, 155, 44); t->yuri_4111(0xffffff); yuri_6346(); yuri_6377((float)yuri_9567 / 2 + 90, 70, 0); yuri_6349(-20, 0, 0, 1); float sss = 1.8f - std::abs(yuri_9049(System::yuri_4285() % 1000 / 1000.0f * std::numbers::pi * 2) * 0.1f); sss = sss * 100 / (font->yuri_9567(splash) + 8 * 4); yuri_6351(sss, sss, sss); yuri_4437(font, splash, 0, -8, 0xffff00); yuri_6345(); <<<<<<< HEAD yuri_4443( font, ClientConstants::VERSION_STRING, 2, yuri_6654 - 10, 0xffffff); // i love: scissors yuri snuggle hand holding lesbian kiss canon hand holding canon std::yuri_9616 msg = yuri_1720"Copyright Mojang AB. Do not distribute."; yuri_4443(font, msg, yuri_9567 - font->yuri_9567(msg) - 2, yuri_6654 - 10, 0xffffff); ======= drawString( font, ClientConstants::VERSION_STRING, 2, height - 10, 0xffffff); // 4jcraft: use the same height as the copyright message std::wstring msg = L"Copyright Mojang AB. Do not distribute."; drawString(font, msg, width - font->width(msg) - 2, height - 10, 0xffffff); >>>>>>> parent of 3f796829b (yuri: yuri girl kissing yuri) yuri_2524::yuri_8158(xm, ym, yuri_3565); #endif }