From 0d4bd61c06d21f108085f09c782a52a8e5f46eb3 Mon Sep 17 00:00:00 2001 From: ItzSonicFaner <165782267+ItzSonicFaner@users.noreply.github.com> Date: Sat, 14 Mar 2026 12:43:29 +0200 Subject: [PATCH] Bug fix --- .../Common/UI/UIControl_PlayerSkinPreview.cpp | 44 +++---------------- Minecraft.Client/LivingEntityRenderer.cpp | 26 +++++------ Minecraft.Client/PlayerRenderer.cpp | 18 ++++---- 3 files changed, 27 insertions(+), 61 deletions(-) diff --git a/Minecraft.Client/Common/UI/UIControl_PlayerSkinPreview.cpp b/Minecraft.Client/Common/UI/UIControl_PlayerSkinPreview.cpp index 147e86ecd..f3acaf4b6 100644 --- a/Minecraft.Client/Common/UI/UIControl_PlayerSkinPreview.cpp +++ b/Minecraft.Client/Common/UI/UIControl_PlayerSkinPreview.cpp @@ -258,48 +258,14 @@ void UIControl_PlayerSkinPreview::render(EntityRenderer *renderer, double x, dou glDisable(GL_CULL_FACE); HumanoidModel *model; + Textures *t = Minecraft::GetInstance()->textures; - switch (m_backupTexture) - { - case TN_MOB_ALEX: + if (t->loadMemTexture(m_customTextureUrl, m_backupTexture) >= 46 && t->loadMemTexture(m_customTextureUrl, m_backupTexture) <= 53) model = static_cast(renderer->getModelSlim()); - break; - case TN_MOB_ALEX1: - model = static_cast(renderer->getModelSlim()); - break; - case TN_MOB_ALEX2: - model = static_cast(renderer->getModelSlim()); - break; - case TN_MOB_ALEX3: - model = static_cast(renderer->getModelSlim()); - break; - case TN_MOB_ALEX4: - model = static_cast(renderer->getModelSlim()); - break; - case TN_MOB_ALEX5: - model = static_cast(renderer->getModelSlim()); - break; - case TN_MOB_ALEX6: - model = static_cast(renderer->getModelSlim()); - break; - case TN_MOB_ALEX7: - model = static_cast(renderer->getModelSlim()); - break; - case TN_MOB_DEVALEX: - model = static_cast(renderer->getModelSlim()); - break; - case TN_MOB_DEVSTEVE: + else if (t->loadMemTexture(m_customTextureUrl, m_backupTexture) >= 37 && t->loadMemTexture(m_customTextureUrl, m_backupTexture) <= 45) + model = static_cast(renderer->getModel()); + else model = static_cast(renderer->getModelCustom()); - break; - default: - if (m_uiAnimOverrideBitmask&(1<<18)) - model = static_cast(renderer->getModelCustom()); - else if (m_uiAnimOverrideBitmask&(1<<19)) - model = static_cast(renderer->getModelSlim()); - else - model = static_cast(renderer->getModel()); - break; - } //getAttackAnim(mob, a); //if (armor != nullptr) armor->attackTime = model->attackTime; diff --git a/Minecraft.Client/LivingEntityRenderer.cpp b/Minecraft.Client/LivingEntityRenderer.cpp index 32397f55a..be70c0320 100644 --- a/Minecraft.Client/LivingEntityRenderer.cpp +++ b/Minecraft.Client/LivingEntityRenderer.cpp @@ -56,9 +56,9 @@ void LivingEntityRenderer::render(shared_ptr _mob, double x, double y, d glPushMatrix(); glDisable(GL_CULL_FACE); - if ((player != nullptr && modelCustom != nullptr && player->getPlayerDefaultSkin() == 18) || player->getAnimOverrideBitmask()&(1<<18)) resModel = modelCustom; - else if ((player != nullptr && modelSlim != nullptr && player->getPlayerDefaultSkin() >= 9) || player->getAnimOverrideBitmask()&(1<<19)) resModel = modelSlim; - else resModel = model; + if (player != nullptr && model != nullptr && player->getCustomSkin() >= 0 && player->getCustomSkin() <= 9) resModel = model; + else if (player != nullptr && modelSlim != nullptr && player->getCustomSkin() >= 10 && player->getCustomSkin() <= 17) resModel = modelSlim; + else resModel = modelCustom; resModel->attackTime = getAttackAnim(mob, a); if (armor != nullptr) armor->attackTime = resModel->attackTime; @@ -253,9 +253,9 @@ void LivingEntityRenderer::renderModel(shared_ptr mob, float wp, f shared_ptr player = dynamic_pointer_cast(mob); Model *resModel; - if ((player != nullptr && modelCustom != nullptr && player->getPlayerDefaultSkin() == 18) || player->getAnimOverrideBitmask()&(1<<18)) resModel = modelCustom; - else if ((player != nullptr && modelSlim != nullptr && player->getPlayerDefaultSkin() >= 9) || player->getAnimOverrideBitmask()&(1<<19)) resModel = modelSlim; - else resModel = model; + if (player != nullptr && model != nullptr && player->getCustomSkin() >= 0 && player->getCustomSkin() <= 9) resModel = model; + else if (player != nullptr && modelSlim != nullptr && player->getCustomSkin() >= 10 && player->getCustomSkin() <= 17) resModel = modelSlim; + else resModel = modelCustom; bindTexture(mob); if (!mob->isInvisible()) @@ -329,6 +329,12 @@ void LivingEntityRenderer::additionalRendering(shared_ptr mob, flo void LivingEntityRenderer::renderArrows(shared_ptr mob, float a) { shared_ptr player = dynamic_pointer_cast(mob); + Model *resModel; + + if (player != nullptr && model != nullptr && player->getCustomSkin() >= 0 && player->getCustomSkin() <= 9) resModel = model; + else if (player != nullptr && modelSlim != nullptr && player->getCustomSkin() >= 10 && player->getCustomSkin() <= 17) resModel = modelSlim; + else resModel = modelCustom; + int arrowCount = mob->getArrowCount(); if (arrowCount > 0) @@ -341,13 +347,7 @@ void LivingEntityRenderer::renderArrows(shared_ptr mob, float a) glPushMatrix(); ModelPart *modelPart; - - if ((player != nullptr && modelCustom != nullptr && player->getPlayerDefaultSkin() == 18) || player->getAnimOverrideBitmask()&(1<<18)) - modelPart = modelCustom->getRandomModelPart(random); - else if ((player != nullptr && modelSlim != nullptr && player->getPlayerDefaultSkin() >= 9) || player->getAnimOverrideBitmask()&(1<<19)) - modelPart = modelSlim->getRandomModelPart(random); - else - modelPart = model->getRandomModelPart(random); + modelPart = resModel->getRandomModelPart(random); Cube *cube = modelPart->cubes[random.nextInt(modelPart->cubes.size())]; modelPart->translateTo(1 / 16.0f); diff --git a/Minecraft.Client/PlayerRenderer.cpp b/Minecraft.Client/PlayerRenderer.cpp index f7599f3c0..daf6fcff7 100644 --- a/Minecraft.Client/PlayerRenderer.cpp +++ b/Minecraft.Client/PlayerRenderer.cpp @@ -167,9 +167,9 @@ void PlayerRenderer::render(shared_ptr _mob, double x, double y, double if(mob == nullptr) return; if(mob->hasInvisiblePrivilege()) return; - if ((mob != nullptr && modelCustom != nullptr && mob->getPlayerDefaultSkin() == 18) || mob->getAnimOverrideBitmask()&(1<<18)) resModel = humanoidModelCustom; - else if ((mob != nullptr && modelSlim != nullptr && mob->getPlayerDefaultSkin() >= 9) || mob->getAnimOverrideBitmask()&(1<<19)) resModel = humanoidModelSlim; - else resModel = humanoidModel; + if (mob != nullptr && humanoidModel != nullptr && mob->getCustomSkin() >= 0 && mob->getCustomSkin() <= 9) resModel = humanoidModel; + else if (mob != nullptr && humanoidModelSlim != nullptr && mob->getCustomSkin() >= 10 && mob->getCustomSkin() <= 17) resModel = humanoidModelSlim; + else resModel = humanoidModelCustom; shared_ptr item = mob->inventory->getSelected(); @@ -274,9 +274,9 @@ void PlayerRenderer::additionalRendering(shared_ptr _mob, float a) shared_ptr mob = dynamic_pointer_cast(_mob); HumanoidModel *resModel; - if ((mob != nullptr && modelCustom != nullptr && mob->getPlayerDefaultSkin() == 18) || mob->getAnimOverrideBitmask()&(1<<18)) resModel = humanoidModelCustom; - else if ((mob != nullptr && modelSlim != nullptr && mob->getPlayerDefaultSkin() >= 9) || mob->getAnimOverrideBitmask()&(1<<19)) resModel = humanoidModelSlim; - else resModel = humanoidModel; + if (mob != nullptr && humanoidModel != nullptr && mob->getCustomSkin() >= 0 && mob->getCustomSkin() <= 9) resModel = humanoidModel; + else if (mob != nullptr && humanoidModelSlim != nullptr && mob->getCustomSkin() >= 10 && mob->getCustomSkin() <= 17) resModel = humanoidModelSlim; + else resModel = humanoidModelCustom; shared_ptr headGear = mob->inventory->getArmor(3); if (headGear != nullptr) @@ -523,9 +523,9 @@ void PlayerRenderer::renderHand() shared_ptr player = dynamic_pointer_cast(Minecraft::GetInstance()->player); HumanoidModel *resModel; - if ((player != nullptr && modelCustom != nullptr && player->getPlayerDefaultSkin() == 18) || player->getAnimOverrideBitmask()&(1<<18)) resModel = humanoidModelCustom; - else if ((player != nullptr && modelSlim != nullptr && player->getPlayerDefaultSkin() >= 9) || player->getAnimOverrideBitmask()&(1<<19)) resModel = humanoidModelSlim; - else resModel = humanoidModel; + if (player != nullptr && humanoidModel != nullptr && player->getCustomSkin() >= 0 && player->getCustomSkin() <= 9) resModel = humanoidModel; + else if (player != nullptr && humanoidModelSlim != nullptr && player->getCustomSkin() >= 10 && player->getCustomSkin() <= 17) resModel = humanoidModelSlim; + else resModel = humanoidModelCustom; float brightness = 1; glColor3f(brightness, brightness, brightness);