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 <BrentDaMage@users.noreply.github.com>
This commit is contained in:
Brent
2023-08-07 04:02:35 -05:00
committed by GitHub
parent 0c8b22d36b
commit b77d42b04a
5 changed files with 7 additions and 6 deletions

1
.gitignore vendored
View File

@@ -383,5 +383,6 @@ FodyWeavers.xsd
/wasm
/assets/
/games/
/options.txt
/windows_vs/options.txt

View File

@@ -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();

View File

@@ -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
}

View File

@@ -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);

View File

@@ -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);