diff --git a/Minecraft.Client/Common/UI/UIControl_PlayerSkinPreview.cpp b/Minecraft.Client/Common/UI/UIControl_PlayerSkinPreview.cpp index cafe26c1e..147e86ecd 100644 --- a/Minecraft.Client/Common/UI/UIControl_PlayerSkinPreview.cpp +++ b/Minecraft.Client/Common/UI/UIControl_PlayerSkinPreview.cpp @@ -259,10 +259,47 @@ void UIControl_PlayerSkinPreview::render(EntityRenderer *renderer, double x, dou HumanoidModel *model; - if (m_backupTexture == TN_MOB_CHAR8) + switch (m_backupTexture) + { + case TN_MOB_ALEX: model = static_cast(renderer->getModelSlim()); - else - model = static_cast(renderer->getModel()); + 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: + 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/Common/UI/UIScene_SkinSelectMenu.cpp b/Minecraft.Client/Common/UI/UIScene_SkinSelectMenu.cpp index 543a23cbe..2c179d9d7 100644 --- a/Minecraft.Client/Common/UI/UIScene_SkinSelectMenu.cpp +++ b/Minecraft.Client/Common/UI/UIScene_SkinSelectMenu.cpp @@ -25,6 +25,15 @@ const WCHAR *UIScene_SkinSelectMenu::wchDefaultNamesA[]= L"Cyclist Steve", L"Boxer Steve", L"Alex", + L"Tennis Alex", + L"Tuxedo Alex", + L"Athlete Alex", + L"Swedish Alex", + L"Prisoner Alex", + L"Cyclist Alex", + L"Boxer Alex", + L"Developer Alex", + L"Developer Steve", }; UIScene_SkinSelectMenu::UIScene_SkinSelectMenu(int iPad, void *initData, UILayer *parentLayer) : UIScene(iPad, parentLayer) @@ -995,7 +1004,34 @@ TEXTURE_NAME UIScene_SkinSelectMenu::getTextureId(int skinIndex) texture = TN_MOB_CHAR7; break; case eDefaultSkins_Skin8: - texture = TN_MOB_CHAR8; + texture = TN_MOB_ALEX; + break; + case eDefaultSkins_Skin9: + texture = TN_MOB_ALEX1; + break; + case eDefaultSkins_Skin10: + texture = TN_MOB_ALEX2; + break; + case eDefaultSkins_Skin11: + texture = TN_MOB_ALEX3; + break; + case eDefaultSkins_Skin12: + texture = TN_MOB_ALEX4; + break; + case eDefaultSkins_Skin13: + texture = TN_MOB_ALEX5; + break; + case eDefaultSkins_Skin14: + texture = TN_MOB_ALEX6; + break; + case eDefaultSkins_Skin15: + texture = TN_MOB_ALEX7; + break; + case eDefaultSkins_Skin16: + texture = TN_MOB_DEVALEX; + break; + case eDefaultSkins_Skin17: + texture = TN_MOB_DEVSTEVE; break; }; diff --git a/Minecraft.Client/Common/res/1_2_2/mob/DevAlex.png b/Minecraft.Client/Common/res/1_2_2/mob/DevAlex.png new file mode 100644 index 000000000..9db32e3d8 Binary files /dev/null and b/Minecraft.Client/Common/res/1_2_2/mob/DevAlex.png differ diff --git a/Minecraft.Client/Common/res/1_2_2/mob/DevSteve.png b/Minecraft.Client/Common/res/1_2_2/mob/DevSteve.png new file mode 100644 index 000000000..652a7c427 Binary files /dev/null and b/Minecraft.Client/Common/res/1_2_2/mob/DevSteve.png differ diff --git a/Minecraft.Client/Common/res/1_2_2/mob/alex.png b/Minecraft.Client/Common/res/1_2_2/mob/alex.png new file mode 100644 index 000000000..b643fe2d0 Binary files /dev/null and b/Minecraft.Client/Common/res/1_2_2/mob/alex.png differ diff --git a/Minecraft.Client/Common/res/1_2_2/mob/alex1.png b/Minecraft.Client/Common/res/1_2_2/mob/alex1.png new file mode 100644 index 000000000..3f6abf7e0 Binary files /dev/null and b/Minecraft.Client/Common/res/1_2_2/mob/alex1.png differ diff --git a/Minecraft.Client/Common/res/1_2_2/mob/alex2.png b/Minecraft.Client/Common/res/1_2_2/mob/alex2.png new file mode 100644 index 000000000..6f42db335 Binary files /dev/null and b/Minecraft.Client/Common/res/1_2_2/mob/alex2.png differ diff --git a/Minecraft.Client/Common/res/1_2_2/mob/alex3.png b/Minecraft.Client/Common/res/1_2_2/mob/alex3.png new file mode 100644 index 000000000..a67a3c823 Binary files /dev/null and b/Minecraft.Client/Common/res/1_2_2/mob/alex3.png differ diff --git a/Minecraft.Client/Common/res/1_2_2/mob/alex4.png b/Minecraft.Client/Common/res/1_2_2/mob/alex4.png new file mode 100644 index 000000000..a73a9314a Binary files /dev/null and b/Minecraft.Client/Common/res/1_2_2/mob/alex4.png differ diff --git a/Minecraft.Client/Common/res/1_2_2/mob/alex5.png b/Minecraft.Client/Common/res/1_2_2/mob/alex5.png new file mode 100644 index 000000000..a81c05fcc Binary files /dev/null and b/Minecraft.Client/Common/res/1_2_2/mob/alex5.png differ diff --git a/Minecraft.Client/Common/res/1_2_2/mob/alex6.png b/Minecraft.Client/Common/res/1_2_2/mob/alex6.png new file mode 100644 index 000000000..eed411793 Binary files /dev/null and b/Minecraft.Client/Common/res/1_2_2/mob/alex6.png differ diff --git a/Minecraft.Client/Common/res/1_2_2/mob/alex7.png b/Minecraft.Client/Common/res/1_2_2/mob/alex7.png new file mode 100644 index 000000000..cb20ba3aa Binary files /dev/null and b/Minecraft.Client/Common/res/1_2_2/mob/alex7.png differ diff --git a/Minecraft.Client/Common/res/1_2_2/mob/char8.png b/Minecraft.Client/Common/res/1_2_2/mob/char8.png deleted file mode 100644 index 6a68a2f99..000000000 Binary files a/Minecraft.Client/Common/res/1_2_2/mob/char8.png and /dev/null differ diff --git a/Minecraft.Client/Common/res/TitleUpdate/res/mob/char8.png b/Minecraft.Client/Common/res/TitleUpdate/res/mob/char8.png deleted file mode 100644 index 6a68a2f99..000000000 Binary files a/Minecraft.Client/Common/res/TitleUpdate/res/mob/char8.png and /dev/null differ diff --git a/Minecraft.Client/Common/res/mob/char8.png b/Minecraft.Client/Common/res/mob/char8.png deleted file mode 100644 index 6a68a2f99..000000000 Binary files a/Minecraft.Client/Common/res/mob/char8.png and /dev/null differ diff --git a/Minecraft.Client/EntityRenderDispatcher.cpp b/Minecraft.Client/EntityRenderDispatcher.cpp index 0a1aa7b91..01972e568 100644 --- a/Minecraft.Client/EntityRenderDispatcher.cpp +++ b/Minecraft.Client/EntityRenderDispatcher.cpp @@ -117,7 +117,7 @@ EntityRenderDispatcher::EntityRenderDispatcher() renderers[eTYPE_PIGZOMBIE] = new ZombieRenderer(); renderers[eTYPE_SLIME] = new SlimeRenderer(new SlimeModel(16), new SlimeModel(0), 0.25f); renderers[eTYPE_LAVASLIME] = new LavaSlimeRenderer(); - renderers[eTYPE_PLAYER] = new PlayerRenderer(true); + renderers[eTYPE_PLAYER] = new PlayerRenderer(); renderers[eTYPE_GIANT] = new GiantMobRenderer(new ZombieModel(), 0.5f, 6); renderers[eTYPE_GHAST] = new GhastRenderer(); renderers[eTYPE_SQUID] = new SquidRenderer(new SquidModel(), 0.7f); @@ -180,7 +180,6 @@ EntityRenderDispatcher::EntityRenderDispatcher() EntityRenderer *EntityRenderDispatcher::getRenderer(eINSTANCEOF e) { if( (e & eTYPE_PLAYER) == eTYPE_PLAYER) e = eTYPE_PLAYER; - else if( (e & eTYPE_PLAYER) == eTYPE_PLAYER) e = eTYPE_PLAYER; //EntityRenderer * r = renderers[e]; auto it = renderers.find(e); // 4J Stu - The .at and [] accessors insert elements if they don't exist diff --git a/Minecraft.Client/EntityRenderer.cpp b/Minecraft.Client/EntityRenderer.cpp index cf68c122b..1ed103a0c 100644 --- a/Minecraft.Client/EntityRenderer.cpp +++ b/Minecraft.Client/EntityRenderer.cpp @@ -19,6 +19,7 @@ ResourceLocation EntityRenderer::SHADOW_LOCATION = ResourceLocation(TN__CLAMP__M EntityRenderer::EntityRenderer() { model = nullptr; + modelCustom = nullptr; modelSlim = nullptr; tileRenderer = new TileRenderer(); shadowRadius = 0; diff --git a/Minecraft.Client/EntityRenderer.h b/Minecraft.Client/EntityRenderer.h index d32a0f22d..2997027af 100644 --- a/Minecraft.Client/EntityRenderer.h +++ b/Minecraft.Client/EntityRenderer.h @@ -30,6 +30,7 @@ private: protected: Model *model; // TODO 4J: Check why exactly this is here, it seems to get shadowed by classes inheriting from this by their own + Model *modelCustom; Model *modelSlim; protected: @@ -69,6 +70,7 @@ public: public: // 4J Added virtual Model *getModel() { return model; } + virtual Model *getModelCustom() { return modelCustom; } virtual Model *getModelSlim() { return modelSlim; } virtual void SetItemFrame(bool bSet) {} }; diff --git a/Minecraft.Client/HumanoidModel.cpp b/Minecraft.Client/HumanoidModel.cpp index 0b8beda9d..a48262954 100644 --- a/Minecraft.Client/HumanoidModel.cpp +++ b/Minecraft.Client/HumanoidModel.cpp @@ -58,7 +58,7 @@ ModelPart * HumanoidModel::AddOrRetrievePart(SKIN_BOX *pBox) return pNewBox; } -void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, bool slimHands) +void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, int skinType) { this->texWidth = texWidth; this->texHeight = texHeight; @@ -85,27 +85,39 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b arm0 = new ModelPart(this, 24 + 16, 16); arm0->setPos(-5, 2 + yOffset, 0); - arm1 = new ModelPart(this, 24 + 16, 16); - arm1->bMirror = true; - arm1->setPos(5, 2 + yOffset, 0); + if (skinType == 2) + { + arm0->addHumanoidBox(-2, -2, -2, 3, 12, 4, g); // Arm0 Slim - if (slimHands == false) - { - arm0->addHumanoidBox(-3, -2, -2, 4, 12, 4, g); - arm1->addHumanoidBox(-1, -2, -2, 4, 12, 4, g); - } - else if (slimHands == true) - { - arm0->addHumanoidBox(-2, -2, -2, 3, 12, 4, 0); - arm1->addHumanoidBox(-1, -2, -2, 3, 12, 4, 0); - } + arm1 = new ModelPart(this, 16 + 16, 16 * 3); + arm1->addHumanoidBox(-1, -2, -2, 3, 12, 4, g); // Arm1 Slim + } + else + { + arm0->addHumanoidBox(-3, -2, -2, 4, 12, 4, g); // Arm0 + + if (skinType == 1) + arm1 = new ModelPart(this, 16 + 16, 16 * 3); // Arm1 Custom + else + { + arm1 = new ModelPart(this, 24 + 16, 16); + arm1->bMirror = true; + } + arm1->addHumanoidBox(-1, -2, -2, 4, 12, 4, g); // Arm1 + } + arm1->setPos(5, 2 + yOffset, 0); leg0 = new ModelPart(this, 0, 16); leg0->addHumanoidBox(-2, 0, -2, 4, 12, 4, g); // Leg0 leg0->setPos(-1.9, 12 + yOffset, 0); - leg1 = new ModelPart(this, 0, 16); - leg1->bMirror = true; + if (skinType >= 1) + leg1 = new ModelPart(this, 16, 16 * 3); + else + { + leg1 = new ModelPart(this, 0, 16); + leg1->bMirror = true; + } leg1->addHumanoidBox(-2, 0, -2, 4, 12, 4, g); // Leg1 leg1->setPos(1.9, 12 + yOffset, 0); @@ -137,22 +149,22 @@ void HumanoidModel::_init(float g, float yOffset, int texWidth, int texHeight, b HumanoidModel::HumanoidModel() : Model() { - _init(0, 0, 64, 32, false); + _init(0, 0, 64, 32, 0); } HumanoidModel::HumanoidModel(float g) : Model() { - _init(g, 0, 64, 32, false); + _init(g, 0, 64, 32, 0); } HumanoidModel::HumanoidModel(float g, float yOffset, int texWidth, int texHeight) : Model() { - _init(g,yOffset,texWidth,texHeight, false); + _init(g,yOffset,texWidth,texHeight,0); } -HumanoidModel::HumanoidModel(float g, float yOffset, int texWidth, int texHeight, bool slimHands) : Model() +HumanoidModel::HumanoidModel(float g, float yOffset, int texWidth, int texHeight, int skinType) : Model() { - _init(g,yOffset,texWidth,texHeight, slimHands); + _init(g,yOffset,texWidth,texHeight,skinType); } void HumanoidModel::render(shared_ptr entity, float time, float r, float bob, float yRot, float xRot, float scale, bool usecompiled) diff --git a/Minecraft.Client/HumanoidModel.h b/Minecraft.Client/HumanoidModel.h index b2df610f1..5b6c3d86d 100644 --- a/Minecraft.Client/HumanoidModel.h +++ b/Minecraft.Client/HumanoidModel.h @@ -50,11 +50,11 @@ public: (1< entity, float time, float r, float bob, float yRot, float xRot, float scale, bool usecompiled); virtual void setupAnim(float time, float r, float bob, float yRot, float xRot, float scale, shared_ptr entity, unsigned int uiBitmaskOverrideAnim = 0); void renderHair(float scale, bool usecompiled); diff --git a/Minecraft.Client/LivingEntityRenderer.cpp b/Minecraft.Client/LivingEntityRenderer.cpp index 861572f85..32397f55a 100644 --- a/Minecraft.Client/LivingEntityRenderer.cpp +++ b/Minecraft.Client/LivingEntityRenderer.cpp @@ -12,12 +12,11 @@ ResourceLocation LivingEntityRenderer::ENCHANT_GLINT_LOCATION = ResourceLocation(TN__BLUR__MISC_GLINT); int LivingEntityRenderer::MAX_ARMOR_LAYERS = 4; -LivingEntityRenderer::LivingEntityRenderer(Model *model, float shadow, bool slimHands) +LivingEntityRenderer::LivingEntityRenderer(Model *model, float shadow) { this->model = model; - - if (slimHands == true) - this->modelSlim = new HumanoidModel(0, 0, 64, 32, true); + this->modelCustom = new HumanoidModel(0, 0, 64, 64, 1); + this->modelSlim = new HumanoidModel(0, 0, 64, 64, 2); shadowRadius = shadow; armor = nullptr; @@ -57,7 +56,8 @@ void LivingEntityRenderer::render(shared_ptr _mob, double x, double y, d glPushMatrix(); glDisable(GL_CULL_FACE); - if (player != nullptr && modelSlim != nullptr && player->getPlayerDefaultSkin() == 9) resModel = modelSlim; + 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; resModel->attackTime = getAttackAnim(mob, a); @@ -253,7 +253,8 @@ void LivingEntityRenderer::renderModel(shared_ptr mob, float wp, f shared_ptr player = dynamic_pointer_cast(mob); Model *resModel; - if (player != nullptr && modelSlim != nullptr && player->getPlayerDefaultSkin() == 9) resModel = modelSlim; + 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; bindTexture(mob); @@ -341,10 +342,12 @@ void LivingEntityRenderer::renderArrows(shared_ptr mob, float a) ModelPart *modelPart; - if (player != nullptr && modelSlim != nullptr && player->getPlayerDefaultSkin() == 9) - modelPart = model->getRandomModelPart(random); - else + 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); Cube *cube = modelPart->cubes[random.nextInt(modelPart->cubes.size())]; modelPart->translateTo(1 / 16.0f); diff --git a/Minecraft.Client/LivingEntityRenderer.h b/Minecraft.Client/LivingEntityRenderer.h index e9339c476..2f77e1b54 100644 --- a/Minecraft.Client/LivingEntityRenderer.h +++ b/Minecraft.Client/LivingEntityRenderer.h @@ -19,7 +19,7 @@ protected: Model *armor; public: - LivingEntityRenderer(Model *model, float shadow, bool slimHands); + LivingEntityRenderer(Model *model, float shadow); virtual void render(shared_ptr mob, double x, double y, double z, float rot, float a); virtual void setArmor(Model *armor); diff --git a/Minecraft.Client/MobRenderer.cpp b/Minecraft.Client/MobRenderer.cpp index c921edc0a..539980702 100644 --- a/Minecraft.Client/MobRenderer.cpp +++ b/Minecraft.Client/MobRenderer.cpp @@ -9,7 +9,7 @@ #include "..\Minecraft.World\Mth.h" #include "entityRenderDispatcher.h" -MobRenderer::MobRenderer(Model *model, float shadow) : LivingEntityRenderer(model, shadow, false) +MobRenderer::MobRenderer(Model *model, float shadow) : LivingEntityRenderer(model, shadow) { } diff --git a/Minecraft.Client/PlayerRenderer.cpp b/Minecraft.Client/PlayerRenderer.cpp index 44d024eaf..f7599f3c0 100644 --- a/Minecraft.Client/PlayerRenderer.cpp +++ b/Minecraft.Client/PlayerRenderer.cpp @@ -55,9 +55,10 @@ static unsigned int nametagColorForIndex(int index) ResourceLocation PlayerRenderer::DEFAULT_LOCATION = ResourceLocation(TN_MOB_CHAR); -PlayerRenderer::PlayerRenderer(bool slimHands) : LivingEntityRenderer( new HumanoidModel(0), 0.5f, slimHands ) +PlayerRenderer::PlayerRenderer() : LivingEntityRenderer( new HumanoidModel(0), 0.5f ) { humanoidModel = static_cast(model); + humanoidModelCustom = static_cast(modelCustom); humanoidModelSlim = static_cast(modelSlim); armorParts1 = new HumanoidModel(1.0f); @@ -166,7 +167,8 @@ void PlayerRenderer::render(shared_ptr _mob, double x, double y, double if(mob == nullptr) return; if(mob->hasInvisiblePrivilege()) return; - if (mob != nullptr && modelSlim != nullptr && mob->getPlayerDefaultSkin() == 9) resModel = humanoidModelSlim; + 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; shared_ptr item = mob->inventory->getSelected(); @@ -272,7 +274,8 @@ void PlayerRenderer::additionalRendering(shared_ptr _mob, float a) shared_ptr mob = dynamic_pointer_cast(_mob); HumanoidModel *resModel; - if (mob != nullptr && modelSlim != nullptr && mob->getPlayerDefaultSkin() == 9) resModel = humanoidModelSlim; + 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; shared_ptr headGear = mob->inventory->getArmor(3); @@ -520,7 +523,8 @@ void PlayerRenderer::renderHand() shared_ptr player = dynamic_pointer_cast(Minecraft::GetInstance()->player); HumanoidModel *resModel; - if (player != nullptr && modelSlim != nullptr && player->getPlayerDefaultSkin() == 9) resModel = humanoidModelSlim; + 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; float brightness = 1; diff --git a/Minecraft.Client/PlayerRenderer.h b/Minecraft.Client/PlayerRenderer.h index be6da2c7b..3a7d9276c 100644 --- a/Minecraft.Client/PlayerRenderer.h +++ b/Minecraft.Client/PlayerRenderer.h @@ -14,13 +14,14 @@ public: private: HumanoidModel *humanoidModel; + HumanoidModel *humanoidModelCustom; HumanoidModel *humanoidModelSlim; HumanoidModel *armorParts1; HumanoidModel *armorParts2; - bool defaultSlimHands; + int defaultSkinType; public: - PlayerRenderer(bool slimHands); + PlayerRenderer(); static unsigned int getNametagColour(int index); diff --git a/Minecraft.Client/Textures.cpp b/Minecraft.Client/Textures.cpp index dab0f6fbf..ba38dcf7f 100644 --- a/Minecraft.Client/Textures.cpp +++ b/Minecraft.Client/Textures.cpp @@ -72,7 +72,16 @@ const wchar_t *Textures::preLoaded[TN_COUNT] = L"mob/char5", L"mob/char6", L"mob/char7", - L"mob/char8", + L"mob/alex", + L"mob/alex1", + L"mob/alex2", + L"mob/alex3", + L"mob/alex4", + L"mob/alex5", + L"mob/alex6", + L"mob/alex7", + L"mob/DevAlex", + L"mob/DevSteve", L"terrain/moon", L"terrain/sun", L"armor/power", diff --git a/Minecraft.Client/Textures.h b/Minecraft.Client/Textures.h index a79bc96ef..5ac3182e2 100644 --- a/Minecraft.Client/Textures.h +++ b/Minecraft.Client/Textures.h @@ -63,7 +63,16 @@ typedef enum _TEXTURE_NAME TN_MOB_CHAR5, TN_MOB_CHAR6, TN_MOB_CHAR7, - TN_MOB_CHAR8, + TN_MOB_ALEX, + TN_MOB_ALEX1, + TN_MOB_ALEX2, + TN_MOB_ALEX3, + TN_MOB_ALEX4, + TN_MOB_ALEX5, + TN_MOB_ALEX6, + TN_MOB_ALEX7, + TN_MOB_DEVALEX, + TN_MOB_DEVSTEVE, TN_TERRAIN_MOON, TN_TERRAIN_SUN, TN_POWERED_CREEPER, diff --git a/Minecraft.Client/Windows64Media/DLC/4th Birthday Skin Pack/SkinsBirthday4.pck b/Minecraft.Client/Windows64Media/DLC/4th Birthday Skin Pack/SkinsBirthday4.pck new file mode 100644 index 000000000..f42235d44 Binary files /dev/null and b/Minecraft.Client/Windows64Media/DLC/4th Birthday Skin Pack/SkinsBirthday4.pck differ diff --git a/Minecraft.World/Definitions.h b/Minecraft.World/Definitions.h index d06bfd2dd..f45252f5b 100644 --- a/Minecraft.World/Definitions.h +++ b/Minecraft.World/Definitions.h @@ -36,6 +36,15 @@ enum EDefaultSkins eDefaultSkins_Skin6, eDefaultSkins_Skin7, eDefaultSkins_Skin8, + eDefaultSkins_Skin9, + eDefaultSkins_Skin10, + eDefaultSkins_Skin11, + eDefaultSkins_Skin12, + eDefaultSkins_Skin13, + eDefaultSkins_Skin14, + eDefaultSkins_Skin15, + eDefaultSkins_Skin16, + eDefaultSkins_Skin17, eDefaultSkins_Count, }; \ No newline at end of file diff --git a/Minecraft.World/Player.cpp b/Minecraft.World/Player.cpp index 765096b6f..0bc515446 100644 --- a/Minecraft.World/Player.cpp +++ b/Minecraft.World/Player.cpp @@ -2703,7 +2703,25 @@ int Player::getTexture() case eDefaultSkins_Skin7: return TN_MOB_CHAR7; // 4J - was L"/mob/char7.png"; case eDefaultSkins_Skin8: - return TN_MOB_CHAR8; // 4J - was L"/mob/char8.png"; + return TN_MOB_ALEX; // 4J - was L"/mob/alex.png"; + case eDefaultSkins_Skin9: + return TN_MOB_ALEX1; // 4J - was L"/mob/alex1.png"; + case eDefaultSkins_Skin10: + return TN_MOB_ALEX2; // 4J - was L"/mob/alex2.png"; + case eDefaultSkins_Skin11: + return TN_MOB_ALEX3; // 4J - was L"/mob/alex3.png"; + case eDefaultSkins_Skin12: + return TN_MOB_ALEX4; // 4J - was L"/mob/alex4.png"; + case eDefaultSkins_Skin13: + return TN_MOB_ALEX5; // 4J - was L"/mob/alex5.png"; + case eDefaultSkins_Skin14: + return TN_MOB_ALEX6; // 4J - was L"/mob/alex6.png"; + case eDefaultSkins_Skin15: + return TN_MOB_ALEX7; // 4J - was L"/mob/alex7.png"; + case eDefaultSkins_Skin16: + return TN_MOB_DEVALEX; // 4J - was L"/mob/DevAlex.png"; + case eDefaultSkins_Skin17: + return TN_MOB_DEVSTEVE; // 4J - was L"/mob/DevSteve.png"; default: return TN_MOB_CHAR; // 4J - was L"/mob/char.png";