From b77d42b04a05967443f2b877f545e05628316ae1 Mon Sep 17 00:00:00 2001 From: Brent <43089001+BrentDaMage@users.noreply.github.com> Date: Mon, 7 Aug 2023 04:02:35 -0500 Subject: [PATCH] Fixed rendering bugs & crashes (#36) * Fixed rendering bugs & crashes * Fixed shading of cubes (includes Steve & Camera head) * Fixed crash from rendering of Air item in hand * Fixed crash from right-clicking with Air item in-hand * TripodCameraRenderer no longer uses Cube::renderHorrible --------- Co-authored-by: Brent Da Mage --- .gitignore | 1 + source/Minecraft.cpp | 4 ++-- source/client/model/Cube.cpp | 4 ++-- source/client/renderer/entity/HumanoidMobRenderer.cpp | 2 +- source/client/renderer/entity/TripodCameraRenderer.cpp | 2 +- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 400df41..e3b5096 100644 --- a/.gitignore +++ b/.gitignore @@ -383,5 +383,6 @@ FodyWeavers.xsd /wasm /assets/ +/games/ /options.txt /windows_vs/options.txt diff --git a/source/Minecraft.cpp b/source/Minecraft.cpp index d70cf40..700b75b 100644 --- a/source/Minecraft.cpp +++ b/source/Minecraft.cpp @@ -251,7 +251,7 @@ label_3: ItemInstance* pItem = getSelectedItem(); - if (m_pGameMode->useItemOn(m_pLocalPlayer, m_pLevel, pItem->m_itemID < 0 ? nullptr : pItem, hr.m_tileX, hr.m_tileY, hr.m_tileZ, hr.m_hitSide)) + if (m_pGameMode->useItemOn(m_pLocalPlayer, m_pLevel, pItem->m_itemID <= 0 ? nullptr : pItem, hr.m_tileX, hr.m_tileY, hr.m_tileZ, hr.m_hitSide)) { m_pLocalPlayer->swing(); if (!isOnline()) @@ -301,7 +301,7 @@ label_3: { label_15: int id = m_pLocalPlayer->m_pInventory->getSelectedItemId(); - if (id >= 0) + if (id > 0) { ItemInstance* pItem = getSelectedItem(); diff --git a/source/client/model/Cube.cpp b/source/client/model/Cube.cpp index 74f6f55..249449f 100644 --- a/source/client/model/Cube.cpp +++ b/source/client/model/Cube.cpp @@ -86,9 +86,9 @@ void Cube::compile(float f) void Cube::draw() { #ifdef ENH_ENTITY_SHADING - drawArrayVTC(m_buffer, 36, sizeof(Tesselator::Vertex)); -#else drawArrayVT(m_buffer, 36, sizeof(Tesselator::Vertex)); +#else + drawArrayVTC(m_buffer, 36, sizeof(Tesselator::Vertex)); #endif } diff --git a/source/client/renderer/entity/HumanoidMobRenderer.cpp b/source/client/renderer/entity/HumanoidMobRenderer.cpp index 5c07c16..20129da 100644 --- a/source/client/renderer/entity/HumanoidMobRenderer.cpp +++ b/source/client/renderer/entity/HumanoidMobRenderer.cpp @@ -24,7 +24,7 @@ void HumanoidMobRenderer::additionalRendering(Mob* mob, float f) Player* player = (Player*)mob; int itemID = player->m_pInventory->getSelectedItemId(); - if (itemID < 0) + if (itemID <= 0) return; ItemInstance inst(itemID, 1, 0); diff --git a/source/client/renderer/entity/TripodCameraRenderer.cpp b/source/client/renderer/entity/TripodCameraRenderer.cpp index 1d19c96..5c945aa 100644 --- a/source/client/renderer/entity/TripodCameraRenderer.cpp +++ b/source/client/renderer/entity/TripodCameraRenderer.cpp @@ -60,7 +60,7 @@ void TripodCameraRenderer::render(Entity* entity, float x, float y, float z, flo glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); // @TODO FIX: With ENH_ENTITY_SHADING on, the cube is fully opaque. glColor4f(0.5f, 0.5f, 0.5f, 0.5f); - m_cube.renderHorrible(0.0625f); + m_cube.render(0.0625f); glColor4f(1.0f, 1.0f, 1.0f, 1.0f); glDisable(GL_BLEND); glEnable(GL_TEXTURE_2D);