Merge branch 'main' into dec-2014
This commit is contained in:
22
.github/pull_request_template.md
vendored
Normal file
22
.github/pull_request_template.md
vendored
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# Pull Request Template
|
||||||
|
|
||||||
|
## Description
|
||||||
|
Briefly describe the changes this PR introduces.
|
||||||
|
|
||||||
|
## Changes
|
||||||
|
|
||||||
|
### Previous Behavior
|
||||||
|
*Describe how the code behaved before this change.*
|
||||||
|
|
||||||
|
### Root Cause
|
||||||
|
*Explain the core reason behind the erroneous/old behavior (e.g., bug, design flaw, missing edge case).*
|
||||||
|
|
||||||
|
### New Behavior
|
||||||
|
*Describe how the code behaves after this change.*
|
||||||
|
|
||||||
|
### Fix Implementation
|
||||||
|
*Detail exactly how the issue was resolved (specific code changes, algorithms, logic flows).*
|
||||||
|
|
||||||
|
## Related Issues
|
||||||
|
- Fixes #[issue-number]
|
||||||
|
- Related to #[issue-number]
|
||||||
@@ -384,7 +384,10 @@ DWORD DLCPack::getFileIndexAt(DLCManager::EDLCType type, const wstring &path, bo
|
|||||||
|
|
||||||
bool DLCPack::hasPurchasedFile(DLCManager::EDLCType type, const wstring &path)
|
bool DLCPack::hasPurchasedFile(DLCManager::EDLCType type, const wstring &path)
|
||||||
{
|
{
|
||||||
if(type == DLCManager::e_DLCType_All)
|
// Patch all DLC to be "purchased"
|
||||||
|
return true;
|
||||||
|
|
||||||
|
/*if(type == DLCManager::e_DLCType_All)
|
||||||
{
|
{
|
||||||
app.DebugPrintf("Unimplemented\n");
|
app.DebugPrintf("Unimplemented\n");
|
||||||
#ifndef _CONTENT_PACKAGE
|
#ifndef _CONTENT_PACKAGE
|
||||||
@@ -408,7 +411,7 @@ bool DLCPack::hasPurchasedFile(DLCManager::EDLCType type, const wstring &path)
|
|||||||
{
|
{
|
||||||
//purchased
|
//purchased
|
||||||
return true;
|
return true;
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void DLCPack::UpdateLanguage()
|
void DLCPack::UpdateLanguage()
|
||||||
|
|||||||
@@ -205,7 +205,9 @@ bool DLCSkinFile::getParameterAsBool(DLCManager::EDLCParameterType type)
|
|||||||
switch(type)
|
switch(type)
|
||||||
{
|
{
|
||||||
case DLCManager::e_DLCParamType_Free:
|
case DLCManager::e_DLCParamType_Free:
|
||||||
return m_bIsFree;
|
// Patch all DLC to be "paid"
|
||||||
|
return false;
|
||||||
|
// return m_bIsFree;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ UIScene_LoadMenu::UIScene_LoadMenu(int iPad, void *initData, UILayer *parentLaye
|
|||||||
|
|
||||||
LoadMenuInitData *params = (LoadMenuInitData *)initData;
|
LoadMenuInitData *params = (LoadMenuInitData *)initData;
|
||||||
|
|
||||||
//m_labelGameName.init(app.GetString(IDS_WORLD_NAME));
|
m_labelGameName.init(app.GetString(IDS_WORLD_NAME));
|
||||||
m_labelSeed.init(L"");
|
m_labelSeed.init(L"");
|
||||||
m_labelCreatedMode.init(app.GetString(IDS_CREATED_IN_SURVIVAL));
|
m_labelCreatedMode.init(app.GetString(IDS_CREATED_IN_SURVIVAL));
|
||||||
|
|
||||||
|
|||||||
@@ -1134,7 +1134,13 @@ void UIScene_SkinSelectMenu::updatePackDisplay()
|
|||||||
if(m_packIndex >= SKIN_SELECT_MAX_DEFAULTS)
|
if(m_packIndex >= SKIN_SELECT_MAX_DEFAULTS)
|
||||||
{
|
{
|
||||||
DLCPack *thisPack = app.m_dlcManager.getPack(m_packIndex - SKIN_SELECT_MAX_DEFAULTS, DLCManager::e_DLCType_Skin);
|
DLCPack *thisPack = app.m_dlcManager.getPack(m_packIndex - SKIN_SELECT_MAX_DEFAULTS, DLCManager::e_DLCType_Skin);
|
||||||
setCentreLabel(thisPack->getName().c_str());
|
// Fix the incorrect string type on title to display correctly
|
||||||
|
const char* name = static_cast<const char*>(thisPack->getName().c_str());
|
||||||
|
int len = MultiByteToWideChar(CP_UTF8, 0, name, -1, NULL, 0);
|
||||||
|
std::wstring wName(len, 0);
|
||||||
|
MultiByteToWideChar(CP_UTF8, 0, name, -1, &wName[0], len);
|
||||||
|
setCentreLabel(wName.c_str());
|
||||||
|
//setCentreLabel(thisPack->getName().c_str());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1153,7 +1159,13 @@ void UIScene_SkinSelectMenu::updatePackDisplay()
|
|||||||
if(nextPackIndex >= SKIN_SELECT_MAX_DEFAULTS)
|
if(nextPackIndex >= SKIN_SELECT_MAX_DEFAULTS)
|
||||||
{
|
{
|
||||||
DLCPack *thisPack = app.m_dlcManager.getPack(nextPackIndex - SKIN_SELECT_MAX_DEFAULTS, DLCManager::e_DLCType_Skin);
|
DLCPack *thisPack = app.m_dlcManager.getPack(nextPackIndex - SKIN_SELECT_MAX_DEFAULTS, DLCManager::e_DLCType_Skin);
|
||||||
setRightLabel(thisPack->getName().c_str());
|
// Fix the incorrect string type on title to display correctly
|
||||||
|
const char* name = static_cast<const char*>(thisPack->getName().c_str());
|
||||||
|
int len = MultiByteToWideChar(CP_UTF8, 0, name, -1, NULL, 0);
|
||||||
|
std::wstring wName(len, 0);
|
||||||
|
MultiByteToWideChar(CP_UTF8, 0, name, -1, &wName[0], len);
|
||||||
|
setRightLabel(wName.c_str());
|
||||||
|
//setRightLabel(thisPack->getName().c_str());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -1172,7 +1184,13 @@ void UIScene_SkinSelectMenu::updatePackDisplay()
|
|||||||
if(previousPackIndex >= SKIN_SELECT_MAX_DEFAULTS)
|
if(previousPackIndex >= SKIN_SELECT_MAX_DEFAULTS)
|
||||||
{
|
{
|
||||||
DLCPack *thisPack = app.m_dlcManager.getPack(previousPackIndex - SKIN_SELECT_MAX_DEFAULTS, DLCManager::e_DLCType_Skin);
|
DLCPack *thisPack = app.m_dlcManager.getPack(previousPackIndex - SKIN_SELECT_MAX_DEFAULTS, DLCManager::e_DLCType_Skin);
|
||||||
setLeftLabel(thisPack->getName().c_str());
|
// Fix the incorrect string type on title to display correctly
|
||||||
|
const char* name = static_cast<const char*>(thisPack->getName().c_str());
|
||||||
|
int len = MultiByteToWideChar(CP_UTF8, 0, name, -1, NULL, 0);
|
||||||
|
std::wstring wName(len, 0);
|
||||||
|
MultiByteToWideChar(CP_UTF8, 0, name, -1, &wName[0], len);
|
||||||
|
setLeftLabel(wName.c_str());
|
||||||
|
//setLeftLabel(thisPack->getName().c_str());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1468,7 +1468,12 @@ if not exist "$(TargetDir)\savedata" mkdir "$(TargetDir)\savedata"</Command>
|
|||||||
<PostBuildEvent>
|
<PostBuildEvent>
|
||||||
<Message>Copying sound assets to output directory</Message>
|
<Message>Copying sound assets to output directory</Message>
|
||||||
<Command>xcopy /q /y /i /s /e "$(ProjectDir)Durango\Sound" "$(OutDir)Durango\Sound"
|
<Command>xcopy /q /y /i /s /e "$(ProjectDir)Durango\Sound" "$(OutDir)Durango\Sound"
|
||||||
xcopy /q /y /i /s /e "$(ProjectDir)music" "$(OutDir)music"</Command>
|
xcopy /q /y /i /s /e "$(ProjectDir)music" "$(OutDir)music"
|
||||||
|
xcopy /q /y /i /s /e "$(ProjectDir)Windows64\GameHDD" "$(OutDir)Windows64\GameHDD"
|
||||||
|
xcopy /q /y /i /s /e "$(ProjectDir)Common\Media" "$(OutDir)Common\Media"
|
||||||
|
xcopy /q /y /i /s /e "$(ProjectDir)Common\res" "$(OutDir)Common\res"
|
||||||
|
xcopy /q /y /i /s /e "$(ProjectDir)Common\Trial" "$(OutDir)Common\Trial"
|
||||||
|
xcopy /q /y /i /s /e "$(ProjectDir)Common\Tutorial" "$(OutDir)Common\Tutorial"</Command>
|
||||||
</PostBuildEvent>
|
</PostBuildEvent>
|
||||||
<ImageXex>
|
<ImageXex>
|
||||||
<ConfigurationFile>$(ProjectDir)xbox\xex-dev.xml</ConfigurationFile>
|
<ConfigurationFile>$(ProjectDir)xbox\xex-dev.xml</ConfigurationFile>
|
||||||
@@ -1602,7 +1607,12 @@ xcopy /q /y /i /s /e $(ProjectDir)DurangoMedia\CU $(LayoutDir)Image\Loose\CU</C
|
|||||||
<PostBuildEvent>
|
<PostBuildEvent>
|
||||||
<Message>Copying sound assets to output directory</Message>
|
<Message>Copying sound assets to output directory</Message>
|
||||||
<Command>xcopy /q /y /i /s /e "$(ProjectDir)Durango\Sound" "$(OutDir)Durango\Sound"
|
<Command>xcopy /q /y /i /s /e "$(ProjectDir)Durango\Sound" "$(OutDir)Durango\Sound"
|
||||||
xcopy /q /y /i /s /e "$(ProjectDir)music" "$(OutDir)music"</Command>
|
xcopy /q /y /i /s /e "$(ProjectDir)music" "$(OutDir)music"
|
||||||
|
xcopy /q /y /i /s /e "$(ProjectDir)Windows64\GameHDD" "$(OutDir)Windows64\GameHDD"
|
||||||
|
xcopy /q /y /i /s /e "$(ProjectDir)Common\Media" "$(OutDir)Common\Media"
|
||||||
|
xcopy /q /y /i /s /e "$(ProjectDir)Common\res" "$(OutDir)Common\res"
|
||||||
|
xcopy /q /y /i /s /e "$(ProjectDir)Common\Trial" "$(OutDir)Common\Trial"
|
||||||
|
xcopy /q /y /i /s /e "$(ProjectDir)Common\Tutorial" "$(OutDir)Common\Tutorial"</Command>
|
||||||
</PostBuildEvent>
|
</PostBuildEvent>
|
||||||
<ImageXex>
|
<ImageXex>
|
||||||
<ConfigurationFile>$(ProjectDir)xbox\xex-dev.xml</ConfigurationFile>
|
<ConfigurationFile>$(ProjectDir)xbox\xex-dev.xml</ConfigurationFile>
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ CConsoleMinecraftApp app;
|
|||||||
|
|
||||||
CConsoleMinecraftApp::CConsoleMinecraftApp() : CMinecraftApp()
|
CConsoleMinecraftApp::CConsoleMinecraftApp() : CMinecraftApp()
|
||||||
{
|
{
|
||||||
|
m_bShutdown = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CConsoleMinecraftApp::SetRichPresenceContext(int iPad, int contextId)
|
void CConsoleMinecraftApp::SetRichPresenceContext(int iPad, int contextId)
|
||||||
@@ -26,8 +27,7 @@ void CConsoleMinecraftApp::StoreLaunchData()
|
|||||||
}
|
}
|
||||||
void CConsoleMinecraftApp::ExitGame()
|
void CConsoleMinecraftApp::ExitGame()
|
||||||
{
|
{
|
||||||
// This is likely not the correct way to exit the game, but it will do for now
|
m_bShutdown = true;
|
||||||
ExitProcess(0);
|
|
||||||
}
|
}
|
||||||
void CConsoleMinecraftApp::FatalLoadError()
|
void CConsoleMinecraftApp::FatalLoadError()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ public:
|
|||||||
|
|
||||||
// original code
|
// original code
|
||||||
virtual void TemporaryCreateGameStart();
|
virtual void TemporaryCreateGameStart();
|
||||||
|
|
||||||
|
bool m_bShutdown;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern CConsoleMinecraftApp app;
|
extern CConsoleMinecraftApp app;
|
||||||
|
|||||||
@@ -716,26 +716,6 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
|
|||||||
UNREFERENCED_PARAMETER(hPrevInstance);
|
UNREFERENCED_PARAMETER(hPrevInstance);
|
||||||
UNREFERENCED_PARAMETER(lpCmdLine);
|
UNREFERENCED_PARAMETER(lpCmdLine);
|
||||||
|
|
||||||
|
|
||||||
WCHAR exePath[MAX_PATH] = { 0 };
|
|
||||||
GetModuleFileNameW(NULL, exePath, MAX_PATH);
|
|
||||||
WCHAR* lastSlash = wcsrchr(exePath, L'\\');
|
|
||||||
if (lastSlash) {
|
|
||||||
*lastSlash = L'\0';
|
|
||||||
|
|
||||||
WCHAR devCheckPath[MAX_PATH] = { 0 };
|
|
||||||
swprintf_s(devCheckPath, MAX_PATH, L"%s\\..\\..\\Minecraft.Client\\Minecraft.Client.vcxproj", exePath);
|
|
||||||
|
|
||||||
if (GetFileAttributesW(devCheckPath) != INVALID_FILE_ATTRIBUTES) {
|
|
||||||
WCHAR projectPath[MAX_PATH] = { 0 };
|
|
||||||
swprintf_s(projectPath, MAX_PATH, L"%s\\..\\..\\Minecraft.Client", exePath);
|
|
||||||
SetCurrentDirectoryW(projectPath);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
SetCurrentDirectoryW(exePath);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Declare DPI awareness so GetSystemMetrics returns physical pixels
|
// Declare DPI awareness so GetSystemMetrics returns physical pixels
|
||||||
SetProcessDPIAware();
|
SetProcessDPIAware();
|
||||||
g_iScreenWidth = GetSystemMetrics(SM_CXSCREEN);
|
g_iScreenWidth = GetSystemMetrics(SM_CXSCREEN);
|
||||||
@@ -1054,7 +1034,7 @@ int APIENTRY _tWinMain(_In_ HINSTANCE hInstance,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
MSG msg = {0};
|
MSG msg = {0};
|
||||||
while( WM_QUIT != msg.message )
|
while( WM_QUIT != msg.message && !app.m_bShutdown)
|
||||||
{
|
{
|
||||||
if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
|
if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
|
||||||
{
|
{
|
||||||
|
|||||||
17
README.md
17
README.md
@@ -15,6 +15,23 @@ This project contains the source code of Minecraft Legacy Console Edition v1.3.0
|
|||||||
- Added fullscreen mode support (toggle using F11)
|
- Added fullscreen mode support (toggle using F11)
|
||||||
- Disabled V-Sync for better performance
|
- Disabled V-Sync for better performance
|
||||||
- Auto-detect native monitor resolution with DPI awareness, resulting in sharper visuals on high-resolution displays
|
- Auto-detect native monitor resolution with DPI awareness, resulting in sharper visuals on high-resolution displays
|
||||||
|
- Full support for keyboard and mouse input
|
||||||
|
|
||||||
|
## Controls (Keyboard & Mouse)
|
||||||
|
|
||||||
|
- **Movement**: `W` `A` `S` `D`
|
||||||
|
- **Jump / Fly (Up)**: `Space`
|
||||||
|
- **Sneak / Fly (Down)**: `Shift` (Hold)
|
||||||
|
- **Sprint**: `Ctrl` (Hold)
|
||||||
|
- **Inventory**: `E`
|
||||||
|
- **Drop Item**: `Q`
|
||||||
|
- **Crafting**: `C`
|
||||||
|
- **Toggle View (FPS/TPS)**: `F5`
|
||||||
|
- **Fullscreen**: `F11`
|
||||||
|
- **Pause Menu**: `Esc`
|
||||||
|
- **Attack / Destroy**: `Left Click`
|
||||||
|
- **Use / Place**: `Right Click`
|
||||||
|
- **Select Item**: `Mouse Wheel` or keys `1` to `9`
|
||||||
|
|
||||||
## Build & Run
|
## Build & Run
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user