mirror of
https://github.com/GabsPuNs/Project-Zenith-Main.git
synced 2026-05-25 20:24:42 +00:00
Trial code is almost cleaned. Consoles are now unused. stdafx unbloat for Minecraft.Client
200 lines
5.3 KiB
C++
200 lines
5.3 KiB
C++
#include "stdafx.h"
|
|
#include "UI.h"
|
|
#include "TexturePack.h"
|
|
#include "TexturePackRepository.h"
|
|
#include "Minecraft.h"
|
|
#include "IUIScene_StartGame.h"
|
|
|
|
IUIScene_StartGame::IUIScene_StartGame(int iPad, UILayer *parentLayer) : UIScene(iPad, parentLayer)
|
|
{
|
|
m_bIgnoreInput = false;
|
|
m_iTexturePacksNotInstalled=0;
|
|
m_texturePackDescDisplayed = false;
|
|
m_bShowTexturePackDescription = false;
|
|
m_iSetTexturePackDescription = -1;
|
|
|
|
Minecraft *pMinecraft = Minecraft::GetInstance();
|
|
m_currentTexturePackIndex = pMinecraft->skins->getTexturePackIndex(0);
|
|
}
|
|
|
|
void IUIScene_StartGame::HandleDLCMountingComplete()
|
|
{
|
|
Minecraft *pMinecraft = Minecraft::GetInstance();
|
|
// clear out the current texture pack list
|
|
m_texturePackList.clearSlots();
|
|
|
|
int texturePacksCount = pMinecraft->skins->getTexturePackCount();
|
|
|
|
for(unsigned int i = 0; i < texturePacksCount; ++i)
|
|
{
|
|
TexturePack *tp = pMinecraft->skins->getTexturePackByIndex(i);
|
|
|
|
DWORD dwImageBytes;
|
|
PBYTE pbImageData = tp->getPackIcon(dwImageBytes);
|
|
|
|
if(dwImageBytes > 0 && pbImageData)
|
|
{
|
|
wchar_t imageName[64];
|
|
swprintf(imageName,64,L"tpack%08x",tp->getId());
|
|
registerSubstitutionTexture(imageName, pbImageData, dwImageBytes);
|
|
m_texturePackList.addPack(i,imageName);
|
|
}
|
|
}
|
|
|
|
m_iTexturePacksNotInstalled=0;
|
|
|
|
// 4J-PB - there may be texture packs we don't have, so use the info from TMS for this
|
|
// REMOVE UNTIL WORKING
|
|
DLC_INFO *pDLCInfo=nullptr;
|
|
|
|
// first pass - look to see if there are any that are not in the list
|
|
bool bTexturePackAlreadyListed;
|
|
bool bNeedToGetTPD=false;
|
|
|
|
for(unsigned int i = 0; i < app.GetDLCInfoTexturesOffersCount(); ++i)
|
|
{
|
|
bTexturePackAlreadyListed=false;
|
|
|
|
ULONGLONG ull=app.GetDLCInfoTexturesFullOffer(i);
|
|
pDLCInfo=app.GetDLCInfoForFullOfferID(ull);
|
|
|
|
for(unsigned int i = 0; i < texturePacksCount; ++i)
|
|
{
|
|
TexturePack *tp = pMinecraft->skins->getTexturePackByIndex(i);
|
|
if(pDLCInfo->iConfig==tp->getDLCParentPackId())
|
|
{
|
|
bTexturePackAlreadyListed=true;
|
|
}
|
|
}
|
|
if(bTexturePackAlreadyListed==false)
|
|
{
|
|
// some missing
|
|
bNeedToGetTPD=true;
|
|
|
|
m_iTexturePacksNotInstalled++;
|
|
}
|
|
}
|
|
|
|
#if TO_BE_IMPLEMENTED
|
|
if(bNeedToGetTPD==true)
|
|
{
|
|
// add a TMS request for them
|
|
app.DebugPrintf("+++ Adding TMSPP request for texture pack data\n");
|
|
app.AddTMSPPFileTypeRequest(e_DLC_TexturePackData);
|
|
if(m_iConfigA!=nullptr)
|
|
{
|
|
delete m_iConfigA;
|
|
}
|
|
m_iConfigA= new int [m_iTexturePacksNotInstalled];
|
|
m_iTexturePacksNotInstalled=0;
|
|
|
|
for(unsigned int i = 0; i < app.GetDLCInfoTexturesOffersCount(); ++i)
|
|
{
|
|
bTexturePackAlreadyListed=false;
|
|
ULONGLONG ull=app.GetDLCInfoTexturesFullOffer(i);
|
|
pDLCInfo=app.GetDLCInfoForFullOfferID(ull);
|
|
for(unsigned int i = 0; i < texturePacksCount; ++i)
|
|
{
|
|
TexturePack *tp = pMinecraft->skins->getTexturePackByIndex(i);
|
|
if(pDLCInfo->iConfig==tp->getDLCParentPackId())
|
|
{
|
|
bTexturePackAlreadyListed=true;
|
|
}
|
|
}
|
|
if(bTexturePackAlreadyListed==false)
|
|
{
|
|
m_iConfigA[m_iTexturePacksNotInstalled++]=pDLCInfo->iConfig;
|
|
}
|
|
}
|
|
}
|
|
#endif
|
|
m_currentTexturePackIndex = pMinecraft->skins->getTexturePackIndex(0);
|
|
UpdateTexturePackDescription(m_currentTexturePackIndex);
|
|
|
|
m_texturePackList.selectSlot(m_currentTexturePackIndex);
|
|
m_bIgnoreInput=false;
|
|
app.m_dlcManager.checkForCorruptDLCAndAlert();
|
|
}
|
|
|
|
void IUIScene_StartGame::handleSelectionChanged(F64 selectedId)
|
|
{
|
|
m_iSetTexturePackDescription = static_cast<int>(selectedId);
|
|
|
|
if(!m_texturePackDescDisplayed)
|
|
{
|
|
m_bShowTexturePackDescription = true;
|
|
}
|
|
}
|
|
|
|
void IUIScene_StartGame::UpdateTexturePackDescription(int index)
|
|
{
|
|
TexturePack *tp = Minecraft::GetInstance()->skins->getTexturePackByIndex(index);
|
|
|
|
if(tp!=nullptr)
|
|
{
|
|
m_labelTexturePackName.setLabel(tp->getName());
|
|
m_labelTexturePackDescription.setLabel(tp->getDesc1());
|
|
|
|
DWORD dwImageBytes;
|
|
PBYTE pbImageData = tp->getPackIcon(dwImageBytes);
|
|
|
|
wchar_t imageName[64];
|
|
swprintf(imageName,64,L"tpack%08x",tp->getId());
|
|
m_bitmapTexturePackIcon.setTextureName(imageName);
|
|
|
|
pbImageData = tp->getPackComparison(dwImageBytes);
|
|
|
|
if(dwImageBytes > 0 && pbImageData)
|
|
{
|
|
swprintf(imageName,64,L"texturePackComparison%08x",tp->getId());
|
|
registerSubstitutionTexture(imageName, pbImageData, dwImageBytes);
|
|
m_bitmapComparison.setTextureName(imageName);
|
|
}
|
|
else
|
|
{
|
|
m_bitmapComparison.setTextureName(L"");
|
|
}
|
|
}
|
|
}
|
|
|
|
void IUIScene_StartGame::UpdateCurrentTexturePack(int iSlot)
|
|
{
|
|
m_currentTexturePackIndex = iSlot;
|
|
TexturePack *tp = Minecraft::GetInstance()->skins->getTexturePackByIndex(m_currentTexturePackIndex);
|
|
|
|
// if the texture pack is null, you don't have it yet
|
|
if(tp!=nullptr)
|
|
m_MoreOptionsParams.dwTexturePack = tp->getId();
|
|
}
|
|
|
|
int IUIScene_StartGame::TrialTexturePackWarningReturned(void *pParam,int iPad,C4JStorage::EMessageResult result)
|
|
{
|
|
IUIScene_StartGame* pScene = static_cast<IUIScene_StartGame *>(pParam);
|
|
|
|
if(result==C4JStorage::EMessage_ResultAccept)
|
|
{
|
|
pScene->checkStateAndStartGame();
|
|
}
|
|
else
|
|
{
|
|
pScene->m_bIgnoreInput=false;
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
int IUIScene_StartGame::UnlockTexturePackReturned(void *pParam,int iPad,C4JStorage::EMessageResult result)
|
|
{
|
|
IUIScene_StartGame* pScene = static_cast<IUIScene_StartGame *>(pParam);
|
|
|
|
pScene->m_bIgnoreInput = false;
|
|
|
|
return 0;
|
|
}
|
|
|
|
int IUIScene_StartGame::TexturePackDialogReturned(void *pParam,int iPad,C4JStorage::EMessageResult result)
|
|
{
|
|
IUIScene_StartGame *pClass = static_cast<IUIScene_StartGame *>(pParam);
|
|
|
|
pClass->m_bIgnoreInput=false;
|
|
return 0;
|
|
} |