Removed armor offsets

Removed armor offsets as they would call the compile() function so many times overflowing memory triggering a safeguard which terminates the process.
This commit is contained in:
Langtanium 2026-05-26 12:23:31 -07:00
parent ac3df25056
commit 809bb10930

View file

@ -439,185 +439,9 @@ void HumanoidModel::render(shared_ptr<Entity> entity, float time, float r, float
else if (pSkinOffset->fD == 3)
leg1Offsets[2] += pSkinOffset->fO / 16.0f;
break;
case eBodyOffset_Helmet:
if (m_isArmor && !head->isArmorPart2 && head->visible)
{
hasArmorOffsets[0] = true;
delete head;
head = new ModelPart(this, 0, 0);
head->addHumanoidBox(-4, -8 + pSkinOffset->fO, -4, 8, 8, 8, 1.0f); // Head
head->setPos(0, 0 + m_fYOffset, 0);
head->compile(1.0f/16.0f);
}
break;
case eBodyOffset_BodyArmor:
if (m_isArmor && !body->isArmorPart2 && body->visible)
{
hasArmorOffsets[1] = true;
delete body;
body = new ModelPart(this, 16, 16);
body->addHumanoidBox(-4, 0 + pSkinOffset->fO, -2, 8, 12, 4, 1.0f); // Body
body->setPos(0, 0 + m_fYOffset, 0);
body->compile(1.0f/16.0f);
}
break;
case eBodyOffset_ArmArmor0:
if (m_isArmor && !arm0->isArmorPart2 && arm0->visible)
{
hasArmorOffsets[2] = true;
delete arm0;
arm0 = new ModelPart(this, 24 + 16, 16);
arm0->addHumanoidBox(-3, -2 + pSkinOffset->fO, -2, 4, 12, 4, 1.0f); // Arm0
arm0->setPos(-5, 2 + m_fYOffset, 0);
arm0->compile(1.0f/16.0f);
}
break;
case eBodyOffset_ArmArmor1:
if (m_isArmor && !arm1->isArmorPart2 && arm1->visible)
{
hasArmorOffsets[3] = true;
delete arm1;
arm1 = new ModelPart(this, 24 + 16, 16);
arm1->bMirror = true;
arm1->addHumanoidBox(-1, -2 + pSkinOffset->fO, -2, 4, 12, 4, 1.0f); // Arm1
arm1->setPos(5, 2 + m_fYOffset, 0);
arm1->compile(1.0f/16.0f);
}
break;
case eBodyOffset_Belt:
if (m_isArmor && body->isArmorPart2 && body->visible)
{
hasArmorOffsets[1] = true;
delete body;
body = new ModelPart(this, 16, 16);
body->addHumanoidBox(-4, 0 + pSkinOffset->fO, -2, 8, 12, 4, 0.5f); // Body
body->setPos(0, 0 + m_fYOffset, 0);
body->compile(1.0f/16.0f);
body->isArmorPart2 = true;
}
break;
case eBodyOffset_Legging0:
if (m_isArmor && leg0->isArmorPart2 && leg0->visible)
{
hasArmorOffsets[4] = true;
delete leg0;
leg0 = new ModelPart(this, 0, 16);
leg0->addHumanoidBox(-2, 0 + pSkinOffset->fO, -2, 4, 12, 4, 0.5f); // Leg0
leg0->setPos(-1.9, 12 + m_fYOffset, 0);
leg0->compile(1.0f/16.0f);
leg0->isArmorPart2 = true;
}
break;
case eBodyOffset_Legging1:
if (m_isArmor && leg1->isArmorPart2 && leg1->visible)
{
hasArmorOffsets[5] = true;
delete leg1;
leg1 = new ModelPart(this, 0, 16);
leg1->bMirror = true;
leg1->addHumanoidBox(-2, 0 + pSkinOffset->fO, -2, 4, 12, 4, 0.5f); // Leg1
leg1->setPos(1.9, 12 + m_fYOffset, 0);
leg1->compile(1.0f/16.0f);
leg1->isArmorPart2 = true;
}
break;
case eBodyOffset_Boot0:
if (m_isArmor && !leg0->isArmorPart2 && leg0->visible)
{
hasArmorOffsets[4] = true;
delete leg0;
leg0 = new ModelPart(this, 0, 16);
leg0->addHumanoidBox(-2, 0 + pSkinOffset->fO, -2, 4, 12, 4, 1.0f); // Leg0
leg0->setPos(-1.9, 12 + m_fYOffset, 0);
leg0->compile(1.0f/16.0f);
}
break;
case eBodyOffset_Boot1:
if (m_isArmor && !leg1->isArmorPart2 && leg1->visible)
{
hasArmorOffsets[5] = true;
delete leg1;
leg1 = new ModelPart(this, 0, 16);
leg1->bMirror = true;
leg1->addHumanoidBox(-2, 0 + pSkinOffset->fO, -2, 4, 12, 4, 1.0f); // Leg1
leg1->setPos(1.9, 12 + m_fYOffset, 0);
leg1->compile(1.0f/16.0f);
}
break;
}
}
}
if (m_isArmor)
{
if (!hasArmorOffsets[0] && head->cubes[0]->y0 != -8 && head->visible)
{
delete head;
head = new ModelPart(this, 0, 0);
head->addHumanoidBox(-4, -8, -4, 8, 8, 8, 1.0f); // Head
head->setPos(0, 0 + m_fYOffset, 0);
head->compile(1.0f/16.0f);
}
if (!hasArmorOffsets[1] && body->cubes[0]->y0 != 0 && body->visible)
{
delete body;
body = new ModelPart(this, 16, 16);
if (body->isArmorPart2)
{
body->addHumanoidBox(-4, 0, -2, 8, 12, 4, 0.5f); // Body
body->isArmorPart2 = true;
}
else
body->addHumanoidBox(-4, 0, -2, 8, 12, 4, 1.0f); // Body
body->setPos(0, 0 + m_fYOffset, 0);
body->compile(1.0f/16.0f);
}
if (!hasArmorOffsets[2] && arm0->cubes[0]->y0 != -2 && arm0->visible)
{
delete arm0;
arm0 = new ModelPart(this, 24 + 16, 16);
arm0->addHumanoidBox(-3, -2, -2, 4, 12, 4, 1.0f); // Arm0
arm0->setPos(-5, 2 + m_fYOffset, 0);
arm0->compile(1.0f/16.0f);
}
if (!hasArmorOffsets[3] && arm1->cubes[0]->y0 != -2 && arm1->visible)
{
delete arm1;
arm1 = new ModelPart(this, 24 + 16, 16);
arm1->bMirror = true;
arm1->addHumanoidBox(-1, -2, -2, 4, 12, 4, 1.0f); // Arm1
arm1->setPos(5, 2 + m_fYOffset, 0);
arm1->compile(1.0f/16.0f);
}
if (!hasArmorOffsets[4] && leg0->cubes[0]->y0 != 0 && leg0->visible)
{
delete leg0;
leg0 = new ModelPart(this, 0, 16);
if (leg0->isArmorPart2)
{
leg0->addHumanoidBox(-2, 0, -2, 4, 12, 4, 0.5f); // Leg0
leg0->isArmorPart2 = true;
}
else
leg0->addHumanoidBox(-2, 0, -2, 4, 12, 4, 1.0f); // Leg0
leg0->setPos(-1.9, 12 + m_fYOffset, 0);
leg0->compile(1.0f/16.0f);
}
if (!hasArmorOffsets[5] && leg1->cubes[0]->y0 != 0 && leg1->visible)
{
delete leg1;
leg1 = new ModelPart(this, 0, 16);
if (leg1->isArmorPart2)
{
leg1->addHumanoidBox(-2, 0, -2, 4, 12, 4, 0.5f); // Leg1
leg1->isArmorPart2 = true;
}
else
leg1->addHumanoidBox(-2, 0, -2, 4, 12, 4, 1.0f); // Leg1
leg1->setPos(1.9, 12 + m_fYOffset, 0);
leg1->compile(1.0f/16.0f);
}
}
}
setupAnim(time, r, bob, yRot, xRot, scale, entity, m_uiAnimOverrideBitmask);