Files
MinecraftConsoles/Minecraft.Client/DefaultTexturePack.cpp
ModMaker101 a9be52c41a Project modernization (#630)
* Fixed boats falling and a TP glitch #266

* Replaced every C-style cast with C++ ones

* Replaced every C-style cast with C++ ones

* Fixed boats falling and a TP glitch #266

* Updated NULL to nullptr and fixing some type issues

* Modernized and fixed a few bugs

- Replaced most instances of `NULL` with `nullptr`.
- Replaced most `shared_ptr(new ...)` with `make_shared`.
- Removed the `nullptr` macro as it was interfering with the actual nullptr keyword in some instances.

* Fixing more conflicts

* Replace int loops with size_t and start work on overrides
2026-03-08 09:56:03 +07:00

132 lines
3.4 KiB
C++

#include "stdafx.h"
#include "DefaultTexturePack.h"
#include "Textures.h"
#include "..\Minecraft.World\StringHelpers.h"
DefaultTexturePack::DefaultTexturePack() : AbstractTexturePack(0, nullptr, L"Minecraft", nullptr)
{
// 4J Stu - These calls need to be in the most derived version of the class
loadIcon();
loadName(); // 4J-PB - added so the PS3 can have localised texture names'
loadDescription();
loadColourTable();
}
void DefaultTexturePack::loadIcon()
{
#ifdef _XBOX
// 4J Stu - Temporary only
const DWORD LOCATOR_SIZE = 256; // Use this to allocate space to hold a ResourceLocator string
WCHAR szResourceLocator[ LOCATOR_SIZE ];
const ULONG_PTR c_ModuleHandle = (ULONG_PTR)GetModuleHandle(nullptr);
swprintf(szResourceLocator, LOCATOR_SIZE ,L"section://%X,%ls#%ls",c_ModuleHandle,L"media", L"media/Graphics/TexturePackIcon.png");
UINT size = 0;
HRESULT hr = XuiResourceLoadAllNoLoc(szResourceLocator, &m_iconData, &size);
m_iconSize = size;
#else
if(app.hasArchiveFile(L"Graphics\\TexturePackIcon.png"))
{
byteArray ba = app.getArchiveFile(L"Graphics\\TexturePackIcon.png");
m_iconData = ba.data;
m_iconSize = ba.length;
}
#endif
}
void DefaultTexturePack::loadDescription()
{
desc1 = L"LOCALISE ME: The default look of Minecraft";
}
void DefaultTexturePack::loadName()
{
texname = L"Minecraft";
}
bool DefaultTexturePack::hasFile(const wstring &name)
{
// return DefaultTexturePack::class->getResourceAsStream(name) != null;
return true;
}
bool DefaultTexturePack::isTerrainUpdateCompatible()
{
return true;
}
InputStream *DefaultTexturePack::getResourceImplementation(const wstring &name)// throws FileNotFoundException
{
wstring wDrive = L"";
// Make the content package point to to the UPDATE: drive is needed
#ifdef _XBOX
#ifdef _TU_BUILD
wDrive=L"UPDATE:\\res";
#else
wDrive=L"GAME:\\res\\TitleUpdate\\res";
#endif
#elif __PS3__
char *pchUsrDir;
if(app.GetBootedFromDiscPatch())
{
const char *pchTextureName=wstringtofilename(name);
pchUsrDir = app.GetBDUsrDirPath(pchTextureName);
app.DebugPrintf("DefaultTexturePack::getResourceImplementation - texture %s - Drive - %s\n",pchTextureName,pchUsrDir);
}
else
{
const char *pchTextureName=wstringtofilename(name);
pchUsrDir=getUsrDirPath();
app.DebugPrintf("DefaultTexturePack::getResourceImplementation - texture %s - Drive - %s\n",pchTextureName,pchUsrDir);
}
wstring wstr (pchUsrDir, pchUsrDir+strlen(pchUsrDir));
wDrive = wstr + L"\\Common\\res\\TitleUpdate\\res";
#elif __PSVITA__
/*
char *pchUsrDir=getUsrDirPath();
wstring wstr (pchUsrDir, pchUsrDir+strlen(pchUsrDir));
wDrive = wstr + L"Common\\res\\TitleUpdate\\res";
*/
wDrive = L"Common\\res\\TitleUpdate\\res";
#else
wDrive = L"Common\\res\\TitleUpdate\\res";
#endif
InputStream *resource = InputStream::getResourceAsStream(wDrive + name);
//InputStream *stream = DefaultTexturePack::class->getResourceAsStream(name);
//if (stream == nullptr)
//{
// throw new FileNotFoundException(name);
//}
//return stream;
return resource;
}
void DefaultTexturePack::loadUI()
{
loadDefaultUI();
AbstractTexturePack::loadUI();
}
void DefaultTexturePack::unloadUI()
{
#ifdef _XBOX
// Unload skin
XuiFreeVisuals(L"TexturePack");
XuiFreeVisuals(L"");
CXuiSceneBase::GetInstance()->SetVisualPrefix(L"");
CXuiSceneBase::GetInstance()->SkinChanged(CXuiSceneBase::GetInstance()->m_hObj);
#endif
AbstractTexturePack::unloadUI();
}