]> git.mxchange.org Git - simgear.git/blobdiff - simgear/hla/HLAOMTXmlVisitor.cxx
Windows versionhelpers.h support.
[simgear.git] / simgear / hla / HLAOMTXmlVisitor.cxx
index 84c0f2102f7c2b1d01d897a4b9c1e4dae538948a..ee96f8d53a3559124cb5cf6942053f14f0517560 100644 (file)
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 //
 
+#ifdef HAVE_CONFIG_H
+#  include <simgear_config.h>
+#endif
+
+#include <simgear/compiler.h>
+
 #include "HLAOMTXmlVisitor.hxx"
 
 #include <map>
@@ -172,6 +178,10 @@ HLAOMTXmlVisitor::setToFederate(HLAFederate& federate)
     unsigned numInteractionClasses = getNumInteractionClasses();
     for (unsigned i = 0; i < numInteractionClasses; ++i) {
         const InteractionClass* interactionClass = getInteractionClass(i);
+        if (federate.getInteractionClass(interactionClass->getName())) {
+            SG_LOG(SG_IO, SG_ALERT, "Not creating Interaction class \"" << interactionClass->getName() << "\" twice!.");
+            continue;
+        }
 
         SGSharedPtr<HLAInteractionClass> hlaInteractionClass;
         hlaInteractionClass = federate.createInteractionClass(interactionClass->getName());
@@ -195,6 +205,10 @@ HLAOMTXmlVisitor::setToFederate(HLAFederate& federate)
     unsigned numObjectClasses = getNumObjectClasses();
     for (unsigned i = 0; i < numObjectClasses; ++i) {
         const ObjectClass* objectClass = getObjectClass(i);
+        if (federate.getObjectClass(objectClass->getName())) {
+            SG_LOG(SG_IO, SG_ALERT, "Not creating Object class \"" << objectClass->getName() << "\" twice!.");
+            continue;
+        }
 
         SGSharedPtr<HLAObjectClass> hlaObjectClass;
         hlaObjectClass = federate.createObjectClass(objectClass->getName());