|
From: <cn...@us...> - 2009-11-09 07:54:16
|
Revision: 610
http://hgengine.svn.sourceforge.net/hgengine/?rev=610&view=rev
Author: cnlohr
Date: 2009-11-09 07:54:06 +0000 (Mon, 09 Nov 2009)
Log Message:
-----------
enable disabling and enabling of saving to XML (both for children and self)
Modified Paths:
--------------
Mercury2/modules/TextNode.cpp
Mercury2/modules/TextNode.h
Mercury2/src/Mercury2.cpp
Mercury2/src/MercuryNode.cpp
Mercury2/src/MercuryNode.h
Mercury2/src/Quad.cpp
Modified: Mercury2/modules/TextNode.cpp
===================================================================
--- Mercury2/modules/TextNode.cpp 2009-11-09 00:48:35 UTC (rev 609)
+++ Mercury2/modules/TextNode.cpp 2009-11-09 07:54:06 UTC (rev 610)
@@ -19,6 +19,8 @@
m_fRMinX(0),m_fRMinY(0),
m_fRMaxX(0),m_fRMaxY(0)
{
+ //Disabling saving of children... As, we create many temporary children.
+ m_bEnableSaveChildren = false;
}
void TextNode::Update(float dTime)
@@ -31,16 +33,6 @@
MercuryNode::Update( dTime );
}
-void TextNode::SaveToXML( MString & sXMLStream, int depth )
-{
- sXMLStream += ssprintf( "%*c<node ", depth*3, 32 );
-
- SaveBaseXMLTag( sXMLStream );
- SaveToXMLTag( sXMLStream );
-
- sXMLStream += "/>\n";
-}
-
void TextNode::SaveToXMLTag( MString & sXMLStream )
{
MercuryNode::SaveToXMLTag( sXMLStream );
Modified: Mercury2/modules/TextNode.h
===================================================================
--- Mercury2/modules/TextNode.h 2009-11-09 00:48:35 UTC (rev 609)
+++ Mercury2/modules/TextNode.h 2009-11-09 07:54:06 UTC (rev 610)
@@ -45,8 +45,6 @@
inline float GetRMaxX() { return m_fRMaxX; }
inline float GetRMaxY() { return m_fRMaxY; }
- ///Careful, Text node is a virtual node - it doesn't actually recurse into children.
- virtual void SaveToXML( MString & sXMLStream, int depth = 0 );
virtual void SaveToXMLTag( MString & sXMLStream );
GENRTTI(TextNode);
Modified: Mercury2/src/Mercury2.cpp
===================================================================
--- Mercury2/src/Mercury2.cpp 2009-11-09 00:48:35 UTC (rev 609)
+++ Mercury2/src/Mercury2.cpp 2009-11-09 07:54:06 UTC (rev 610)
@@ -100,7 +100,6 @@
g_SceneGraphToLoad = "FILE:scenegraph.xml";
cnset_execute_on_crash( SignalHandler );
-
HandleCommandLineParameters( argc, argv );
//Sound first.
Modified: Mercury2/src/MercuryNode.cpp
===================================================================
--- Mercury2/src/MercuryNode.cpp 2009-11-09 00:48:35 UTC (rev 609)
+++ Mercury2/src/MercuryNode.cpp 2009-11-09 07:54:06 UTC (rev 610)
@@ -19,6 +19,7 @@
:m_parent(NULL), m_prevSibling(NULL),
m_nextSibling(NULL), m_hidden(false),
m_useAlphaPath(false), m_culled(false),
+ m_bEnableSave(true), m_bEnableSaveChildren(true),
m_iPasses( DEFAULT_PASSES ), m_iForcePasses( 0 )
{
m_pGlobalMatrix = &MercuryMatrix::Identity();
@@ -314,31 +315,41 @@
void MercuryNode::SaveToXML( MString & sXMLStream, int depth )
{
+ if( !m_bEnableSave ) return;
sXMLStream += ssprintf( "%*c<node ", depth * 3, 32 );
SaveBaseXMLTag( sXMLStream );
SaveToXMLTag( sXMLStream );
bool bNoChildren = true;
- if( !m_assets.empty() )
+
+ if( m_bEnableSaveChildren )
{
- //No children yet (but we have them, so terminate (>) )
- if( bNoChildren )
- sXMLStream += ">\n";
- bNoChildren = false;
+ if( !m_assets.empty() )
+ {
+ //No children yet (but we have them, so terminate (>) )
+ if( bNoChildren )
+ sXMLStream += ">\n";
+ bNoChildren = false;
- for( std::list< MercuryAssetInstance * >::iterator i = m_assets.begin(); i != m_assets.end(); i++ )
- (*i)->Asset().SaveToXML( sXMLStream, depth + 1 );
- }
+ for( std::list< MercuryAssetInstance * >::iterator i = m_assets.begin(); i != m_assets.end(); i++ )
+ (*i)->Asset().SaveToXML( sXMLStream, depth + 1 );
+ }
- if( ! m_children.empty() )
- {
- //No children yet (but we have them, so terminate (>) )
- if( bNoChildren )
- sXMLStream += ">\n";
- bNoChildren = false;
- for( std::list< MercuryNode * >::iterator i = m_children.begin(); i != m_children.end(); i++ )
- (*i)->SaveToXML( sXMLStream, depth + 1 );
+ if( ! m_children.empty() )
+ {
+ //No children yet (but we have them, so terminate (>) )
+ for( std::list< MercuryNode * >::iterator i = m_children.begin(); i != m_children.end(); i++ )
+ {
+ if( (*i)->m_bEnableSave )
+ {
+ if( bNoChildren )
+ sXMLStream += ">\n";
+ bNoChildren = false;
+ (*i)->SaveToXML( sXMLStream, depth + 1 );
+ }
+ }
+ }
}
if( bNoChildren )
Modified: Mercury2/src/MercuryNode.h
===================================================================
--- Mercury2/src/MercuryNode.h 2009-11-09 00:48:35 UTC (rev 609)
+++ Mercury2/src/MercuryNode.h 2009-11-09 07:54:06 UTC (rev 610)
@@ -140,6 +140,8 @@
bool m_hidden;
bool m_useAlphaPath;
bool m_culled;
+ bool m_bEnableSave;
+ bool m_bEnableSaveChildren;
bool IsInAssetList(MercuryAsset* asset) const;
unsigned short m_iPasses;
Modified: Mercury2/src/Quad.cpp
===================================================================
--- Mercury2/src/Quad.cpp 2009-11-09 00:48:35 UTC (rev 609)
+++ Mercury2/src/Quad.cpp 2009-11-09 07:54:06 UTC (rev 610)
@@ -54,7 +54,8 @@
m_bFlipV = false;
vsDescription.remove( 0 );
}
-
+ else
+ break;
} while(1);
if( vsDescription.size() == 0 )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|