m_item_definitions.clear();
#ifndef SERVER
m_main_thread = get_current_thread_id();
+ m_driver = NULL;
#endif
clear();
cc->wield_mesh->drop();
delete cc;
}
+
+ if (m_driver != NULL) {
+ for (unsigned int i = 0; i < m_extruded_textures.size(); i++) {
+ m_driver->removeTexture(m_extruded_textures[i]);
+ }
+ m_extruded_textures.clear();
+ }
+ m_driver = NULL;
#endif
}
virtual const ItemDefinition& get(const std::string &name_) const
return m_item_definitions.find(name) != m_item_definitions.end();
}
#ifndef SERVER
+private:
+ static video::IVideoDriver * m_driver;
+ static std::vector<video::ITexture*> m_extruded_textures;
+public:
ClientCached* createClientCachedDirect(const std::string &name,
IGameDef *gamedef) const
{
tsrc->getTextureRaw(f.tiledef[0].name);
}
}
+ else
+ {
+ if (m_driver == 0)
+ m_driver = driver;
+
+ m_extruded_textures.push_back(cc->inventory_texture);
+ }
/*
Use the node mesh as the wield mesh
return new CItemDefManager();
}
+#ifndef SERVER
+//TODO very very very dirty hack!
+video::IVideoDriver * CItemDefManager::m_driver = 0;
+std::vector<video::ITexture*> CItemDefManager::m_extruded_textures;
+#endif