From de35bbe4ed350bc3e90f66a11039e983587c5ea0 Mon Sep 17 00:00:00 2001 From: mfranz <mfranz> Date: Sun, 22 Mar 2009 17:04:02 +0000 Subject: [PATCH] assign a unique module name to ai/mp embedded nasal (again): __model%u --- src/AIModel/AIBase.cxx | 1 - src/Scripting/NasalSys.cxx | 10 +++++++--- src/Scripting/NasalSys.hxx | 1 + 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/AIModel/AIBase.cxx b/src/AIModel/AIBase.cxx index 1ba3942ea..476ada122 100644 --- a/src/AIModel/AIBase.cxx +++ b/src/AIModel/AIBase.cxx @@ -41,7 +41,6 @@ #include <Main/globals.hxx> #include <Scenery/scenery.hxx> -#include <Scripting/NasalSys.hxx> #include "AIBase.hxx" #include "AIModelData.hxx" diff --git a/src/Scripting/NasalSys.cxx b/src/Scripting/NasalSys.cxx index a41179366..02772babb 100644 --- a/src/Scripting/NasalSys.cxx +++ b/src/Scripting/NasalSys.cxx @@ -12,6 +12,7 @@ #include <sys/types.h> #include <sys/stat.h> #include <fstream> +#include <sstream> #include <plib/ul.h> @@ -1099,6 +1100,8 @@ bool FGNasalListener::changed(SGPropertyNode* node) // destructor the <unload> script. The latter happens when the model branch // is removed from the scene graph. +unsigned int FGNasalModelData::_module_id = 0; + void FGNasalModelData::modelLoaded(const string& path, SGPropertyNode *prop, osg::Node *) { @@ -1113,9 +1116,10 @@ void FGNasalModelData::modelLoaded(const string& path, SGPropertyNode *prop, if(!load && !_unload) return; - _module = path; - if(_props) - _module += ':' + _props->getPath(); + std::stringstream m; + m << "__model" << _module_id++; + _module = m.str(); + const char *s = load ? load->getStringValue() : ""; naRef arg[2]; diff --git a/src/Scripting/NasalSys.hxx b/src/Scripting/NasalSys.hxx index 090777f65..6d64e5097 100644 --- a/src/Scripting/NasalSys.hxx +++ b/src/Scripting/NasalSys.hxx @@ -167,6 +167,7 @@ public: void modelLoaded(const string& path, SGPropertyNode *prop, osg::Node *); private: + static unsigned int _module_id; string _module; SGPropertyNode_ptr _root; SGConstPropertyNode_ptr _unload;