fix various missing methods, update StringTable implementation
This commit is contained in:
@@ -27,6 +27,8 @@
|
||||
#include "GameRules/GameRuleManager.h"
|
||||
#include "../Minecraft.Client/Rendering/Models/SkinBox.h"
|
||||
#include "../Minecraft.Client/Utils/ArchiveFile.h"
|
||||
#include "../Minecraft.World/Entities/MinecartHopper.h"
|
||||
|
||||
|
||||
typedef struct _JoinFromInviteData {
|
||||
std::uint32_t dwUserIndex; // dwUserIndex
|
||||
@@ -44,7 +46,7 @@ class SignTileEntity;
|
||||
class BrewingStandTileEntity;
|
||||
class CommandBlockEntity;
|
||||
class HopperTileEntity;
|
||||
class MinecartHopper;
|
||||
// class MinecartHopper;
|
||||
class EntityHorse;
|
||||
class BeaconTileEntity;
|
||||
class LocalPlayer;
|
||||
|
||||
@@ -74,6 +74,8 @@ public:
|
||||
std::uint32_t getLicenseMask() { return m_dwLicenseMask; }
|
||||
|
||||
std::wstring getName() { return m_packName; }
|
||||
|
||||
void UpdateLanguage();
|
||||
#ifdef _XBOX_ONE
|
||||
std::wstring getPurchaseOfferId() { return m_wsProductId; }
|
||||
#else
|
||||
|
||||
@@ -442,14 +442,15 @@ void UIScene_JoinMenu::JoinGame(UIScene_JoinMenu* pClass) {
|
||||
if (!ProfileManager.AllowedToPlayMultiplayer(
|
||||
ProfileManager.GetPrimaryPad()))
|
||||
noPrivileges = true;
|
||||
dwLocalUsersMask |= CGameNetworkManager::GetLocalPlayerMask(
|
||||
ProfileManager.GetPrimaryPad());
|
||||
|
||||
isSignedInLive = ProfileManager.IsSignedInLive(
|
||||
ProfileManager.GetPrimaryPad());
|
||||
isSignedInLive =
|
||||
ProfileManager.IsSignedInLive(ProfileManager.GetPrimaryPad());
|
||||
#ifdef __PSVITA__
|
||||
if (CGameNetworkManager::usingAdhocMode() &&
|
||||
SQRNetworkManager_AdHoc_Vita::GetAdhocStatus())
|
||||
isSignedInLive = true;
|
||||
if (CGameNetworkManager::usingAdhocMode() &&
|
||||
SQRNetworkManager_AdHoc_Vita::GetAdhocStatus())
|
||||
isSignedInLive = true;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -102,6 +102,9 @@ public:
|
||||
// INPUT
|
||||
virtual void handleInput(int iPad, int key, bool repeat, bool pressed,
|
||||
bool released, bool& handled);
|
||||
// 4jcraft: made public for thumbnail thunk
|
||||
static int AvatarReturned(LPVOID lpParam, PBYTE pbThumbnail,
|
||||
DWORD dwThumbnailBytes);
|
||||
|
||||
private:
|
||||
#ifdef _XBOX_ONE
|
||||
@@ -110,8 +113,6 @@ private:
|
||||
#else
|
||||
static int SignInReturned(void* pParam, bool bContinue, int iPad);
|
||||
#endif
|
||||
static int AvatarReturned(LPVOID lpParam, PBYTE pbThumbnail,
|
||||
DWORD dwThumbnailBytes);
|
||||
|
||||
void updateState();
|
||||
void setControllerState(int iPad, EControllerStatus state);
|
||||
|
||||
@@ -8,6 +8,17 @@ StringTable::StringTable(void) {}
|
||||
StringTable::StringTable(std::uint8_t* pbData, unsigned int dataSize) {
|
||||
src = byteArray(pbData, dataSize);
|
||||
|
||||
ProcessStringTableData();
|
||||
}
|
||||
|
||||
void StringTable::ReloadStringTable() {
|
||||
m_stringsMap.clear();
|
||||
m_stringsVec.clear();
|
||||
|
||||
ProcessStringTableData();
|
||||
}
|
||||
|
||||
void StringTable::ProcessStringTableData(void) {
|
||||
ByteArrayInputStream bais(src);
|
||||
DataInputStream dis(&bais);
|
||||
|
||||
@@ -28,8 +39,8 @@ StringTable::StringTable(std::uint8_t* pbData, unsigned int dataSize) {
|
||||
app.getLocale(locales);
|
||||
|
||||
bool foundLang = false;
|
||||
__int64 bytesToSkip = 0;
|
||||
int selectedDataSize = 0;
|
||||
int64_t bytesToSkip = 0;
|
||||
int dataSize = 0;
|
||||
|
||||
//
|
||||
for (AUTO_VAR(it_locales, locales.begin());
|
||||
@@ -40,7 +51,7 @@ StringTable::StringTable(std::uint8_t* pbData, unsigned int dataSize) {
|
||||
if (it->first.compare(*it_locales) == 0) {
|
||||
app.DebugPrintf("StringTable:: Found language '%ls'.\n",
|
||||
it_locales->c_str());
|
||||
selectedDataSize = it->second;
|
||||
dataSize = it->second;
|
||||
foundLang = true;
|
||||
break;
|
||||
}
|
||||
@@ -56,7 +67,7 @@ StringTable::StringTable(std::uint8_t* pbData, unsigned int dataSize) {
|
||||
if (foundLang) {
|
||||
dis.skip(bytesToSkip);
|
||||
|
||||
byteArray langData(selectedDataSize);
|
||||
byteArray langData(dataSize);
|
||||
dis.read(langData);
|
||||
|
||||
dis.close();
|
||||
@@ -74,6 +85,9 @@ StringTable::StringTable(std::uint8_t* pbData, unsigned int dataSize) {
|
||||
std::wstring langId = dis2.readUTF();
|
||||
int totalStrings = dis2.readInt();
|
||||
|
||||
app.DebugPrintf("IsStatic=%d totalStrings = %d\n", isStatic ? 1 : 0,
|
||||
totalStrings);
|
||||
|
||||
if (!isStatic) {
|
||||
for (int i = 0; i < totalStrings; ++i) {
|
||||
std::wstring stringId = dis2.readUTF();
|
||||
|
||||
@@ -59,6 +59,7 @@ public:
|
||||
StringTable(void);
|
||||
StringTable(std::uint8_t* pbData, unsigned int dataSize);
|
||||
~StringTable(void);
|
||||
void ReloadStringTable();
|
||||
|
||||
void getData(std::uint8_t** ppData, unsigned int* pSize);
|
||||
|
||||
@@ -69,4 +70,5 @@ public:
|
||||
|
||||
private:
|
||||
// std::wstring getLangId(DWORD dwLanguage=0);
|
||||
void ProcessStringTableData(void);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user