From 9c8ba427503cbf73f0263495a791656b905c2efc Mon Sep 17 00:00:00 2001 From: MirceaKitsune Date: Wed, 24 Oct 2012 22:10:05 +0300 Subject: Get the mesh working through the memory cache properly. Most credit goes to celeron55 for the help on this code Get the texture from memory as well Add .x to the list of supported formats Update LUA API documentation --- src/client.cpp | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) (limited to 'src/client.cpp') diff --git a/src/client.cpp b/src/client.cpp index 504297a6d..7f5421747 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -41,6 +41,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include "sound.h" #include "util/string.h" #include "hex.h" +#include "IMeshCache.h" static std::string getMediaCacheDir() { @@ -820,8 +821,8 @@ bool Client::loadMedia(const std::string &data, const std::string &filename) name = removeStringEnd(filename, image_ext); if(name != "") { - verbosestream<<"Client: Attempting to load image " - <<"file \""<getFileSystem(); video::IVideoDriver *vdrv = m_device->getVideoDriver(); @@ -854,28 +855,31 @@ bool Client::loadMedia(const std::string &data, const std::string &filename) name = removeStringEnd(filename, sound_ext); if(name != "") { - verbosestream<<"Client: Attempting to load sound " - <<"file \""<loadSoundData(name, data); return true; } const char *model_ext[] = { - ".b3d", ".md2", ".obj", + ".x", ".b3d", ".md2", ".obj", NULL }; name = removeStringEnd(filename, model_ext); if(name != "") { verbosestream<<"Client: Storing model into Irrlicht: " - <<"file \""<getFileSystem(); - - // Create an irrlicht memory file - io::IReadFile *rfile = irrfs->createMemoryReadFile(*data_rw, data_rw.getSize(), filename.c_str(), true); + io::IReadFile *rfile = irrfs->createMemoryReadFile( + *data_rw, data_rw.getSize(), filename.c_str()); assert(rfile); - //rfile->drop(); + + scene::ISceneManager *smgr = m_device->getSceneManager(); + scene::IAnimatedMesh *mesh = smgr->getMesh(rfile); + smgr->getMeshCache()->addMesh(filename.c_str(), mesh); + return true; } -- cgit v1.2.3