- typedef MapFormat Type;
- STRING_CONSTANT(Name, "mapquake4");
- INTEGER_CONSTANT(MapVersion, 3);
-
- MapQuake4API(MapDoom3Dependencies& dependencies) : m_dependencies(dependencies)
- {
- GlobalFiletypesModule::getTable().addType(Type::Name(), Name(), filetype_t("quake4 maps", "*.map"));
- GlobalFiletypesModule::getTable().addType(Type::Name(), Name(), filetype_t("quake4 region", "*.reg"));
- }
- MapFormat* getTable()
- {
- return this;
- }
-
- scene::Node& parsePrimitive(Tokeniser& tokeniser) const
- {
- const char* primitive = tokeniser.getToken();
- if(primitive != 0)
- {
- if(string_equal(primitive, "patchDef3"))
- {
- return m_dependencies.getPatchDoom3().createPatch();
- }
- else if(string_equal(primitive, "patchDef2"))
- {
- return m_dependencies.getPatchDef2Doom3().createPatch();
- }
- else if(string_equal(primitive, "brushDef3"))
- {
- return m_dependencies.getBrushDoom3().createBrush();
- }
- }
-
- Tokeniser_unexpectedError(tokeniser, primitive, "#quake4-primitive");
- return g_nullNode;
- }
- void readGraph(scene::Node& root, TextInputStream& inputStream, EntityCreator& entityTable) const
- {
- Tokeniser& tokeniser = GlobalScripLibModule::getTable().m_pfnNewSimpleTokeniser(inputStream);
- tokeniser.nextLine();
- if(!Tokeniser_parseToken(tokeniser, "Version"))
- {
- return;
- }
- std::size_t version;
- if(!Tokeniser_getSize(tokeniser, version))
- {
- return;
- }
- if(version != MapVersion())
- {
- globalErrorStream() << "Quake 4 map version " << MapVersion() << " supported, version is " << Unsigned(version) << "\n";
- return;
- }
- tokeniser.nextLine();
- Map_Read(root, tokeniser, entityTable, *this);
- tokeniser.release();
- }
- void writeGraph(scene::Node& root, GraphTraversalFunc traverse, TextOutputStream& outputStream) const
- {
- TokenWriter& writer = GlobalScripLibModule::getTable().m_pfnNewSimpleTokenWriter(outputStream);
- writer.writeToken("Version");
- writer.writeInteger(MapVersion());
- writer.nextLine();
- Map_Write(root, traverse, writer, false);
- writer.release();
- }
+typedef MapFormat Type;
+STRING_CONSTANT( Name, "mapquake4" );
+INTEGER_CONSTANT( MapVersion, 3 );
+
+MapQuake4API( MapDoom3Dependencies& dependencies ) : m_dependencies( dependencies ){
+ GlobalFiletypesModule::getTable().addType( Type::Name(), Name(), filetype_t( "quake4 maps", "*.map" ) );
+ GlobalFiletypesModule::getTable().addType( Type::Name(), Name(), filetype_t( "quake4 region", "*.reg" ) );
+}
+MapFormat* getTable(){
+ return this;
+}
+
+scene::Node& parsePrimitive( Tokeniser& tokeniser ) const {
+ const char* primitive = tokeniser.getToken();
+ if ( primitive != 0 ) {
+ if ( string_equal( primitive, "patchDef3" ) ) {
+ return m_dependencies.getPatchDoom3().createPatch();
+ }
+ else if ( string_equal( primitive, "patchDef2" ) ) {
+ return m_dependencies.getPatchDef2Doom3().createPatch();
+ }
+ else if ( string_equal( primitive, "brushDef3" ) ) {
+ return m_dependencies.getBrushDoom3().createBrush();
+ }
+ }
+
+ Tokeniser_unexpectedError( tokeniser, primitive, "#quake4-primitive" );
+ return g_nullNode;
+}
+void readGraph( scene::Node& root, TextInputStream& inputStream, EntityCreator& entityTable ) const {
+ Tokeniser& tokeniser = GlobalScripLibModule::getTable().m_pfnNewSimpleTokeniser( inputStream );
+ tokeniser.nextLine();
+ if ( !Tokeniser_parseToken( tokeniser, "Version" ) ) {
+ return;
+ }
+ std::size_t version;
+ if ( !Tokeniser_getSize( tokeniser, version ) ) {
+ return;
+ }
+ if ( version != MapVersion() ) {
+ globalErrorStream() << "Quake 4 map version " << MapVersion() << " supported, version is " << Unsigned( version ) << "\n";
+ return;
+ }
+ tokeniser.nextLine();
+ Map_Read( root, tokeniser, entityTable, *this );
+ tokeniser.release();
+}
+void writeGraph( scene::Node& root, GraphTraversalFunc traverse, TextOutputStream& outputStream ) const {
+ TokenWriter& writer = GlobalScripLibModule::getTable().m_pfnNewSimpleTokenWriter( outputStream );
+ writer.writeToken( "Version" );
+ writer.writeInteger( MapVersion() );
+ writer.nextLine();
+ Map_Write( root, traverse, writer, false );
+ writer.release();
+}