From 1d07a365528e3b947a03baba9ef986af2ecd23d1 Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Fri, 15 Apr 2022 18:55:08 +0200 Subject: [PATCH] upright_sprite: Fix walk animation in first person (#12194) --- src/client/content_cao.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index 19569d4b6..3c31d4a36 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -1974,20 +1974,17 @@ void GenericCAO::updateMeshCulling() const bool hidden = m_client->getCamera()->getCameraMode() == CAMERA_MODE_FIRST; - if (m_meshnode && m_prop.visual == "upright_sprite") { - u32 buffers = m_meshnode->getMesh()->getMeshBufferCount(); - for (u32 i = 0; i < buffers; i++) { - video::SMaterial &mat = m_meshnode->getMesh()->getMeshBuffer(i)->getMaterial(); - // upright sprite has no backface culling - mat.setFlag(video::EMF_FRONT_FACE_CULLING, hidden); - } - return; - } - scene::ISceneNode *node = getSceneNode(); + if (!node) return; + if (m_prop.visual == "upright_sprite") { + // upright sprite has no backface culling + node->setMaterialFlag(video::EMF_FRONT_FACE_CULLING, hidden); + return; + } + if (hidden) { // Hide the mesh by culling both front and // back faces. Serious hackyness but it works for our