Revert "Revert "Win64: configurable username (username.txt) and persistent ga…" (#235)
This reverts commit 7f7d99501c.
This commit is contained in:
@@ -10,11 +10,46 @@
|
||||
#include "..\..\Minecraft.World\BiomeSource.h"
|
||||
#include "..\..\Minecraft.World\LevelType.h"
|
||||
|
||||
wstring g_playerName;
|
||||
|
||||
CConsoleMinecraftApp app;
|
||||
|
||||
static void LoadPlayerName()
|
||||
{
|
||||
if (!g_playerName.empty()) return;
|
||||
g_playerName = L"Windows";
|
||||
|
||||
char exePath[MAX_PATH] = {};
|
||||
GetModuleFileNameA(NULL, exePath, MAX_PATH);
|
||||
char *lastSlash = strrchr(exePath, '\\');
|
||||
if (lastSlash) *(lastSlash + 1) = '\0';
|
||||
char filePath[MAX_PATH] = {};
|
||||
_snprintf_s(filePath, sizeof(filePath), _TRUNCATE, "%susername.txt", exePath);
|
||||
|
||||
FILE *f = NULL;
|
||||
if (fopen_s(&f, filePath, "r") == 0 && f)
|
||||
{
|
||||
char buf[128] = {};
|
||||
if (fgets(buf, sizeof(buf), f))
|
||||
{
|
||||
int len = (int)strlen(buf);
|
||||
while (len > 0 && (buf[len-1] == '\n' || buf[len-1] == '\r' || buf[len-1] == ' '))
|
||||
buf[--len] = '\0';
|
||||
if (len > 0)
|
||||
{
|
||||
wchar_t wbuf[128] = {};
|
||||
mbstowcs(wbuf, buf, 127);
|
||||
g_playerName = wbuf;
|
||||
}
|
||||
}
|
||||
fclose(f);
|
||||
}
|
||||
}
|
||||
|
||||
CConsoleMinecraftApp::CConsoleMinecraftApp() : CMinecraftApp()
|
||||
{
|
||||
m_bShutdown = false;
|
||||
LoadPlayerName();
|
||||
}
|
||||
|
||||
void CConsoleMinecraftApp::SetRichPresenceContext(int iPad, int contextId)
|
||||
@@ -35,9 +70,27 @@ void CConsoleMinecraftApp::FatalLoadError()
|
||||
|
||||
void CConsoleMinecraftApp::CaptureSaveThumbnail()
|
||||
{
|
||||
RenderManager.CaptureThumbnail(&m_ThumbnailBuffer);
|
||||
}
|
||||
void CConsoleMinecraftApp::GetSaveThumbnail(PBYTE *pbData,DWORD *pdwSize)
|
||||
{
|
||||
// On a save caused by a create world, the thumbnail capture won't have happened
|
||||
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();
|
||||
}
|
||||
else
|
||||
{
|
||||
// No capture happened (e.g. first save on world creation) leave thumbnail as NULL
|
||||
if (pbData) *pbData = NULL;
|
||||
if (pdwSize) *pdwSize = 0;
|
||||
}
|
||||
}
|
||||
void CConsoleMinecraftApp::ReleaseSaveThumbnail()
|
||||
{
|
||||
@@ -57,8 +110,8 @@ void CConsoleMinecraftApp::TemporaryCreateGameStart()
|
||||
Minecraft *pMinecraft=Minecraft::GetInstance();
|
||||
app.ReleaseSaveThumbnail();
|
||||
ProfileManager.SetLockedProfile(0);
|
||||
extern wchar_t g_Win64UsernameW[17];
|
||||
pMinecraft->user->name = g_Win64UsernameW;
|
||||
LoadPlayerName();
|
||||
pMinecraft->user->name = g_playerName;
|
||||
app.ApplyGameSettingsChanged(0);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////////// From CScene_MultiGameJoinLoad::OnInit
|
||||
|
||||
Reference in New Issue
Block a user