Fixed skin offset leak and removed skin item offset

Fixed DLC skin offset leak causing offsets from one skin to leak onto another skin. Removed skin item offset as the location it was previously added to did not have the desired result.
This commit is contained in:
Langtanium 2026-06-02 11:42:13 -07:00
parent 4caa7be9ef
commit 253b460676
3 changed files with 256 additions and 197 deletions

View file

@ -126,6 +126,8 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b
this->texWidth = texWidth; this->texWidth = texWidth;
this->texHeight = texHeight; this->texHeight = texHeight;
m_is64x64 = texHeight == 64;
jacket = nullptr; jacket = nullptr;
sleeve0 = nullptr; sleeve0 = nullptr;
sleeve1 = nullptr; sleeve1 = nullptr;
@ -172,7 +174,7 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b
body->addHumanoidBox(-4, 0, -2, 8, 12, 4, g); // Body body->addHumanoidBox(-4, 0, -2, 8, 12, 4, g); // Body
body->setPos(0, 0 + yOffset, 0); body->setPos(0, 0 + yOffset, 0);
if (texHeight == 64) if (m_is64x64)
{ {
arm0 = new ModelPart(this, 24 + 16, 16); arm0 = new ModelPart(this, 24 + 16, 16);
arm1 = new ModelPart(this, 16 + 16, 48); arm1 = new ModelPart(this, 16 + 16, 48);
@ -232,7 +234,7 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b
boot1->addHumanoidBox(0, 0, 0, 0, 0, 0, g); // Boot1 boot1->addHumanoidBox(0, 0, 0, 0, 0, 0, g); // Boot1
boot1->setPos(1.9, 12 + yOffset, 0); boot1->setPos(1.9, 12 + yOffset, 0);
} }
else if (texHeight == 32) else if (!m_is64x64)
{ {
arm0 = new ModelPart(this, 24 + 16, 16); arm0 = new ModelPart(this, 24 + 16, 16);
arm1 = new ModelPart(this, 24 + 16, 16); arm1 = new ModelPart(this, 24 + 16, 16);
@ -254,7 +256,7 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b
arm1->setPos(5, 2 + yOffset, 0); arm1->setPos(5, 2 + yOffset, 0);
leg0 = new ModelPart(this, 0, 16); leg0 = new ModelPart(this, 0, 16);
if (texHeight == 64) if (m_is64x64)
{ {
leg1 = new ModelPart(this, 16, 48); leg1 = new ModelPart(this, 16, 48);
@ -266,7 +268,7 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b
pants1->addHumanoidBox(-2, 0, -2, 4, 12, 4, g + 0.25f); // Pants1 pants1->addHumanoidBox(-2, 0, -2, 4, 12, 4, g + 0.25f); // Pants1
pants1->setPos(1.9, 12 + yOffset, 0); pants1->setPos(1.9, 12 + yOffset, 0);
} }
else if (texHeight == 32) else if (!m_is64x64)
{ {
leg1 = new ModelPart(this, 0, 16); leg1 = new ModelPart(this, 0, 16);
leg1->bMirror = true; leg1->bMirror = true;
@ -292,38 +294,25 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b
leg1->compile(1.0f/16.0f); leg1->compile(1.0f/16.0f);
hair->compile(1.0f/16.0f); hair->compile(1.0f/16.0f);
if (jacket) if (m_is64x64)
{
jacket->compile(1.0f/16.0f); jacket->compile(1.0f/16.0f);
if (sleeve0)
sleeve0->compile(1.0f/16.0f); sleeve0->compile(1.0f/16.0f);
if (sleeve1)
sleeve1->compile(1.0f/16.0f); sleeve1->compile(1.0f/16.0f);
if (pants0)
pants0->compile(1.0f/16.0f); pants0->compile(1.0f/16.0f);
if (pants1)
pants1->compile(1.0f/16.0f); pants1->compile(1.0f/16.0f);
if (waist)
waist->compile(1.0f/16.0f); waist->compile(1.0f/16.0f);
if (belt)
belt->compile(1.0f/16.0f); belt->compile(1.0f/16.0f);
if (bodyArmor)
bodyArmor->compile(1.0f/16.0f); bodyArmor->compile(1.0f/16.0f);
if (armArmor0)
armArmor0->compile(1.0f/16.0f); armArmor0->compile(1.0f/16.0f);
if (armArmor1)
armArmor1->compile(1.0f/16.0f); armArmor1->compile(1.0f/16.0f);
if (legging0)
legging0->compile(1.0f/16.0f); legging0->compile(1.0f/16.0f);
if (legging1)
legging1->compile(1.0f/16.0f); legging1->compile(1.0f/16.0f);
if (sock0)
sock0->compile(1.0f/16.0f); sock0->compile(1.0f/16.0f);
if (sock1)
sock1->compile(1.0f/16.0f); sock1->compile(1.0f/16.0f);
if (boot0)
boot0->compile(1.0f/16.0f); boot0->compile(1.0f/16.0f);
if (boot1)
boot1->compile(1.0f/16.0f); boot1->compile(1.0f/16.0f);
}
holdingLeftHand=0; holdingLeftHand=0;
holdingRightHand=0; holdingRightHand=0;
@ -380,6 +369,80 @@ void HumanoidModel::render(shared_ptr<Entity> entity, float time, float r, float
{ {
m_uiAnimOverrideBitmask=entity->getAnimOverrideBitmask(); m_uiAnimOverrideBitmask=entity->getAnimOverrideBitmask();
// Reset offsets so they don't leak onto other skins - Langtanium
head->translateX = 0;
head->translateY = 0;
head->translateZ = 0;
hair->translateX = 0;
hair->translateY = 0;
hair->translateZ = 0;
body->translateX = 0;
body->translateY = 0;
body->translateZ = 0;
arm0->translateX = 0;
arm0->translateY = 0;
arm0->translateZ = 0;
arm1->translateX = 0;
arm1->translateY = 0;
arm1->translateZ = 0;
leg0->translateX = 0;
leg0->translateY = 0;
leg0->translateZ = 0;
leg1->translateX = 0;
leg1->translateY = 0;
leg1->translateZ = 0;
if (m_is64x64)
{
jacket->translateX = 0;
jacket->translateY = 0;
jacket->translateZ = 0;
sleeve0->translateX = 0;
sleeve0->translateY = 0;
sleeve0->translateZ = 0;
sleeve1->translateX = 0;
sleeve1->translateY = 0;
sleeve1->translateZ = 0;
pants0->translateX = 0;
pants0->translateY = 0;
pants0->translateZ = 0;
pants1->translateX = 0;
pants1->translateY = 0;
pants1->translateZ = 0;
bodyArmor->translateX = 0;
bodyArmor->translateY = 0;
bodyArmor->translateZ = 0;
waist->translateX = 0;
waist->translateY = 0;
waist->translateZ = 0;
belt->translateX = 0;
belt->translateY = 0;
belt->translateZ = 0;
armArmor0->translateX = 0;
armArmor0->translateY = 0;
armArmor0->translateZ = 0;
armArmor1->translateX = 0;
armArmor1->translateY = 0;
armArmor1->translateZ = 0;
legging0->translateX = 0;
legging0->translateY = 0;
legging0->translateZ = 0;
legging1->translateX = 0;
legging1->translateY = 0;
legging1->translateZ = 0;
sock0->translateX = 0;
sock0->translateY = 0;
sock0->translateZ = 0;
sock1->translateX = 0;
sock1->translateY = 0;
sock1->translateZ = 0;
boot0->translateX = 0;
boot0->translateY = 0;
boot0->translateZ = 0;
boot1->translateX = 0;
boot1->translateY = 0;
boot1->translateZ = 0;
}
shared_ptr<Player> player = dynamic_pointer_cast<Player>(entity); shared_ptr<Player> player = dynamic_pointer_cast<Player>(entity);
vector<SKIN_OFFSET *>* pSkinOffsets = nullptr; vector<SKIN_OFFSET *>* pSkinOffsets = nullptr;
if (player != nullptr) if (player != nullptr)
@ -414,40 +477,37 @@ void HumanoidModel::render(shared_ptr<Entity> entity, float time, float r, float
if (pSkinOffset->fD == 1 && body->translateX == 0) if (pSkinOffset->fD == 1 && body->translateX == 0)
{ {
body->translateX = pSkinOffset->fO / 16.0f; body->translateX = pSkinOffset->fO / 16.0f;
if (jacket) if (m_is64x64)
{
jacket->translateX = pSkinOffset->fO / 16.0f; jacket->translateX = pSkinOffset->fO / 16.0f;
if (bodyArmor)
bodyArmor->translateX = pSkinOffset->fO / 16.0f; bodyArmor->translateX = pSkinOffset->fO / 16.0f;
if (waist)
waist->translateX = pSkinOffset->fO / 16.0f; waist->translateX = pSkinOffset->fO / 16.0f;
if (belt)
belt->translateX = pSkinOffset->fO / 16.0f; belt->translateX = pSkinOffset->fO / 16.0f;
}
bodyOffsets[0] = pSkinOffset->fO / 16.0f; bodyOffsets[0] = pSkinOffset->fO / 16.0f;
} }
else if (pSkinOffset->fD == 2 && body->translateY == 0) else if (pSkinOffset->fD == 2 && body->translateY == 0)
{ {
body->translateY = pSkinOffset->fO / 16.0f; body->translateY = pSkinOffset->fO / 16.0f;
if (jacket) if (m_is64x64)
{
jacket->translateY = pSkinOffset->fO / 16.0f; jacket->translateY = pSkinOffset->fO / 16.0f;
if (bodyArmor)
bodyArmor->translateY = pSkinOffset->fO / 16.0f; bodyArmor->translateY = pSkinOffset->fO / 16.0f;
if (waist)
waist->translateY = pSkinOffset->fO / 16.0f; waist->translateY = pSkinOffset->fO / 16.0f;
if (belt)
belt->translateY = pSkinOffset->fO / 16.0f; belt->translateY = pSkinOffset->fO / 16.0f;
}
bodyOffsets[1] = pSkinOffset->fO / 16.0f; bodyOffsets[1] = pSkinOffset->fO / 16.0f;
} }
else if (pSkinOffset->fD == 3 && body->translateZ == 0) else if (pSkinOffset->fD == 3 && body->translateZ == 0)
{ {
body->translateZ = pSkinOffset->fO / 16.0f; body->translateZ = pSkinOffset->fO / 16.0f;
if (jacket) if (m_is64x64)
{
jacket->translateZ = pSkinOffset->fO / 16.0f; jacket->translateZ = pSkinOffset->fO / 16.0f;
if (bodyArmor)
bodyArmor->translateZ = pSkinOffset->fO / 16.0f; bodyArmor->translateZ = pSkinOffset->fO / 16.0f;
if (waist)
waist->translateZ = pSkinOffset->fO / 16.0f; waist->translateZ = pSkinOffset->fO / 16.0f;
if (belt)
belt->translateZ = pSkinOffset->fO / 16.0f; belt->translateZ = pSkinOffset->fO / 16.0f;
}
bodyOffsets[2] = pSkinOffset->fO / 16.0f; bodyOffsets[2] = pSkinOffset->fO / 16.0f;
} }
break; break;
@ -455,28 +515,31 @@ void HumanoidModel::render(shared_ptr<Entity> entity, float time, float r, float
if (pSkinOffset->fD == 1 && arm0->translateX == 0) if (pSkinOffset->fD == 1 && arm0->translateX == 0)
{ {
arm0->translateX = pSkinOffset->fO / 16.0f; arm0->translateX = pSkinOffset->fO / 16.0f;
if (sleeve0) if (m_is64x64)
{
sleeve0->translateX = pSkinOffset->fO / 16.0f; sleeve0->translateX = pSkinOffset->fO / 16.0f;
if (armArmor0)
armArmor0->translateX = pSkinOffset->fO / 16.0f; armArmor0->translateX = pSkinOffset->fO / 16.0f;
}
arm0Offsets[0] = pSkinOffset->fO / 16.0f; arm0Offsets[0] = pSkinOffset->fO / 16.0f;
} }
else if (pSkinOffset->fD == 2 && arm0->translateY == 0) else if (pSkinOffset->fD == 2 && arm0->translateY == 0)
{ {
arm0->translateY = pSkinOffset->fO / 16.0f; arm0->translateY = pSkinOffset->fO / 16.0f;
if (sleeve0) if (m_is64x64)
{
sleeve0->translateY = pSkinOffset->fO / 16.0f; sleeve0->translateY = pSkinOffset->fO / 16.0f;
if (armArmor0)
armArmor0->translateY = pSkinOffset->fO / 16.0f; armArmor0->translateY = pSkinOffset->fO / 16.0f;
}
arm0Offsets[1] = pSkinOffset->fO / 16.0f; arm0Offsets[1] = pSkinOffset->fO / 16.0f;
} }
else if (pSkinOffset->fD == 3 && arm0->translateZ == 0) else if (pSkinOffset->fD == 3 && arm0->translateZ == 0)
{ {
arm0->translateZ = pSkinOffset->fO / 16.0f; arm0->translateZ = pSkinOffset->fO / 16.0f;
if (sleeve0) if (m_is64x64)
{
sleeve0->translateZ = pSkinOffset->fO / 16.0f; sleeve0->translateZ = pSkinOffset->fO / 16.0f;
if (armArmor0)
armArmor0->translateZ = pSkinOffset->fO / 16.0f; armArmor0->translateZ = pSkinOffset->fO / 16.0f;
}
arm0Offsets[2] = pSkinOffset->fO / 16.0f; arm0Offsets[2] = pSkinOffset->fO / 16.0f;
} }
break; break;
@ -484,28 +547,31 @@ void HumanoidModel::render(shared_ptr<Entity> entity, float time, float r, float
if (pSkinOffset->fD == 1 && arm1->translateX == 0) if (pSkinOffset->fD == 1 && arm1->translateX == 0)
{ {
arm1->translateX = pSkinOffset->fO / 16.0f; arm1->translateX = pSkinOffset->fO / 16.0f;
if (sleeve1) if (m_is64x64)
{
sleeve1->translateX = pSkinOffset->fO / 16.0f; sleeve1->translateX = pSkinOffset->fO / 16.0f;
if (armArmor1)
armArmor1->translateX = pSkinOffset->fO / 16.0f; armArmor1->translateX = pSkinOffset->fO / 16.0f;
}
arm1Offsets[0] = pSkinOffset->fO / 16.0f; arm1Offsets[0] = pSkinOffset->fO / 16.0f;
} }
else if (pSkinOffset->fD == 2 && arm1->translateY == 0) else if (pSkinOffset->fD == 2 && arm1->translateY == 0)
{ {
arm1->translateY = pSkinOffset->fO / 16.0f; arm1->translateY = pSkinOffset->fO / 16.0f;
if (sleeve1) if (m_is64x64)
{
sleeve1->translateY = pSkinOffset->fO / 16.0f; sleeve1->translateY = pSkinOffset->fO / 16.0f;
if (armArmor1)
armArmor1->translateY = pSkinOffset->fO / 16.0f; armArmor1->translateY = pSkinOffset->fO / 16.0f;
}
arm1Offsets[1] = pSkinOffset->fO / 16.0f; arm1Offsets[1] = pSkinOffset->fO / 16.0f;
} }
else if (pSkinOffset->fD == 3 && arm1->translateZ == 0) else if (pSkinOffset->fD == 3 && arm1->translateZ == 0)
{ {
arm1->translateZ = pSkinOffset->fO / 16.0f; arm1->translateZ = pSkinOffset->fO / 16.0f;
if (sleeve1) if (m_is64x64)
{
sleeve1->translateZ = pSkinOffset->fO / 16.0f; sleeve1->translateZ = pSkinOffset->fO / 16.0f;
if (armArmor1)
armArmor1->translateZ = pSkinOffset->fO / 16.0f; armArmor1->translateZ = pSkinOffset->fO / 16.0f;
}
arm1Offsets[2] = pSkinOffset->fO / 16.0f; arm1Offsets[2] = pSkinOffset->fO / 16.0f;
} }
break; break;
@ -513,40 +579,37 @@ void HumanoidModel::render(shared_ptr<Entity> entity, float time, float r, float
if (pSkinOffset->fD == 1 && leg0->translateX == 0) if (pSkinOffset->fD == 1 && leg0->translateX == 0)
{ {
leg0->translateX = pSkinOffset->fO / 16.0f; leg0->translateX = pSkinOffset->fO / 16.0f;
if (pants0) if (m_is64x64)
{
pants0->translateX = pSkinOffset->fO / 16.0f; pants0->translateX = pSkinOffset->fO / 16.0f;
if (legging0)
legging0->translateX = pSkinOffset->fO / 16.0f; legging0->translateX = pSkinOffset->fO / 16.0f;
if (sock0)
sock0->translateX = pSkinOffset->fO / 16.0f; sock0->translateX = pSkinOffset->fO / 16.0f;
if (boot0)
boot0->translateX = pSkinOffset->fO / 16.0f; boot0->translateX = pSkinOffset->fO / 16.0f;
}
leg0Offsets[0] = pSkinOffset->fO / 16.0f; leg0Offsets[0] = pSkinOffset->fO / 16.0f;
} }
else if (pSkinOffset->fD == 2 && leg0->translateY == 0) else if (pSkinOffset->fD == 2 && leg0->translateY == 0)
{ {
leg0->translateY = pSkinOffset->fO / 16.0f; leg0->translateY = pSkinOffset->fO / 16.0f;
if (pants0) if (m_is64x64)
{
pants0->translateY = pSkinOffset->fO / 16.0f; pants0->translateY = pSkinOffset->fO / 16.0f;
if (legging0)
legging0->translateY = pSkinOffset->fO / 16.0f; legging0->translateY = pSkinOffset->fO / 16.0f;
if (sock0)
sock0->translateY = pSkinOffset->fO / 16.0f; sock0->translateY = pSkinOffset->fO / 16.0f;
if (boot0)
boot0->translateY = pSkinOffset->fO / 16.0f; boot0->translateY = pSkinOffset->fO / 16.0f;
}
leg0Offsets[1] = pSkinOffset->fO / 16.0f; leg0Offsets[1] = pSkinOffset->fO / 16.0f;
} }
else if (pSkinOffset->fD == 3 && leg0->translateZ == 0) else if (pSkinOffset->fD == 3 && leg0->translateZ == 0)
{ {
leg0->translateZ = pSkinOffset->fO / 16.0f; leg0->translateZ = pSkinOffset->fO / 16.0f;
if (pants0) if (m_is64x64)
{
pants0->translateZ = pSkinOffset->fO / 16.0f; pants0->translateZ = pSkinOffset->fO / 16.0f;
if (legging0)
legging0->translateZ = pSkinOffset->fO / 16.0f; legging0->translateZ = pSkinOffset->fO / 16.0f;
if (sock0)
sock0->translateZ = pSkinOffset->fO / 16.0f; sock0->translateZ = pSkinOffset->fO / 16.0f;
if (boot0)
boot0->translateZ = pSkinOffset->fO / 16.0f; boot0->translateZ = pSkinOffset->fO / 16.0f;
}
leg0Offsets[2] = pSkinOffset->fO / 16.0f; leg0Offsets[2] = pSkinOffset->fO / 16.0f;
} }
break; break;
@ -554,40 +617,37 @@ void HumanoidModel::render(shared_ptr<Entity> entity, float time, float r, float
if (pSkinOffset->fD == 1 && leg1->translateX == 0) if (pSkinOffset->fD == 1 && leg1->translateX == 0)
{ {
leg1->translateX = pSkinOffset->fO / 16.0f; leg1->translateX = pSkinOffset->fO / 16.0f;
if (pants1) if (m_is64x64)
{
pants1->translateX = pSkinOffset->fO / 16.0f; pants1->translateX = pSkinOffset->fO / 16.0f;
if (legging1)
legging1->translateX = pSkinOffset->fO / 16.0f; legging1->translateX = pSkinOffset->fO / 16.0f;
if (sock1)
sock1->translateX = pSkinOffset->fO / 16.0f; sock1->translateX = pSkinOffset->fO / 16.0f;
if (boot1)
boot1->translateX = pSkinOffset->fO / 16.0f; boot1->translateX = pSkinOffset->fO / 16.0f;
}
leg1Offsets[0] = pSkinOffset->fO / 16.0f; leg1Offsets[0] = pSkinOffset->fO / 16.0f;
} }
else if (pSkinOffset->fD == 2 && leg1->translateY == 0) else if (pSkinOffset->fD == 2 && leg1->translateY == 0)
{ {
leg1->translateY = pSkinOffset->fO / 16.0f; leg1->translateY = pSkinOffset->fO / 16.0f;
if (pants1) if (m_is64x64)
{
pants1->translateY = pSkinOffset->fO / 16.0f; pants1->translateY = pSkinOffset->fO / 16.0f;
if (legging1)
legging1->translateY = pSkinOffset->fO / 16.0f; legging1->translateY = pSkinOffset->fO / 16.0f;
if (sock1)
sock1->translateY = pSkinOffset->fO / 16.0f; sock1->translateY = pSkinOffset->fO / 16.0f;
if (boot1)
boot1->translateY = pSkinOffset->fO / 16.0f; boot1->translateY = pSkinOffset->fO / 16.0f;
}
leg1Offsets[1] = pSkinOffset->fO / 16.0f; leg1Offsets[1] = pSkinOffset->fO / 16.0f;
} }
else if (pSkinOffset->fD == 3 && leg1->translateZ == 0) else if (pSkinOffset->fD == 3 && leg1->translateZ == 0)
{ {
leg1->translateZ = pSkinOffset->fO / 16.0f; leg1->translateZ = pSkinOffset->fO / 16.0f;
if (pants1) if (m_is64x64)
{
pants1->translateZ = pSkinOffset->fO / 16.0f; pants1->translateZ = pSkinOffset->fO / 16.0f;
if (legging1)
legging1->translateZ = pSkinOffset->fO / 16.0f; legging1->translateZ = pSkinOffset->fO / 16.0f;
if (sock1)
sock1->translateZ = pSkinOffset->fO / 16.0f; sock1->translateZ = pSkinOffset->fO / 16.0f;
if (boot1)
boot1->translateZ = pSkinOffset->fO / 16.0f; boot1->translateZ = pSkinOffset->fO / 16.0f;
}
leg1Offsets[2] = pSkinOffset->fO / 16.0f; leg1Offsets[2] = pSkinOffset->fO / 16.0f;
} }
break; break;
@ -724,16 +784,14 @@ void HumanoidModel::render(shared_ptr<Entity> entity, float time, float r, float
leg1->render(scale, usecompiled); leg1->render(scale, usecompiled);
hair->render(scale, usecompiled); hair->render(scale, usecompiled);
if (jacket) if (m_is64x64)
{
jacket->render(scale, usecompiled); jacket->render(scale, usecompiled);
if (sleeve0)
sleeve0->render(scale, usecompiled); sleeve0->render(scale, usecompiled);
if (sleeve1)
sleeve1->render(scale, usecompiled); sleeve1->render(scale, usecompiled);
if (pants0)
pants0->render(scale, usecompiled); pants0->render(scale, usecompiled);
if (pants1)
pants1->render(scale, usecompiled); pants1->render(scale, usecompiled);
}
glPopMatrix(); glPopMatrix();
} }
@ -746,50 +804,104 @@ void HumanoidModel::render(shared_ptr<Entity> entity, float time, float r, float
leg0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderLeg0))>0&&(!(m_uiAnimOverrideBitmask&(1<<eAnim_RenderArmorLeg0))>0||!m_isArmor)); leg0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderLeg0))>0&&(!(m_uiAnimOverrideBitmask&(1<<eAnim_RenderArmorLeg0))>0||!m_isArmor));
leg1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderLeg1))>0&&(!(m_uiAnimOverrideBitmask&(1<<eAnim_RenderArmorLeg1))>0||!m_isArmor)); leg1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderLeg1))>0&&(!(m_uiAnimOverrideBitmask&(1<<eAnim_RenderArmorLeg1))>0||!m_isArmor));
hair->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderHair))>0); hair->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderHair))>0);
if (jacket != 0) if (m_is64x64)
{
jacket->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderJacket))>0); jacket->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderJacket))>0);
if (sleeve0 != 0)
sleeve0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderSleeve0))>0); sleeve0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderSleeve0))>0);
if (sleeve1 != 0)
sleeve1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderSleeve1))>0); sleeve1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderSleeve1))>0);
if (pants0 != 0)
pants0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderPants0))>0); pants0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderPants0))>0);
if (pants1 != 0)
pants1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderPants1))>0); pants1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderPants1))>0);
if (waist != 0)
waist->render(scale, usecompiled); waist->render(scale, usecompiled);
if (belt != 0)
belt->render(scale, usecompiled); belt->render(scale, usecompiled);
if (bodyArmor != 0)
bodyArmor->render(scale, usecompiled); bodyArmor->render(scale, usecompiled);
if (armArmor0 != 0)
armArmor0->render(scale, usecompiled); armArmor0->render(scale, usecompiled);
if (armArmor1 != 0)
armArmor1->render(scale, usecompiled); armArmor1->render(scale, usecompiled);
if (legging0 != 0)
legging0->render(scale, usecompiled); legging0->render(scale, usecompiled);
if (legging1 != 0)
legging1->render(scale, usecompiled); legging1->render(scale, usecompiled);
if (sock0 != 0)
sock0->render(scale, usecompiled); sock0->render(scale, usecompiled);
if (sock1 != 0)
sock1->render(scale, usecompiled); sock1->render(scale, usecompiled);
if (boot0 != 0)
boot0->render(scale, usecompiled); boot0->render(scale, usecompiled);
if (boot1 != 0)
boot1->render(scale, usecompiled); boot1->render(scale, usecompiled);
}
} }
} }
// This code is similar to what's above, but allows skin offsets to work in the skin select menu - Langtanium // This code is similar to what's above, but allows skin offsets to work in the skin select menu - Langtanium
void HumanoidModel::renderUI(float time, float r, float bob, float yRot, float xRot, float scale, bool usecompiled, vector<SKIN_OFFSET *> *skinOffsets) void HumanoidModel::renderUI(float time, float r, float bob, float yRot, float xRot, float scale, bool usecompiled, vector<SKIN_OFFSET *> *skinOffsets)
{ {
float headOffsets[3] = {0}; // Reset offsets so they don't leak onto other skins - Langtanium
float bodyOffsets[3] = {0}; head->translateX = 0;
float arm0Offsets[3] = {0}; head->translateY = 0;
float arm1Offsets[3] = {0}; head->translateZ = 0;
float leg0Offsets[3] = {0}; hair->translateX = 0;
float leg1Offsets[3] = {0}; hair->translateY = 0;
hair->translateZ = 0;
body->translateX = 0;
body->translateY = 0;
body->translateZ = 0;
arm0->translateX = 0;
arm0->translateY = 0;
arm0->translateZ = 0;
arm1->translateX = 0;
arm1->translateY = 0;
arm1->translateZ = 0;
leg0->translateX = 0;
leg0->translateY = 0;
leg0->translateZ = 0;
leg1->translateX = 0;
leg1->translateY = 0;
leg1->translateZ = 0;
if (m_is64x64)
{
jacket->translateX = 0;
jacket->translateY = 0;
jacket->translateZ = 0;
sleeve0->translateX = 0;
sleeve0->translateY = 0;
sleeve0->translateZ = 0;
sleeve1->translateX = 0;
sleeve1->translateY = 0;
sleeve1->translateZ = 0;
pants0->translateX = 0;
pants0->translateY = 0;
pants0->translateZ = 0;
pants1->translateX = 0;
pants1->translateY = 0;
pants1->translateZ = 0;
bodyArmor->translateX = 0;
bodyArmor->translateY = 0;
bodyArmor->translateZ = 0;
waist->translateX = 0;
waist->translateY = 0;
waist->translateZ = 0;
belt->translateX = 0;
belt->translateY = 0;
belt->translateZ = 0;
armArmor0->translateX = 0;
armArmor0->translateY = 0;
armArmor0->translateZ = 0;
armArmor1->translateX = 0;
armArmor1->translateY = 0;
armArmor1->translateZ = 0;
legging0->translateX = 0;
legging0->translateY = 0;
legging0->translateZ = 0;
legging1->translateX = 0;
legging1->translateY = 0;
legging1->translateZ = 0;
sock0->translateX = 0;
sock0->translateY = 0;
sock0->translateZ = 0;
sock1->translateX = 0;
sock1->translateY = 0;
sock1->translateZ = 0;
boot0->translateX = 0;
boot0->translateY = 0;
boot0->translateZ = 0;
boot1->translateX = 0;
boot1->translateY = 0;
boot1->translateZ = 0;
}
if (skinOffsets != nullptr) if (skinOffsets != nullptr)
{ {
@ -802,200 +914,179 @@ void HumanoidModel::renderUI(float time, float r, float bob, float yRot, float x
{ {
head->translateX = pSkinOffset->fO / 16.0f; head->translateX = pSkinOffset->fO / 16.0f;
hair->translateX = pSkinOffset->fO / 16.0f; hair->translateX = pSkinOffset->fO / 16.0f;
headOffsets[0] = pSkinOffset->fO / 16.0f;
} }
else if (pSkinOffset->fD == 2 && head->translateY == 0) else if (pSkinOffset->fD == 2 && head->translateY == 0)
{ {
head->translateY = pSkinOffset->fO / 16.0f; head->translateY = pSkinOffset->fO / 16.0f;
hair->translateY = pSkinOffset->fO / 16.0f; hair->translateY = pSkinOffset->fO / 16.0f;
headOffsets[1] = pSkinOffset->fO / 16.0f;
} }
else if (pSkinOffset->fD == 3 && head->translateZ == 0) else if (pSkinOffset->fD == 3 && head->translateZ == 0)
{ {
head->translateZ = pSkinOffset->fO / 16.0f; head->translateZ = pSkinOffset->fO / 16.0f;
hair->translateZ = pSkinOffset->fO / 16.0f; hair->translateZ = pSkinOffset->fO / 16.0f;
headOffsets[2] = pSkinOffset->fO / 16.0f;
} }
break; break;
case eBodyOffset_Body: case eBodyOffset_Body:
if (pSkinOffset->fD == 1 && body->translateX == 0) if (pSkinOffset->fD == 1 && body->translateX == 0)
{ {
body->translateX = pSkinOffset->fO / 16.0f; body->translateX = pSkinOffset->fO / 16.0f;
if (jacket) if (m_is64x64)
{
jacket->translateX = pSkinOffset->fO / 16.0f; jacket->translateX = pSkinOffset->fO / 16.0f;
if (bodyArmor)
bodyArmor->translateX = pSkinOffset->fO / 16.0f; bodyArmor->translateX = pSkinOffset->fO / 16.0f;
if (waist)
waist->translateX = pSkinOffset->fO / 16.0f; waist->translateX = pSkinOffset->fO / 16.0f;
if (belt)
belt->translateX = pSkinOffset->fO / 16.0f; belt->translateX = pSkinOffset->fO / 16.0f;
bodyOffsets[0] = pSkinOffset->fO / 16.0f; }
} }
else if (pSkinOffset->fD == 2 && body->translateY == 0) else if (pSkinOffset->fD == 2 && body->translateY == 0)
{ {
body->translateY = pSkinOffset->fO / 16.0f; body->translateY = pSkinOffset->fO / 16.0f;
if (jacket) if (m_is64x64)
{
jacket->translateY = pSkinOffset->fO / 16.0f; jacket->translateY = pSkinOffset->fO / 16.0f;
if (bodyArmor)
bodyArmor->translateY = pSkinOffset->fO / 16.0f; bodyArmor->translateY = pSkinOffset->fO / 16.0f;
if (waist)
waist->translateY = pSkinOffset->fO / 16.0f; waist->translateY = pSkinOffset->fO / 16.0f;
if (belt)
belt->translateY = pSkinOffset->fO / 16.0f; belt->translateY = pSkinOffset->fO / 16.0f;
bodyOffsets[1] = pSkinOffset->fO / 16.0f; }
} }
else if (pSkinOffset->fD == 3 && body->translateZ == 0) else if (pSkinOffset->fD == 3 && body->translateZ == 0)
{ {
body->translateZ = pSkinOffset->fO / 16.0f; body->translateZ = pSkinOffset->fO / 16.0f;
if (jacket) if (m_is64x64)
{
jacket->translateZ = pSkinOffset->fO / 16.0f; jacket->translateZ = pSkinOffset->fO / 16.0f;
if (bodyArmor)
bodyArmor->translateZ = pSkinOffset->fO / 16.0f; bodyArmor->translateZ = pSkinOffset->fO / 16.0f;
if (waist)
waist->translateZ = pSkinOffset->fO / 16.0f; waist->translateZ = pSkinOffset->fO / 16.0f;
if (belt)
belt->translateZ = pSkinOffset->fO / 16.0f; belt->translateZ = pSkinOffset->fO / 16.0f;
bodyOffsets[2] = pSkinOffset->fO / 16.0f; }
} }
break; break;
case eBodyOffset_Arm0: case eBodyOffset_Arm0:
if (pSkinOffset->fD == 1 && arm0->translateX == 0) if (pSkinOffset->fD == 1 && arm0->translateX == 0)
{ {
arm0->translateX = pSkinOffset->fO / 16.0f; arm0->translateX = pSkinOffset->fO / 16.0f;
if (sleeve0) if (m_is64x64)
{
sleeve0->translateX = pSkinOffset->fO / 16.0f; sleeve0->translateX = pSkinOffset->fO / 16.0f;
if (armArmor0)
armArmor0->translateX = pSkinOffset->fO / 16.0f; armArmor0->translateX = pSkinOffset->fO / 16.0f;
arm0Offsets[0] = pSkinOffset->fO / 16.0f; }
} }
else if (pSkinOffset->fD == 2 && arm0->translateY == 0) else if (pSkinOffset->fD == 2 && arm0->translateY == 0)
{ {
arm0->translateY = pSkinOffset->fO / 16.0f; arm0->translateY = pSkinOffset->fO / 16.0f;
if (sleeve0) if (m_is64x64)
{
sleeve0->translateY = pSkinOffset->fO / 16.0f; sleeve0->translateY = pSkinOffset->fO / 16.0f;
if (armArmor0)
armArmor0->translateY = pSkinOffset->fO / 16.0f; armArmor0->translateY = pSkinOffset->fO / 16.0f;
arm0Offsets[1] = pSkinOffset->fO / 16.0f; }
} }
else if (pSkinOffset->fD == 3 && arm0->translateZ == 0) else if (pSkinOffset->fD == 3 && arm0->translateZ == 0)
{ {
arm0->translateZ = pSkinOffset->fO / 16.0f; arm0->translateZ = pSkinOffset->fO / 16.0f;
if (sleeve0) if (m_is64x64)
{
sleeve0->translateZ = pSkinOffset->fO / 16.0f; sleeve0->translateZ = pSkinOffset->fO / 16.0f;
if (armArmor0)
armArmor0->translateZ = pSkinOffset->fO / 16.0f; armArmor0->translateZ = pSkinOffset->fO / 16.0f;
arm0Offsets[2] = pSkinOffset->fO / 16.0f; }
} }
break; break;
case eBodyOffset_Arm1: case eBodyOffset_Arm1:
if (pSkinOffset->fD == 1 && arm1->translateX == 0) if (pSkinOffset->fD == 1 && arm1->translateX == 0)
{ {
arm1->translateX = pSkinOffset->fO / 16.0f; arm1->translateX = pSkinOffset->fO / 16.0f;
if (sleeve1) if (m_is64x64)
{
sleeve1->translateX = pSkinOffset->fO / 16.0f; sleeve1->translateX = pSkinOffset->fO / 16.0f;
if (armArmor1)
armArmor1->translateX = pSkinOffset->fO / 16.0f; armArmor1->translateX = pSkinOffset->fO / 16.0f;
arm1Offsets[0] = pSkinOffset->fO / 16.0f; }
} }
else if (pSkinOffset->fD == 2 && arm1->translateY == 0) else if (pSkinOffset->fD == 2 && arm1->translateY == 0)
{ {
arm1->translateY = pSkinOffset->fO / 16.0f; arm1->translateY = pSkinOffset->fO / 16.0f;
if (sleeve1) if (m_is64x64)
{
sleeve1->translateY = pSkinOffset->fO / 16.0f; sleeve1->translateY = pSkinOffset->fO / 16.0f;
if (armArmor1)
armArmor1->translateY = pSkinOffset->fO / 16.0f; armArmor1->translateY = pSkinOffset->fO / 16.0f;
arm1Offsets[1] = pSkinOffset->fO / 16.0f; }
} }
else if (pSkinOffset->fD == 3 && arm1->translateZ == 0) else if (pSkinOffset->fD == 3 && arm1->translateZ == 0)
{ {
arm1->translateZ = pSkinOffset->fO / 16.0f; arm1->translateZ = pSkinOffset->fO / 16.0f;
if (sleeve1) if (m_is64x64)
{
sleeve1->translateZ = pSkinOffset->fO / 16.0f; sleeve1->translateZ = pSkinOffset->fO / 16.0f;
if (armArmor1)
armArmor1->translateZ = pSkinOffset->fO / 16.0f; armArmor1->translateZ = pSkinOffset->fO / 16.0f;
arm1Offsets[2] = pSkinOffset->fO / 16.0f; }
} }
break; break;
case eBodyOffset_Leg0: case eBodyOffset_Leg0:
if (pSkinOffset->fD == 1 && leg0->translateX == 0) if (pSkinOffset->fD == 1 && leg0->translateX == 0)
{ {
leg0->translateX = pSkinOffset->fO / 16.0f; leg0->translateX = pSkinOffset->fO / 16.0f;
if (pants0) if (m_is64x64)
{
pants0->translateX = pSkinOffset->fO / 16.0f; pants0->translateX = pSkinOffset->fO / 16.0f;
if (legging0)
legging0->translateX = pSkinOffset->fO / 16.0f; legging0->translateX = pSkinOffset->fO / 16.0f;
if (sock0)
sock0->translateX = pSkinOffset->fO / 16.0f; sock0->translateX = pSkinOffset->fO / 16.0f;
if (boot0)
boot0->translateX = pSkinOffset->fO / 16.0f; boot0->translateX = pSkinOffset->fO / 16.0f;
leg0Offsets[0] = pSkinOffset->fO / 16.0f; }
} }
else if (pSkinOffset->fD == 2 && leg0->translateY == 0) else if (pSkinOffset->fD == 2 && leg0->translateY == 0)
{ {
leg0->translateY = pSkinOffset->fO / 16.0f; leg0->translateY = pSkinOffset->fO / 16.0f;
if (pants0) if (m_is64x64)
{
pants0->translateY = pSkinOffset->fO / 16.0f; pants0->translateY = pSkinOffset->fO / 16.0f;
if (legging0)
legging0->translateY = pSkinOffset->fO / 16.0f; legging0->translateY = pSkinOffset->fO / 16.0f;
if (sock0)
sock0->translateY = pSkinOffset->fO / 16.0f; sock0->translateY = pSkinOffset->fO / 16.0f;
if (boot0)
boot0->translateY = pSkinOffset->fO / 16.0f; boot0->translateY = pSkinOffset->fO / 16.0f;
leg0Offsets[1] = pSkinOffset->fO / 16.0f; }
} }
else if (pSkinOffset->fD == 3 && leg0->translateZ == 0) else if (pSkinOffset->fD == 3 && leg0->translateZ == 0)
{ {
leg0->translateZ = pSkinOffset->fO / 16.0f; leg0->translateZ = pSkinOffset->fO / 16.0f;
if (pants0) if (m_is64x64)
{
pants0->translateZ = pSkinOffset->fO / 16.0f; pants0->translateZ = pSkinOffset->fO / 16.0f;
if (legging0)
legging0->translateZ = pSkinOffset->fO / 16.0f; legging0->translateZ = pSkinOffset->fO / 16.0f;
if (sock0)
sock0->translateZ = pSkinOffset->fO / 16.0f; sock0->translateZ = pSkinOffset->fO / 16.0f;
if (boot0)
boot0->translateZ = pSkinOffset->fO / 16.0f; boot0->translateZ = pSkinOffset->fO / 16.0f;
leg0Offsets[2] = pSkinOffset->fO / 16.0f; }
} }
break; break;
case eBodyOffset_Leg1: case eBodyOffset_Leg1:
if (pSkinOffset->fD == 1 && leg1->translateX == 0) if (pSkinOffset->fD == 1 && leg1->translateX == 0)
{ {
leg1->translateX = pSkinOffset->fO / 16.0f; leg1->translateX = pSkinOffset->fO / 16.0f;
if (pants1) if (m_is64x64)
{
pants1->translateX = pSkinOffset->fO / 16.0f; pants1->translateX = pSkinOffset->fO / 16.0f;
if (legging1)
legging1->translateX = pSkinOffset->fO / 16.0f; legging1->translateX = pSkinOffset->fO / 16.0f;
if (sock1)
sock1->translateX = pSkinOffset->fO / 16.0f; sock1->translateX = pSkinOffset->fO / 16.0f;
if (boot1)
boot1->translateX = pSkinOffset->fO / 16.0f; boot1->translateX = pSkinOffset->fO / 16.0f;
leg1Offsets[0] = pSkinOffset->fO / 16.0f; }
} }
else if (pSkinOffset->fD == 2 && leg1->translateY == 0) else if (pSkinOffset->fD == 2 && leg1->translateY == 0)
{ {
leg1->translateY = pSkinOffset->fO / 16.0f; leg1->translateY = pSkinOffset->fO / 16.0f;
if (pants1) if (m_is64x64)
{
pants1->translateY = pSkinOffset->fO / 16.0f; pants1->translateY = pSkinOffset->fO / 16.0f;
if (legging1)
legging1->translateY = pSkinOffset->fO / 16.0f; legging1->translateY = pSkinOffset->fO / 16.0f;
if (sock1)
sock1->translateY = pSkinOffset->fO / 16.0f; sock1->translateY = pSkinOffset->fO / 16.0f;
if (boot1)
boot1->translateY = pSkinOffset->fO / 16.0f; boot1->translateY = pSkinOffset->fO / 16.0f;
leg1Offsets[1] = pSkinOffset->fO / 16.0f; }
} }
else if (pSkinOffset->fD == 3 && leg1->translateZ == 0) else if (pSkinOffset->fD == 3 && leg1->translateZ == 0)
{ {
leg1->translateZ = pSkinOffset->fO / 16.0f; leg1->translateZ = pSkinOffset->fO / 16.0f;
if (pants1) if (m_is64x64)
{
pants1->translateZ = pSkinOffset->fO / 16.0f; pants1->translateZ = pSkinOffset->fO / 16.0f;
if (legging1)
legging1->translateZ = pSkinOffset->fO / 16.0f; legging1->translateZ = pSkinOffset->fO / 16.0f;
if (sock1)
sock1->translateZ = pSkinOffset->fO / 16.0f; sock1->translateZ = pSkinOffset->fO / 16.0f;
if (boot1)
boot1->translateZ = pSkinOffset->fO / 16.0f; boot1->translateZ = pSkinOffset->fO / 16.0f;
leg1Offsets[2] = pSkinOffset->fO / 16.0f; }
} }
break; break;
} }
@ -1011,38 +1102,25 @@ void HumanoidModel::renderUI(float time, float r, float bob, float yRot, float x
leg0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderLeg0))>0&&(!(m_uiAnimOverrideBitmask&(1<<eAnim_RenderArmorLeg0))>0||!m_isArmor)); leg0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderLeg0))>0&&(!(m_uiAnimOverrideBitmask&(1<<eAnim_RenderArmorLeg0))>0||!m_isArmor));
leg1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderLeg1))>0&&(!(m_uiAnimOverrideBitmask&(1<<eAnim_RenderArmorLeg1))>0||!m_isArmor)); leg1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderLeg1))>0&&(!(m_uiAnimOverrideBitmask&(1<<eAnim_RenderArmorLeg1))>0||!m_isArmor));
hair->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderHair))>0); hair->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderHair))>0);
if (jacket != 0) if (m_is64x64)
{
jacket->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderJacket))>0); jacket->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderJacket))>0);
if (sleeve0 != 0)
sleeve0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderSleeve0))>0); sleeve0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderSleeve0))>0);
if (sleeve1 != 0)
sleeve1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderSleeve1))>0); sleeve1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderSleeve1))>0);
if (pants0 != 0)
pants0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderPants0))>0); pants0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderPants0))>0);
if (pants1 != 0)
pants1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderPants1))>0); pants1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<<eAnim_DisableRenderPants1))>0);
if (waist != 0)
waist->render(scale, usecompiled); waist->render(scale, usecompiled);
if (belt != 0)
belt->render(scale, usecompiled); belt->render(scale, usecompiled);
if (bodyArmor != 0)
bodyArmor->render(scale, usecompiled); bodyArmor->render(scale, usecompiled);
if (armArmor0 != 0)
armArmor0->render(scale, usecompiled); armArmor0->render(scale, usecompiled);
if (armArmor1 != 0)
armArmor1->render(scale, usecompiled); armArmor1->render(scale, usecompiled);
if (legging0 != 0)
legging0->render(scale, usecompiled); legging0->render(scale, usecompiled);
if (legging1 != 0)
legging1->render(scale, usecompiled); legging1->render(scale, usecompiled);
if (sock0 != 0)
sock0->render(scale, usecompiled); sock0->render(scale, usecompiled);
if (sock1 != 0)
sock1->render(scale, usecompiled); sock1->render(scale, usecompiled);
if (boot0 != 0)
boot0->render(scale, usecompiled); boot0->render(scale, usecompiled);
if (boot1 != 0)
boot1->render(scale, usecompiled); boot1->render(scale, usecompiled);
}
} }
void HumanoidModel::setupAnim(float time, float r, float bob, float yRot, float xRot, float scale, shared_ptr<Entity> entity, unsigned int uiBitmaskOverrideAnim) void HumanoidModel::setupAnim(float time, float r, float bob, float yRot, float xRot, float scale, shared_ptr<Entity> entity, unsigned int uiBitmaskOverrideAnim)

View file

@ -18,6 +18,7 @@ public:
bool elytraFlying; bool elytraFlying;
bool elytraCrouching; bool elytraCrouching;
bool m_isArmor; bool m_isArmor;
bool m_is64x64;
unsigned int m_uiAnimOverrideBitmask; unsigned int m_uiAnimOverrideBitmask;
float m_fYOffset; float m_fYOffset;
enum animbits enum animbits

View file

@ -407,26 +407,6 @@ void ItemInHandRenderer::render(float a)
return; return;
} }
vector<SKIN_OFFSET *>* pSkinOffsets = nullptr;
pSkinOffsets = player->GetSkinOffsets();
if (pSkinOffsets != nullptr)
{
for( SKIN_OFFSET *pSkinOffset : *pSkinOffsets )
{
switch (pSkinOffset->ePart)
{
case eBodyOffset_Arm0:
if (pSkinOffset->fD == 2)
h += pSkinOffset->fO / 16.0f;
break;
case eBodyOffset_Tool0:
if (pSkinOffset->fD == 2)
h += pSkinOffset->fO / 16.0f;
break;
}
}
}
// 4J - added so we can adjust the position of the hands for horizontal & vertical split screens // 4J - added so we can adjust the position of the hands for horizontal & vertical split screens
float fudgeX = 0.0f; float fudgeX = 0.0f;
float fudgeY = 0.0f; float fudgeY = 0.0f;