diff --git a/src/client/content_cao.cpp b/src/client/content_cao.cpp index 90c26c6763d1..9c19e702aaf3 100644 --- a/src/client/content_cao.cpp +++ b/src/client/content_cao.cpp @@ -814,6 +814,7 @@ void GenericCAO::addToScene(ITextureSource *tsrc, scene::ISceneManager *smgr) m_wield_meshnode->setScale(m_prop.visual_size / 2.0f); } else if (m_prop.visual == "node") { auto *mesh = generateNodeMesh(m_client, m_prop.node, m_meshnode_animation); + assert(mesh); m_meshnode = m_smgr->addMeshSceneNode(mesh, m_matrixnode); m_meshnode->setSharedMaterials(true); @@ -822,7 +823,6 @@ void GenericCAO::addToScene(ITextureSource *tsrc, scene::ISceneManager *smgr) m_meshnode->setScale(m_prop.visual_size); - // FIXME this tramples on the alphamode of the node setSceneNodeMaterials(m_meshnode); } else { infostream<<"GenericCAO::addToScene(): \""<= 0) { @@ -1276,7 +1276,7 @@ static void setMeshBufferTextureCoords(scene::IMeshBuffer *buf, const v2f *uv, u buf->setDirty(scene::EBT_VERTEX); } -void GenericCAO::updateTexturePos() +void GenericCAO::updateTextureAnim() { if(m_spritenode) { @@ -1636,7 +1636,7 @@ bool GenericCAO::visualExpiryRequired(const ObjectProperties &new_) const /* Visuals do not need to be expired for: * - nametag props: handled by updateNametag() * - textures: handled by updateTextures() - * - sprite props: handled by updateTexturePos() + * - sprite props: handled by updateTextureAnim() * - glow: handled by updateLight() * - any other properties that do not change appearance */ @@ -1646,10 +1646,10 @@ bool GenericCAO::visualExpiryRequired(const ObjectProperties &new_) const // Ordered to compare primitive types before std::vectors return old.backface_culling != new_.backface_culling || old.is_visible != new_.is_visible || - old.node != new_.node || - old.mesh != new_.mesh || old.shaded != new_.shaded || old.use_texture_alpha != new_.use_texture_alpha || + old.node != new_.node || + old.mesh != new_.mesh || old.visual != new_.visual || old.visual_size != new_.visual_size || old.wield_item != new_.wield_item || @@ -1760,7 +1760,7 @@ void GenericCAO::processMessage(const std::string &data) m_anim_framelength = framelength; m_tx_select_horiz_by_yawpitch = select_horiz_by_yawpitch; - updateTexturePos(); + updateTextureAnim(); } else if (cmd == AO_CMD_SET_PHYSICS_OVERRIDE) { float override_speed = readF32(is); float override_jump = readF32(is); diff --git a/src/client/content_cao.h b/src/client/content_cao.h index 78c568acfa56..fe804eeab8a6 100644 --- a/src/client/content_cao.h +++ b/src/client/content_cao.h @@ -26,7 +26,6 @@ class Camera; class Client; struct Nametag; struct MinimapMarker; -struct TileLayer; /* SmoothTranslator and other helpers @@ -277,7 +276,7 @@ class GenericCAO : public ClientActiveObject void step(float dtime, ClientEnvironment *env) override; - void updateTexturePos(); + void updateTextureAnim(); // ffs this HAS TO BE a string copy! See #5739 if you think otherwise // Reason: updateTextures(m_previous_texture_modifier); diff --git a/src/object_properties.cpp b/src/object_properties.cpp index 7f2a5ee8e0fa..0c8627899b61 100644 --- a/src/object_properties.cpp +++ b/src/object_properties.cpp @@ -282,4 +282,6 @@ void ObjectProperties::deSerialize(std::istream &is) return; node.param1 = readU8(is); node.param2 = readU8(is); + + // Add new properties down here and remember to use either tryRead<> or a try-catch. }