Fix fatal bug where skins with no additional boxes would crash the game

This commit is contained in:
Botch 2026-03-26 20:03:30 -06:00 committed by GitHub
parent c69c8eeee1
commit 77c235ee67
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -522,13 +522,13 @@ void PlayerRenderer::renderHand()
//Render custom skin boxes on viewmodel - Botch
vector<ModelPart*>* mdlprts = Minecraft::GetInstance()->player->GetAdditionalModelParts();
vector<ModelPart*>* additionalModelParts = Minecraft::GetInstance()->player->GetAdditionalModelParts();
if (!additionalModelParts) return; //If there are no custom boxes, return. This fixes bug where the game will crash if you select a skin with no additional boxes.
vector<ModelPart*> armchildren = humanoidModel->arm0->children;
std::unordered_set<ModelPart*> mdlSet(mdlprts->begin(), mdlprts->end());
std::unordered_set<ModelPart*> additionalModelPartSet(additionalModelParts->begin(), additionalModelParts->end());
for (const auto& x : armchildren) {
if (x) {
if (mdlSet.find(x) != mdlSet.end()) { //This is to verify box is still actually on current skin - Botch
if (additionalModelPartSet.find(x) != additionalModelPartSet.end()) { //This is to verify box is still actually on current skin - Botch
glPushMatrix();
//We need to transform to match offset of arm - Botch
glTranslatef(-5 * 0.0625f, 2 * 0.0625f, 0);