- 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");
+
+ UINT_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();
+ }