diff --git a/Minecraft.Client/HumanoidModel.cpp b/Minecraft.Client/HumanoidModel.cpp index e57cd999..c363f528 100644 --- a/Minecraft.Client/HumanoidModel.cpp +++ b/Minecraft.Client/HumanoidModel.cpp @@ -78,8 +78,6 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b this->texWidth = texWidth; this->texHeight = texHeight; - m_is64x64 = texHeight == 64; - jacket = nullptr; sleeve0 = nullptr; sleeve1 = nullptr; @@ -123,7 +121,7 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b body->addHumanoidBox(-4, 0, -2, 8, 12, 4, g); // Body body->setPos(0, 0 + yOffset, 0); - if (m_is64x64) + if ((texWidth == 64 && texHeight == 64) && !force32) { arm0 = new ModelPart(this, 24 + 16, 16); arm1 = new ModelPart(this, 16 + 16, 48); @@ -145,7 +143,7 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b sleeve0->setPos(-5, 2 + yOffset, 0); sleeve1->setPos(5, 2 + yOffset, 0); } - else if (!m_is64x64) + else if ((texWidth == 64 && texHeight == 32) || force32) { arm0 = new ModelPart(this, 24 + 16, 16); arm1 = new ModelPart(this, 24 + 16, 16); @@ -168,22 +166,7 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b if (mirror == true) arm1->bMirror = true; - if (!slim) - { - arm0->addHumanoidBox(-3, -2, -2, 4, 12, 4, g); // Arm0 - arm1->addHumanoidBox(-1, -2, -2, 4, 12, 4, g); // Arm1 - } - else if (slim) - { - arm0->addHumanoidBox(-2, -2, -2, 3, 12, 4, g); // Arm0 Slim - arm1->addHumanoidBox(-1, -2, -2, 3, 12, 4, g); // Arm1 Slim - } - - arm0->setPos(-5, 2 + yOffset, 0); - arm1->setPos(5, 2 + yOffset, 0); - - leg0 = new ModelPart(this, 0, 16); - if (m_is64x64) + if ((texWidth == 64 && texHeight == 64) && !force32) { leg0 = new ModelPart(this, 0, 16); leg1 = new ModelPart(this, 16, 48); @@ -196,7 +179,7 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b pants1->addHumanoidBox(-2, 0, -2, 4, 12, 4, g + 0.5); pants1->setPos(1.9, 12 + yOffset, 0); } - else if (!m_is64x64) + else if ((texWidth == 64 && texHeight == 32) || force32) { leg0 = new ModelPart(this, 0, 16); leg1 = new ModelPart(this, 0, 16); @@ -225,25 +208,16 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b leg1->compile(1.0f/16.0f); hair->compile(1.0f/16.0f); - if (m_is64x64) - { + if (jacket != 0) jacket->compile(1.0f/16.0f); + if (sleeve0 != 0) sleeve0->compile(1.0f/16.0f); + if (sleeve1 != 0) sleeve1->compile(1.0f/16.0f); + if (pants0 != 0) pants0->compile(1.0f/16.0f); + if (pants1 != 0) pants1->compile(1.0f/16.0f); - waist->compile(1.0f/16.0f); - belt->compile(1.0f/16.0f); - bodyArmor->compile(1.0f/16.0f); - armArmor0->compile(1.0f/16.0f); - armArmor1->compile(1.0f/16.0f); - legging0->compile(1.0f/16.0f); - legging1->compile(1.0f/16.0f); - sock0->compile(1.0f/16.0f); - sock1->compile(1.0f/16.0f); - boot0->compile(1.0f/16.0f); - boot1->compile(1.0f/16.0f); - } holdingLeftHand=0; holdingRightHand=0; @@ -297,400 +271,6 @@ void HumanoidModel::render(shared_ptr entity, float time, float r, float if(entity != nullptr) { 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 = dynamic_pointer_cast(entity); - vector* pSkinOffsets = nullptr; - if (player != nullptr) - pSkinOffsets = player->GetSkinOffsets(); - if (pSkinOffsets != nullptr) - { - for( SKIN_OFFSET *pSkinOffset : *pSkinOffsets ) - { - switch (pSkinOffset->ePart) - { - case eBodyOffset_Head: - if (pSkinOffset->fD == 1 && head->translateX == 0) - { - head->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) - { - head->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) - { - head->translateZ = pSkinOffset->fO / 16.0f; - hair->translateZ = pSkinOffset->fO / 16.0f; - headOffsets[2] = pSkinOffset->fO / 16.0f; - } - break; - case eBodyOffset_Body: - if (pSkinOffset->fD == 1 && body->translateX == 0) - { - body->translateX = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - jacket->translateX = pSkinOffset->fO / 16.0f; - bodyArmor->translateX = pSkinOffset->fO / 16.0f; - waist->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) - { - body->translateY = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - jacket->translateY = pSkinOffset->fO / 16.0f; - bodyArmor->translateY = pSkinOffset->fO / 16.0f; - waist->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) - { - body->translateZ = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - jacket->translateZ = pSkinOffset->fO / 16.0f; - bodyArmor->translateZ = pSkinOffset->fO / 16.0f; - waist->translateZ = pSkinOffset->fO / 16.0f; - belt->translateZ = pSkinOffset->fO / 16.0f; - } - bodyOffsets[2] = pSkinOffset->fO / 16.0f; - } - break; - case eBodyOffset_Arm0: - if (pSkinOffset->fD == 1 && arm0->translateX == 0) - { - arm0->translateX = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - sleeve0->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) - { - arm0->translateY = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - sleeve0->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) - { - arm0->translateZ = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - sleeve0->translateZ = pSkinOffset->fO / 16.0f; - armArmor0->translateZ = pSkinOffset->fO / 16.0f; - } - arm0Offsets[2] = pSkinOffset->fO / 16.0f; - } - break; - case eBodyOffset_Arm1: - if (pSkinOffset->fD == 1 && arm1->translateX == 0) - { - arm1->translateX = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - sleeve1->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) - { - arm1->translateY = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - sleeve1->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) - { - arm1->translateZ = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - sleeve1->translateZ = pSkinOffset->fO / 16.0f; - armArmor1->translateZ = pSkinOffset->fO / 16.0f; - } - arm1Offsets[2] = pSkinOffset->fO / 16.0f; - } - break; - case eBodyOffset_Leg0: - if (pSkinOffset->fD == 1 && leg0->translateX == 0) - { - leg0->translateX = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - pants0->translateX = pSkinOffset->fO / 16.0f; - legging0->translateX = pSkinOffset->fO / 16.0f; - sock0->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) - { - leg0->translateY = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - pants0->translateY = pSkinOffset->fO / 16.0f; - legging0->translateY = pSkinOffset->fO / 16.0f; - sock0->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) - { - leg0->translateZ = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - pants0->translateZ = pSkinOffset->fO / 16.0f; - legging0->translateZ = pSkinOffset->fO / 16.0f; - sock0->translateZ = pSkinOffset->fO / 16.0f; - boot0->translateZ = pSkinOffset->fO / 16.0f; - } - leg0Offsets[2] = pSkinOffset->fO / 16.0f; - } - break; - case eBodyOffset_Leg1: - if (pSkinOffset->fD == 1 && leg1->translateX == 0) - { - leg1->translateX = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - pants1->translateX = pSkinOffset->fO / 16.0f; - legging1->translateX = pSkinOffset->fO / 16.0f; - sock1->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) - { - leg1->translateY = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - pants1->translateY = pSkinOffset->fO / 16.0f; - legging1->translateY = pSkinOffset->fO / 16.0f; - sock1->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) - { - leg1->translateZ = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - pants1->translateZ = pSkinOffset->fO / 16.0f; - legging1->translateZ = pSkinOffset->fO / 16.0f; - sock1->translateZ = pSkinOffset->fO / 16.0f; - boot1->translateZ = pSkinOffset->fO / 16.0f; - } - leg1Offsets[2] = pSkinOffset->fO / 16.0f; - } - break; - case eBodyOffset_Helmet: - if (m_isArmor) - { - if (pSkinOffset->fD == 1 && head->translateX == headOffsets[0]) - { - head->translateX += pSkinOffset->fO / 16.0f; - hair->translateX += pSkinOffset->fO / 16.0f; - } - else if (pSkinOffset->fD == 2 && head->translateY == headOffsets[1]) - { - head->translateY += pSkinOffset->fO / 16.0f; - hair->translateY += pSkinOffset->fO / 16.0f; - } - else if (pSkinOffset->fD == 3 && head->translateZ == headOffsets[2]) - { - head->translateZ += pSkinOffset->fO / 16.0f; - hair->translateZ += pSkinOffset->fO / 16.0f; - } - } - break; - case eBodyOffset_BodyArmor: - if (m_isArmor && !body->isArmorPart2) - { - if (pSkinOffset->fD == 1 && body->translateX == bodyOffsets[0]) - body->translateX += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 2 && body->translateY == bodyOffsets[1]) - body->translateY += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 3 && body->translateZ == bodyOffsets[2]) - body->translateZ += pSkinOffset->fO / 16.0f; - } - break; - case eBodyOffset_ArmArmor0: - if (m_isArmor) - { - if (pSkinOffset->fD == 1 && arm0->translateX == arm0Offsets[0]) - arm0->translateX += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 2 && arm0->translateY == arm0Offsets[1]) - arm0->translateY += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 3 && arm0->translateZ == arm0Offsets[2]) - arm0->translateZ += pSkinOffset->fO / 16.0f; - } - break; - case eBodyOffset_ArmArmor1: - if (m_isArmor) - { - if (pSkinOffset->fD == 1 && arm1->translateX == arm1Offsets[0]) - arm1->translateX += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 2 && arm1->translateY == arm1Offsets[1]) - arm1->translateY += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 3 && arm1->translateZ == arm1Offsets[2]) - arm1->translateZ += pSkinOffset->fO / 16.0f; - } - break; - case eBodyOffset_Waist: - if (m_isArmor && body->isArmorPart2) - { - if (pSkinOffset->fD == 1 && body->translateX == bodyOffsets[0]) - body->translateX += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 2 && body->translateY == bodyOffsets[1]) - body->translateY += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 3 && body->translateZ == bodyOffsets[2]) - body->translateZ += pSkinOffset->fO / 16.0f; - } - break; - case eBodyOffset_Legging0: - if (m_isArmor && leg0->isArmorPart2) - { - if (pSkinOffset->fD == 1 && leg0->translateX == leg0Offsets[0]) - leg0->translateX += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 2 && leg0->translateY == leg0Offsets[1]) - leg0->translateY += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 3 && leg0->translateZ == leg0Offsets[2]) - leg0->translateZ += pSkinOffset->fO / 16.0f; - } - break; - case eBodyOffset_Legging1: - if (m_isArmor && leg1->isArmorPart2) - { - if (pSkinOffset->fD == 1 && leg1->translateX == leg1Offsets[0]) - leg1->translateX += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 2 && leg1->translateY == leg1Offsets[1]) - leg1->translateY += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 3 && leg1->translateZ == leg1Offsets[2]) - leg1->translateZ += pSkinOffset->fO / 16.0f; - } - break; - case eBodyOffset_Boot0: - if (m_isArmor && !leg0->isArmorPart2) - { - if (pSkinOffset->fD == 1 && leg0->translateX == leg0Offsets[0]) - leg0->translateX += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 2 && leg0->translateY == leg0Offsets[1]) - leg0->translateY += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 3 && leg0->translateZ == leg0Offsets[2]) - leg0->translateZ += pSkinOffset->fO / 16.0f; - } - break; - case eBodyOffset_Boot1: - if (m_isArmor && !leg1->isArmorPart2) - { - if (pSkinOffset->fD == 1 && leg1->translateX == leg1Offsets[0]) - leg1->translateX += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 2 && leg1->translateY == leg1Offsets[1]) - leg1->translateY += pSkinOffset->fO / 16.0f; - else if (pSkinOffset->fD == 3 && leg1->translateZ == leg1Offsets[2]) - leg1->translateZ += pSkinOffset->fO / 16.0f; - } - break; - } - } - } } setupAnim(time, r, bob, yRot, xRot, scale, entity, m_uiAnimOverrideBitmask); @@ -713,14 +293,16 @@ void HumanoidModel::render(shared_ptr entity, float time, float r, float leg1->render(scale, usecompiled); hair->render(scale, usecompiled); - if (m_is64x64) - { + if (jacket) jacket->render(scale, usecompiled); + if (sleeve0) sleeve0->render(scale, usecompiled); + if (sleeve1) sleeve1->render(scale, usecompiled); + if (pants0) pants0->render(scale, usecompiled); + if (pants1) pants1->render(scale, usecompiled); - } glPopMatrix(); } @@ -733,322 +315,17 @@ void HumanoidModel::render(shared_ptr entity, float time, float r, float leg0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0); leg1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0); hair->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0); - if (m_is64x64) - { + + if (jacket) jacket->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0); + if (sleeve0) sleeve0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0); + if (sleeve1) sleeve1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0); + if (pants0) pants0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0); + if (pants1) pants1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0); - waist->render(scale, usecompiled); - belt->render(scale, usecompiled); - bodyArmor->render(scale, usecompiled); - armArmor0->render(scale, usecompiled); - armArmor1->render(scale, usecompiled); - legging0->render(scale, usecompiled); - legging1->render(scale, usecompiled); - sock0->render(scale, usecompiled); - sock1->render(scale, usecompiled); - boot0->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 -void HumanoidModel::renderUI(float time, float r, float bob, float yRot, float xRot, float scale, bool usecompiled, vector *skinOffsets) -{ - // 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; - } - - if (skinOffsets != nullptr) - { - for( SKIN_OFFSET *pSkinOffset : *skinOffsets ) - { - switch (pSkinOffset->ePart) - { - case eBodyOffset_Head: - if (pSkinOffset->fD == 1 && head->translateX == 0) - { - head->translateX = pSkinOffset->fO / 16.0f; - hair->translateX = pSkinOffset->fO / 16.0f; - } - else if (pSkinOffset->fD == 2 && head->translateY == 0) - { - head->translateY = pSkinOffset->fO / 16.0f; - hair->translateY = pSkinOffset->fO / 16.0f; - } - else if (pSkinOffset->fD == 3 && head->translateZ == 0) - { - head->translateZ = pSkinOffset->fO / 16.0f; - hair->translateZ = pSkinOffset->fO / 16.0f; - } - break; - case eBodyOffset_Body: - if (pSkinOffset->fD == 1 && body->translateX == 0) - { - body->translateX = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - jacket->translateX = pSkinOffset->fO / 16.0f; - bodyArmor->translateX = pSkinOffset->fO / 16.0f; - waist->translateX = pSkinOffset->fO / 16.0f; - belt->translateX = pSkinOffset->fO / 16.0f; - } - } - else if (pSkinOffset->fD == 2 && body->translateY == 0) - { - body->translateY = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - jacket->translateY = pSkinOffset->fO / 16.0f; - bodyArmor->translateY = pSkinOffset->fO / 16.0f; - waist->translateY = pSkinOffset->fO / 16.0f; - belt->translateY = pSkinOffset->fO / 16.0f; - } - } - else if (pSkinOffset->fD == 3 && body->translateZ == 0) - { - body->translateZ = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - jacket->translateZ = pSkinOffset->fO / 16.0f; - bodyArmor->translateZ = pSkinOffset->fO / 16.0f; - waist->translateZ = pSkinOffset->fO / 16.0f; - belt->translateZ = pSkinOffset->fO / 16.0f; - } - } - break; - case eBodyOffset_Arm0: - if (pSkinOffset->fD == 1 && arm0->translateX == 0) - { - arm0->translateX = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - sleeve0->translateX = pSkinOffset->fO / 16.0f; - armArmor0->translateX = pSkinOffset->fO / 16.0f; - } - } - else if (pSkinOffset->fD == 2 && arm0->translateY == 0) - { - arm0->translateY = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - sleeve0->translateY = pSkinOffset->fO / 16.0f; - armArmor0->translateY = pSkinOffset->fO / 16.0f; - } - } - else if (pSkinOffset->fD == 3 && arm0->translateZ == 0) - { - arm0->translateZ = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - sleeve0->translateZ = pSkinOffset->fO / 16.0f; - armArmor0->translateZ = pSkinOffset->fO / 16.0f; - } - } - break; - case eBodyOffset_Arm1: - if (pSkinOffset->fD == 1 && arm1->translateX == 0) - { - arm1->translateX = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - sleeve1->translateX = pSkinOffset->fO / 16.0f; - armArmor1->translateX = pSkinOffset->fO / 16.0f; - } - } - else if (pSkinOffset->fD == 2 && arm1->translateY == 0) - { - arm1->translateY = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - sleeve1->translateY = pSkinOffset->fO / 16.0f; - armArmor1->translateY = pSkinOffset->fO / 16.0f; - } - } - else if (pSkinOffset->fD == 3 && arm1->translateZ == 0) - { - arm1->translateZ = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - sleeve1->translateZ = pSkinOffset->fO / 16.0f; - armArmor1->translateZ = pSkinOffset->fO / 16.0f; - } - } - break; - case eBodyOffset_Leg0: - if (pSkinOffset->fD == 1 && leg0->translateX == 0) - { - leg0->translateX = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - pants0->translateX = pSkinOffset->fO / 16.0f; - legging0->translateX = pSkinOffset->fO / 16.0f; - sock0->translateX = pSkinOffset->fO / 16.0f; - boot0->translateX = pSkinOffset->fO / 16.0f; - } - } - else if (pSkinOffset->fD == 2 && leg0->translateY == 0) - { - leg0->translateY = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - pants0->translateY = pSkinOffset->fO / 16.0f; - legging0->translateY = pSkinOffset->fO / 16.0f; - sock0->translateY = pSkinOffset->fO / 16.0f; - boot0->translateY = pSkinOffset->fO / 16.0f; - } - } - else if (pSkinOffset->fD == 3 && leg0->translateZ == 0) - { - leg0->translateZ = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - pants0->translateZ = pSkinOffset->fO / 16.0f; - legging0->translateZ = pSkinOffset->fO / 16.0f; - sock0->translateZ = pSkinOffset->fO / 16.0f; - boot0->translateZ = pSkinOffset->fO / 16.0f; - } - } - break; - case eBodyOffset_Leg1: - if (pSkinOffset->fD == 1 && leg1->translateX == 0) - { - leg1->translateX = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - pants1->translateX = pSkinOffset->fO / 16.0f; - legging1->translateX = pSkinOffset->fO / 16.0f; - sock1->translateX = pSkinOffset->fO / 16.0f; - boot1->translateX = pSkinOffset->fO / 16.0f; - } - } - else if (pSkinOffset->fD == 2 && leg1->translateY == 0) - { - leg1->translateY = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - pants1->translateY = pSkinOffset->fO / 16.0f; - legging1->translateY = pSkinOffset->fO / 16.0f; - sock1->translateY = pSkinOffset->fO / 16.0f; - boot1->translateY = pSkinOffset->fO / 16.0f; - } - } - else if (pSkinOffset->fD == 3 && leg1->translateZ == 0) - { - leg1->translateZ = pSkinOffset->fO / 16.0f; - if (m_is64x64) - { - pants1->translateZ = pSkinOffset->fO / 16.0f; - legging1->translateZ = pSkinOffset->fO / 16.0f; - sock1->translateZ = pSkinOffset->fO / 16.0f; - boot1->translateZ = pSkinOffset->fO / 16.0f; - } - } - break; - } - } - } - - setupAnim(time, r, bob, yRot, xRot, scale, nullptr, m_uiAnimOverrideBitmask); - - head->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0&&(!(m_uiAnimOverrideBitmask&(1<0||!m_isArmor)); - body->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0&&(!(m_uiAnimOverrideBitmask&(1<0||!m_isArmor)); - arm0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0&&(!(m_uiAnimOverrideBitmask&(1<0||!m_isArmor)); - arm1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0&&(!(m_uiAnimOverrideBitmask&(1<0||!m_isArmor)); - leg0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0&&(!(m_uiAnimOverrideBitmask&(1<0||!m_isArmor)); - leg1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0&&(!(m_uiAnimOverrideBitmask&(1<0||!m_isArmor)); - hair->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0); - if (m_is64x64) - { - jacket->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0); - sleeve0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0); - sleeve1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0); - pants0->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0); - pants1->render(scale, usecompiled,(m_uiAnimOverrideBitmask&(1<0); - waist->render(scale, usecompiled); - belt->render(scale, usecompiled); - bodyArmor->render(scale, usecompiled); - armArmor0->render(scale, usecompiled); - armArmor1->render(scale, usecompiled); - legging0->render(scale, usecompiled); - legging1->render(scale, usecompiled); - sock0->render(scale, usecompiled); - sock1->render(scale, usecompiled); - boot0->render(scale, usecompiled); - boot1->render(scale, usecompiled); } } diff --git a/Minecraft.Client/HumanoidModel.h b/Minecraft.Client/HumanoidModel.h index 3d194411..4c7f95f5 100644 --- a/Minecraft.Client/HumanoidModel.h +++ b/Minecraft.Client/HumanoidModel.h @@ -15,8 +15,6 @@ public: float eating_swing; bool elytraFlying; bool elytraCrouching; - bool m_isArmor; - bool m_is64x64; unsigned int m_uiAnimOverrideBitmask; float m_fYOffset; enum animbits