Browse Source

fix problem with relative textures within an .mf file

David Rose 19 years ago
parent
commit
80dbd8130b
1 changed files with 5 additions and 3 deletions
  1. 5 3
      panda/src/egg/eggGroupNode.cxx

+ 5 - 3
panda/src/egg/eggGroupNode.cxx

@@ -422,6 +422,8 @@ has_absolute_pathnames() const {
 ////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////
 void EggGroupNode::
 void EggGroupNode::
 resolve_filenames(const DSearchPath &searchpath) {
 resolve_filenames(const DSearchPath &searchpath) {
+  VirtualFileSystem *vfs = VirtualFileSystem::get_global_ptr();
+  
   Children::iterator ci;
   Children::iterator ci;
   for (ci = _children.begin();
   for (ci = _children.begin();
        ci != _children.end();
        ci != _children.end();
@@ -430,19 +432,19 @@ resolve_filenames(const DSearchPath &searchpath) {
     if (child->is_of_type(EggTexture::get_class_type())) {
     if (child->is_of_type(EggTexture::get_class_type())) {
       EggTexture *tex = DCAST(EggTexture, child);
       EggTexture *tex = DCAST(EggTexture, child);
       Filename tex_filename = tex->get_filename();
       Filename tex_filename = tex->get_filename();
-      tex_filename.resolve_filename(searchpath);
+      vfs->resolve_filename(tex_filename, searchpath);
       tex->set_filename(tex_filename);
       tex->set_filename(tex_filename);
       
       
       if (tex->has_alpha_filename()) {
       if (tex->has_alpha_filename()) {
         Filename alpha_filename = tex->get_alpha_filename();
         Filename alpha_filename = tex->get_alpha_filename();
-        alpha_filename.resolve_filename(searchpath);
+        vfs->resolve_filename(alpha_filename, searchpath);
         tex->set_alpha_filename(alpha_filename);
         tex->set_alpha_filename(alpha_filename);
       }
       }
 
 
     } else if (child->is_of_type(EggFilenameNode::get_class_type())) {
     } else if (child->is_of_type(EggFilenameNode::get_class_type())) {
       EggFilenameNode *fnode = DCAST(EggFilenameNode, child);
       EggFilenameNode *fnode = DCAST(EggFilenameNode, child);
       Filename filename = fnode->get_filename();
       Filename filename = fnode->get_filename();
-      filename.resolve_filename(searchpath, fnode->get_default_extension());
+      vfs->resolve_filename(filename, searchpath, fnode->get_default_extension());
       fnode->set_filename(filename);
       fnode->set_filename(filename);
 
 
     } else if (child->is_of_type(EggGroupNode::get_class_type())) {
     } else if (child->is_of_type(EggGroupNode::get_class_type())) {