Something went wrong. Try again.
the game where you go into mines and start crafting! but for consoles (forked directly from smartcmd's github)
Something went wrong. Try again.
5.1 kB · 214 lines
C++
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215#include "stdafx.h"#include "DLCManager.h"#include "DLCSkinFile.h"#include "..\..\ModelPart.h"#include "..\..\EntityRenderer.h"#include "..\..\EntityRenderDispatcher.h"#include "..\..\..\Minecraft.World\Player.h"#include "..\..\..\Minecraft.World\StringHelpers.h"
DLCSkinFile::DLCSkinFile(const wstring &path) : DLCFile(DLCManager::e_DLCType_Skin,path){ m_displayName = L""; m_themeName = L""; m_cape = L""; m_bIsFree = false; m_uiAnimOverrideBitmask=0L;}
void DLCSkinFile::addData(PBYTE pbData, DWORD dwBytes){ app.AddMemoryTextureFile(m_path,pbData,dwBytes);}
void DLCSkinFile::addParameter(DLCManager::EDLCParameterType type, const wstring &value){ switch(type) { case DLCManager::e_DLCParamType_DisplayName: { // 4J Stu - In skin pack 2, the name for Zap is mis-spelt with two p's as Zapp // dlcskin00000109.png if( m_path.compare(L"dlcskin00000109.png") == 0) { m_displayName = L"Zap"; } else { m_displayName = value; } } break; case DLCManager::e_DLCParamType_ThemeName: m_themeName = value; break; case DLCManager::e_DLCParamType_Free: // If this parameter exists, then mark this as free m_bIsFree = true; break; case DLCManager::e_DLCParamType_Credit: // If this parameter exists, then mark this as free //add it to the DLC credits list
// we'll need to justify this text since we don't have a lot of room for lines of credits { if(app.AlreadySeenCreditText(value)) break; // first add a blank string for spacing app.AddCreditText(L"");
int maximumChars = 55;
bool bIsSDMode=!RenderManager.IsHiDef() && !RenderManager.IsWidescreen();
if(bIsSDMode) { maximumChars = 45; }
switch(XGetLanguage()) { case XC_LANGUAGE_JAPANESE: case XC_LANGUAGE_TCHINESE: case XC_LANGUAGE_KOREAN: maximumChars = 35; break; } wstring creditValue = value; while (creditValue.length() > maximumChars) { unsigned int i = 1; while (i < creditValue.length() && (i + 1) <= maximumChars) { i++; } int iLast=(int)creditValue.find_last_of(L" ",i); switch(XGetLanguage()) { case XC_LANGUAGE_JAPANESE: case XC_LANGUAGE_TCHINESE: case XC_LANGUAGE_KOREAN: iLast = maximumChars; break; default: iLast=(int)creditValue.find_last_of(L" ",i); break; }
// if a space was found, include the space on this line if(iLast!=i) { iLast++; } app.AddCreditText((creditValue.substr(0, iLast)).c_str()); creditValue = creditValue.substr(iLast); } app.AddCreditText(creditValue.c_str());
} break; case DLCManager::e_DLCParamType_Cape: m_cape = value; break; case DLCManager::e_DLCParamType_Box: { WCHAR wchBodyPart[10]; SKIN_BOX *pSkinBox = new SKIN_BOX; ZeroMemory(pSkinBox,sizeof(SKIN_BOX));
#ifdef __PS3__ // 4J Stu - The Xbox version used swscanf_s which isn't available in GCC. swscanf(value.c_str(), L"%10ls%f%f%f%f%f%f%f%f", wchBodyPart,#else swscanf_s(value.c_str(), L"%9ls%f%f%f%f%f%f%f%f", wchBodyPart,10,#endif &pSkinBox->fX, &pSkinBox->fY, &pSkinBox->fZ, &pSkinBox->fW, &pSkinBox->fH, &pSkinBox->fD, &pSkinBox->fU, &pSkinBox->fV); if(wcscmp(wchBodyPart,L"HEAD")==0) { pSkinBox->ePart=eBodyPart_Head; } else if(wcscmp(wchBodyPart,L"BODY")==0) { pSkinBox->ePart=eBodyPart_Body; } else if(wcscmp(wchBodyPart,L"ARM0")==0) { pSkinBox->ePart=eBodyPart_Arm0; } else if(wcscmp(wchBodyPart,L"ARM1")==0) { pSkinBox->ePart=eBodyPart_Arm1; } else if(wcscmp(wchBodyPart,L"LEG0")==0) { pSkinBox->ePart=eBodyPart_Leg0; } else if(wcscmp(wchBodyPart,L"LEG1")==0) { pSkinBox->ePart=eBodyPart_Leg1; }
// add this to the skin's vector of parts m_AdditionalBoxes.push_back(pSkinBox); } break; case DLCManager::e_DLCParamType_Anim:#ifdef __PS3__ // 4J Stu - The Xbox version used swscanf_s which isn't available in GCC. swscanf(value.c_str(), L"%X", &m_uiAnimOverrideBitmask);#else swscanf_s(value.c_str(), L"%X", &m_uiAnimOverrideBitmask,sizeof(unsigned int));#endif DWORD skinId = app.getSkinIdFromPath(m_path); app.SetAnimOverrideBitmask(skinId, m_uiAnimOverrideBitmask); break; }}
// vector<ModelPart *> *DLCSkinFile::getAdditionalModelParts()// {// return &m_AdditionalModelParts;// }
int DLCSkinFile::getAdditionalBoxesCount(){ return (int)m_AdditionalBoxes.size();}vector<SKIN_BOX *> *DLCSkinFile::getAdditionalBoxes(){ return &m_AdditionalBoxes;}
wstring DLCSkinFile::getParameterAsString(DLCManager::EDLCParameterType type){ switch(type) { case DLCManager::e_DLCParamType_DisplayName: return m_displayName; case DLCManager::e_DLCParamType_ThemeName: return m_themeName; case DLCManager::e_DLCParamType_Cape: return m_cape; default: return L""; }}
bool DLCSkinFile::getParameterAsBool(DLCManager::EDLCParameterType type){ switch(type) { case DLCManager::e_DLCParamType_Free: // Patch all DLC to be "paid" return false; // return m_bIsFree; default: return false; }}