-typedef MapFormat Type;
-STRING_CONSTANT( Name, "mapq3" );
-
-MapQ3API(){
- GlobalFiletypesModule::getTable().addType( Type::Name(), Name(), filetype_t( "quake3 maps", "*.map", true, true, true ) );
- GlobalFiletypesModule::getTable().addType( Type::Name(), Name(), filetype_t( "quake3 region", "*.reg", true, true, true ) );
- GlobalFiletypesModule::getTable().addType( Type::Name(), Name(), filetype_t( "quake3 compiled maps", "*.bsp", false, true, false ) );
-}
-MapFormat* getTable(){
- return this;
-}
-
-scene::Node& parsePrimitive( Tokeniser& tokeniser ) const {
- const char* primitive = tokeniser.getToken();
- if ( primitive != 0 ) {
- if ( string_equal( primitive, "patchDef2" ) ) {
- return GlobalPatchModule::getTable().createPatch();
- }
- if ( GlobalBrushModule::getTable().useAlternativeTextureProjection() ) {
- if ( string_equal( primitive, "brushDef" ) ) {
- detectedFormat = true;
- return GlobalBrushModule::getTable().createBrush();
- }
- else if ( !detectedFormat && string_equal( primitive, "(" ) ) {
- detectedFormat = true;
- wrongFormat = true;
- Tokeniser_unexpectedError( tokeniser, primitive, "#quake3-switch-to-texdef" );
- return g_nullNode;
- }
- }
- else
- {
- if ( string_equal( primitive, "(" ) ) {
- detectedFormat = true;
- tokeniser.ungetToken(); // (
- return GlobalBrushModule::getTable().createBrush();
- }
- else if ( !detectedFormat && string_equal( primitive, "brushDef" ) ) {
- detectedFormat = true;
- wrongFormat = true;
- Tokeniser_unexpectedError( tokeniser, primitive, "#quake3-switch-to-brush-primitives" );
- return g_nullNode;
- }
- }
- }
-
- Tokeniser_unexpectedError( tokeniser, primitive, "#quake3-primitive" );
- return g_nullNode;
-}
-
-void readGraph( scene::Node& root, TextInputStream& inputStream, EntityCreator& entityTable ) const {
- detectedFormat = false;
- wrongFormat = false;
- Tokeniser& tokeniser = GlobalScripLibModule::getTable().m_pfnNewSimpleTokeniser( inputStream );
- 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 );
- Map_Write( root, traverse, writer, false );
- writer.release();
-}
+ typedef MapFormat Type;
+
+ STRING_CONSTANT(Name, "mapq3");
+
+ MapQ3API()
+ {
+ GlobalFiletypesModule::getTable().addType(Type::Name(), Name(),
+ filetype_t("quake3 maps", "*.map", true, true, true));
+ GlobalFiletypesModule::getTable().addType(Type::Name(), Name(),
+ filetype_t("quake3 region", "*.reg", true, true, true));
+ GlobalFiletypesModule::getTable().addType(Type::Name(), Name(),
+ filetype_t("quake3 compiled maps", "*.bsp", false, true, false));
+ }
+
+ MapFormat *getTable()
+ {
+ return this;
+ }
+
+ scene::Node &parsePrimitive(Tokeniser &tokeniser) const
+ {
+ const char *primitive = tokeniser.getToken();
+ if (primitive != 0) {
+ if (string_equal(primitive, "patchDef2")) {
+ return GlobalPatchModule::getTable().createPatch();
+ }
+ if (GlobalBrushModule::getTable().useAlternativeTextureProjection()) {
+ if (string_equal(primitive, "brushDef")) {
+ detectedFormat = true;
+ return GlobalBrushModule::getTable().createBrush();
+ } else if (!detectedFormat && string_equal(primitive, "(")) {
+ detectedFormat = true;
+ wrongFormat = true;
+ Tokeniser_unexpectedError(tokeniser, primitive, "#quake3-switch-to-texdef");
+ return g_nullNode;
+ }
+ } else {
+ if (string_equal(primitive, "(")) {
+ detectedFormat = true;
+ tokeniser.ungetToken(); // (
+ return GlobalBrushModule::getTable().createBrush();
+ } else if (!detectedFormat && string_equal(primitive, "brushDef")) {
+ detectedFormat = true;
+ wrongFormat = true;
+ Tokeniser_unexpectedError(tokeniser, primitive, "#quake3-switch-to-brush-primitives");
+ return g_nullNode;
+ }
+ }
+ }
+
+ Tokeniser_unexpectedError(tokeniser, primitive, "#quake3-primitive");
+ return g_nullNode;
+ }
+
+ void readGraph(scene::Node &root, TextInputStream &inputStream, EntityCreator &entityTable) const
+ {
+ detectedFormat = false;
+ wrongFormat = false;
+ Tokeniser &tokeniser = GlobalScripLibModule::getTable().m_pfnNewSimpleTokeniser(inputStream);
+ 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);
+ Map_Write(root, traverse, writer, false);
+ writer.release();
+ }