#include "stdafx.h" #include "Windows64_Minecraft.h" #include "..\Common\Consoles_App.h" #include "..\User.h" #include "..\..\Minecraft.Client\Minecraft.h" #include "..\..\Minecraft.Client\MinecraftServer.h" #include "..\..\Minecraft.Client\PlayerList.h" #include "..\..\Minecraft.Client\ServerPlayer.h" #include "..\..\Minecraft.World\Level.h" #include "..\..\Minecraft.World\LevelSettings.h" #include "..\..\Minecraft.World\BiomeSource.h" #include "..\..\Minecraft.World\LevelType.h" CConsoleMinecraftApp app; CConsoleMinecraftApp::CConsoleMinecraftApp() : CMinecraftApp() { } void CConsoleMinecraftApp::SetRichPresenceContext(int iPad, int contextId) { ProfileManager.SetRichPresenceContextValue(iPad,CONTEXT_GAME_STATE,contextId); } void CConsoleMinecraftApp::StoreLaunchData() { } void CConsoleMinecraftApp::ExitGame() { if (g_pd3dDevice != NULL) { g_pd3dDevice->Release(); g_pd3dDevice = NULL; } CleanupDevice(); ExitProcess(0); } void CConsoleMinecraftApp::FatalLoadError() { //str1k3r - very much inspired by the PS3 FatalLoadError :3 wchar_t *aStrings[2]; app.DebugPrintf("CConsoleMinecraftApp::FatalLoadError\n"); switch (XGetLanguage()) { case XC_LANGUAGE_GERMAN: aStrings[0] = L"Ladefehler"; aStrings[1] = L"Minecraft: Cafeberry Edition konnte nicht geladen werden und kann daher nicht fortgesetzt werden."; break; case XC_LANGUAGE_SPANISH: aStrings[0] = L"Error al cargar"; aStrings[1] = L"Se ha producido un error al cargar Minecraft: Cafeberry Edition y no es posible continuar."; break; case XC_LANGUAGE_FRENCH: aStrings[0] = L"Échec du chargement"; aStrings[1] = L"Le chargement de Minecraft: Cafeberry Edition a échoué : impossible de continuer."; break; case XC_LANGUAGE_ITALIAN: aStrings[0] = L"Errore caricamento"; aStrings[1] = L"Caricamento Minecraft: Cafeberry Edition non riuscito, impossibile continuare."; break; case XC_LANGUAGE_JAPANESE: aStrings[0] = L"ロード エラー"; aStrings[1] = L"Minecraft Cafeberry 版のロードに失敗しました。続行できません"; break; case XC_LANGUAGE_KOREAN: aStrings[0] = L"불러오기 오류"; aStrings[1] = L"Minecraft: Cafeberry Edition 을 불러오는 중에 오류가 발생하여 계속할 수 없습니다."; break; case XC_LANGUAGE_PORTUGUESE: aStrings[0] = L"Erro de Carregamento"; aStrings[1] = L"Não foi possível carregar Minecraft: Cafeberry Edition e não é possível continuar."; break; case XC_LANGUAGE_RUSSIAN: aStrings[0] = L"Ошибка при загрузке"; aStrings[1] = L"Не удалось загрузить игру Minecraft: Cafeberry Edition. Продолжить загрузку невозможно."; break; case XC_LANGUAGE_TCHINESE: aStrings[0] = L"載入錯誤"; aStrings[1] = L"無法載入「Minecraft: Cafeberry Edition」,因此無法繼續。"; break; case XC_LANGUAGE_DUTCH: aStrings[0] = L"Fout tijdens het laden"; aStrings[1] = L"Minecraft: Cafeberry Edition kan niet worden geladen."; break; case XC_LANGUAGE_FINISH: aStrings[0] = L"Latausvirhe"; aStrings[1] = L"Minecraft: Cafeberry Edition -pelin lataaminen ei onnistunut, eikä sitä voi jatkaa."; break; case XC_LANGUAGE_SWEDISH: aStrings[0] = L"Laddningsfel"; aStrings[1] = L"Minecraft: Cafeberry Edition kunde inte laddas och kan inte fortsätta."; break; case XC_LANGUAGE_DANISH: aStrings[0] = L"Indlæsningsfejl"; aStrings[1] = L"Minecraft: Cafeberry Edition kunne ikke blive indlæst og kan derfor ikke fortsætte."; break; case XC_LANGUAGE_BNORWEGIAN: aStrings[0] = L"Innlastingsfeil"; aStrings[1] = L"Feil under innlasting av Minecraft: Cafeberry Edition. Kan ikke fortsette."; break; case XC_LANGUAGE_POLISH: aStrings[0] = L"Błąd wczytywania"; aStrings[1] = L"Wystąpił błąd podczas wczytywania Minecraft: Edycja Cafeberry. Dalsze działanie jest niemożliwe."; break; case XC_LANGUAGE_TURKISH: aStrings[0] = L"Yükleme Hatası"; aStrings[1] = L"Minecraft: Cafeberry Edition yüklenemedi ve devam edemiyor."; break; case XC_LOCALE_LATIN_AMERICA: aStrings[0] = L"Error al cargar"; aStrings[1] = L"Se produjo un error al cargar Minecraft: Cafeberry Edition y no es posible continuar."; break; default: aStrings[0] = L"Loading Error"; aStrings[1] = L"Minecraft: Cafeberry Edition has failed to load, and cannot continue."; break; } //str1k3r - yes, i made them all say femboy edition (piebot said no :c) int result = MessageBoxW( NULL, aStrings[1], aStrings[0], MB_OK ); if (result == IDOK) { ExitGame(); } } void CConsoleMinecraftApp::CaptureSaveThumbnail() { RenderManager.CaptureThumbnail(&m_ThumbnailBuffer); } void CConsoleMinecraftApp::GetSaveThumbnail(PBYTE *pbData,DWORD *pdwSize) { if (m_ThumbnailBuffer.Allocated()) { if (pbData) { *pbData = new BYTE[m_ThumbnailBuffer.GetBufferSize()]; *pdwSize = m_ThumbnailBuffer.GetBufferSize(); memcpy(*pbData, m_ThumbnailBuffer.GetBufferPointer(), *pdwSize); } m_ThumbnailBuffer.Release(); } } void CConsoleMinecraftApp::ReleaseSaveThumbnail() { } void CConsoleMinecraftApp::TemporaryCreateGameStart() { ////////////////////////////////////////////////////////////////////////////////////////////// From CScene_Main::OnInit app.setLevelGenerationOptions(NULL); // From CScene_Main::RunPlayGame Minecraft *pMinecraft=Minecraft::GetInstance(); app.ReleaseSaveThumbnail(); ProfileManager.SetLockedProfile(0); pMinecraft->user->name = L"Windows64"; app.ApplyGameSettingsChanged(0); ////////////////////////////////////////////////////////////////////////////////////////////// From CScene_MultiGameJoinLoad::OnInit MinecraftServer::resetFlags(); // From CScene_MultiGameJoinLoad::OnNotifyPressEx app.SetTutorialMode( false ); app.SetCorruptSaveDeleted(false); ////////////////////////////////////////////////////////////////////////////////////////////// From CScene_MultiGameCreate::CreateGame app.ClearTerrainFeaturePosition(); wstring wWorldName = L"TestWorld"; StorageManager.ResetSaveData(); StorageManager.SetSaveTitle(wWorldName.c_str()); bool isFlat = false; __int64 seedValue = 0; // BiomeSource::findSeed(isFlat?LevelType::lvl_flat:LevelType::lvl_normal); // 4J - was (new Random())->nextLong() - now trying to actually find a seed to suit our requirements NetworkGameInitData *param = new NetworkGameInitData(); param->seed = seedValue; param->saveData = NULL; app.SetGameHostOption(eGameHostOption_Difficulty,0); app.SetGameHostOption(eGameHostOption_FriendsOfFriends,0); app.SetGameHostOption(eGameHostOption_Gamertags,1); app.SetGameHostOption(eGameHostOption_BedrockFog,1); app.SetGameHostOption(eGameHostOption_GameType,GameType::CREATIVE->getId() ); // LevelSettings::GAMETYPE_SURVIVAL app.SetGameHostOption(eGameHostOption_LevelType, 0 ); app.SetGameHostOption(eGameHostOption_Structures, 1 ); app.SetGameHostOption(eGameHostOption_BonusChest, 0 ); app.SetGameHostOption(eGameHostOption_PvP, 1); app.SetGameHostOption(eGameHostOption_TrustPlayers, 1 ); app.SetGameHostOption(eGameHostOption_FireSpreads, 1 ); app.SetGameHostOption(eGameHostOption_TNT, 1 ); app.SetGameHostOption(eGameHostOption_HostCanFly, 1); app.SetGameHostOption(eGameHostOption_HostCanChangeHunger, 1); app.SetGameHostOption(eGameHostOption_HostCanBeInvisible, 1 ); param->settings = app.GetGameHostOption( eGameHostOption_All ); g_NetworkManager.FakeLocalPlayerJoined(); LoadingInputParams *loadingParams = new LoadingInputParams(); loadingParams->func = &CGameNetworkManager::RunNetworkGameThreadProc; loadingParams->lpParam = (LPVOID)param; // Reset the autosave time app.SetAutosaveTimerTime(); C4JThread* thread = new C4JThread(loadingParams->func, loadingParams->lpParam, "RunNetworkGame"); thread->Run(); } void CConsoleMinecraftApp::GetScreenshot(int iPad,PBYTE *pbData,DWORD *pdwSize) { } std::wstring CConsoleMinecraftApp::UTF8ToWide(const char* utf8) { int size = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, nullptr, 0); std::wstring wstr(size, 0); MultiByteToWideChar(CP_UTF8, 0, utf8, -1, &wstr[0], size); wstr.resize(size - 1); return wstr; }