From 9ff806742655340a8e5abb8d5f91d32b89b9cd5f Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Mon, 17 Oct 2011 00:08:27 +0300 Subject: [PATCH] Fix items showing up as sticks when placed in world --- src/content_cao.cpp | 72 ++++++++++++++++++--------------------------- 1 file changed, 29 insertions(+), 43 deletions(-) diff --git a/src/content_cao.cpp b/src/content_cao.cpp index d3a1813f..b17c2810 100644 --- a/src/content_cao.cpp +++ b/src/content_cao.cpp @@ -208,6 +208,35 @@ void ItemCAO::addToScene(scene::ISceneManager *smgr) // This is needed for changing the texture in the future m_node->setReadOnlyMaterials(true); updateNodePos(); + + /* + Update image of node + */ + + // Create an inventory item to see what is its image + std::istringstream is(m_inventorystring, std::ios_base::binary); + video::ITexture *texture = NULL; + try{ + InventoryItem *item = NULL; + item = InventoryItem::deSerialize(is); + infostream<<__FUNCTION_NAME<<": m_inventorystring=\"" + < item="<getImage(); + delete item; + } + } + catch(SerializationError &e) + { + infostream<<"WARNING: "<<__FUNCTION_NAME + <<": error deSerializing inventorystring \"" + <getMaterial().setTexture(0, texture); } void ItemCAO::removeFromScene() @@ -289,49 +318,6 @@ void ItemCAO::initialize(const std::string &data) } updateNodePos(); - - /* - Update image of node - */ - - if(m_node == NULL) - return; - - scene::IMesh *mesh = m_node->getMesh(); - - if(mesh == NULL) - return; - - scene::IMeshBuffer *buf = mesh->getMeshBuffer(0); - - if(buf == NULL) - return; - - // Create an inventory item to see what is its image - std::istringstream is(m_inventorystring, std::ios_base::binary); - video::ITexture *texture = NULL; - try{ - InventoryItem *item = NULL; - item = InventoryItem::deSerialize(is); - infostream<<__FUNCTION_NAME<<": m_inventorystring=\"" - < item="<getImage(); - delete item; - } - } - catch(SerializationError &e) - { - infostream<<"WARNING: "<<__FUNCTION_NAME - <<": error deSerializing inventorystring \"" - <getMaterial().setTexture(0, texture); - } /*