-WriteTokensWalker( TokenWriter& writer, bool ignorePatches )
- : m_writer( writer ), m_ignorePatches( ignorePatches ){
-}
-bool pre( scene::Node& node ) const {
- m_stack.push( false );
-
- Entity* entity = Node_getEntity( node );
- if ( entity != 0 ) {
- m_writer.writeToken( "//" );
- m_writer.writeToken( "entity" );
- m_writer.writeUnsigned( g_count_entities++ );
- m_writer.nextLine();
-
- m_writer.writeToken( "{" );
- m_writer.nextLine();
- m_stack.top() = true;
-
- Entity_ExportTokens( *entity, m_writer );
- }
- else
- {
- MapExporter* exporter = Node_getMapExporter( node );
- if ( exporter != 0
- && !( m_ignorePatches && Node_isPatch( node ) ) ) {
- m_writer.writeToken( "//" );
- m_writer.writeToken( "brush" );
- m_writer.writeUnsigned( g_count_brushes++ );
- m_writer.nextLine();
-
- exporter->exportTokens( m_writer );
- }
- }
-
- return true;
-}
-void post( scene::Node& node ) const {
- if ( m_stack.top() ) {
- m_writer.writeToken( "}" );
- m_writer.nextLine();
- }
- m_stack.pop();
-}
+ WriteTokensWalker(TokenWriter &writer, bool ignorePatches, bool writeComments)
+ : m_writer(writer), m_ignorePatches(ignorePatches), m_writeComments(writeComments)
+ {
+ }
+
+ bool pre(scene::Node &node) const
+ {
+ m_stack.push(false);
+
+ Entity *entity = Node_getEntity(node);
+ if (entity != 0) {
+ if (m_writeComments) {
+ m_writer.writeToken("//");
+ m_writer.writeToken("entity");
+ m_writer.writeUnsigned(g_count_entities++);
+ m_writer.nextLine();
+ }
+
+ m_writer.writeToken("{");
+ m_writer.nextLine();
+ m_stack.top() = true;
+
+ Entity_ExportTokens(*entity, m_writer);
+ } else {
+ MapExporter *exporter = Node_getMapExporter(node);
+ if (exporter != 0
+ && !(m_ignorePatches && Node_isPatch(node))) {
+ if (m_writeComments) {
+ m_writer.writeToken("//");
+ m_writer.writeToken("brush");
+ m_writer.writeUnsigned(g_count_brushes++);
+ m_writer.nextLine();
+ }
+
+ exporter->exportTokens(m_writer);
+ }
+ }
+
+ return true;
+ }
+
+ void post(scene::Node &node) const
+ {
+ if (m_stack.top()) {
+ m_writer.writeToken("}");
+ m_writer.nextLine();
+ }
+ m_stack.pop();
+ }