This code was not tested and breaks in Release builds, reverting to restore
functionality of the nightly. All in-game menus do not work and generating
a world crashes.
This reverts commit a9be52c41a.
132 lines
3.3 KiB
C++
132 lines
3.3 KiB
C++
#include "stdafx.h"
|
|
#include "DefaultTexturePack.h"
|
|
#include "Textures.h"
|
|
#include "..\Minecraft.World\StringHelpers.h"
|
|
|
|
|
|
DefaultTexturePack::DefaultTexturePack() : AbstractTexturePack(0, NULL, L"Minecraft", NULL)
|
|
{
|
|
// 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(NULL);
|
|
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 == NULL)
|
|
//{
|
|
// 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();
|
|
}
|