feat: QOS (007: Quantum of Solace) support (#894)

* feat: QOS (007: Quantum of Solace) support

* feat: add qos localize loader

* feat: add qos stringtable loader

* chore: comment about official zones

* fix: add qos gfximage runtime fields

* chore: remove useless dev time comments

* fix: remove all `static_asserts`s from asset headers causing build fail on x64

* chore: change union ordering of qos `entryInternalData`

* chore: move qos asset type enum to qos.h

* fix: qos and t4 xsurface index buffer

* chore: implement qos MaterialInfo struct

* chore: adjust some gfxworld struct members

* chore: implement qos PhysPreset and PhysConstraints

* chore: fix and adjust slight inconsistencies with qos zone code

* chore: reorder qos ZoneCode.lua entries in order of asset type enum

* chore: remove asset types that are not actual asset types in zones

* chore: check common asset arrays with static_assert

* chore: rename qos assets

* chore: reorder qos in templates to be in alphabetical order

* chore: use function for CopyMipLevel in Dx9TextureLoader

* chore: use templates for qos MapEntsDumper

* chore: add missing braces in XModelToCommonConverter

* chore: add generic way to peek at zone data

* Qos does not use a classic ZoneHeader so code needs to be more generic

* fix: do not use raw_byte and raw_uint typedefs for qos

* fix: not being able to write clipmapmp

* chore: additional research on qos vertex property and stuff

---------

Co-authored-by: Jan Laupetin <[email protected]>
This commit is contained in:
moandJan Laupetin authored and GitHub committed 2026-08-05 00:32:23 +02:00
1 parent 5c0a7257fd
commit 9f49e0e31c
142 files changed
+6000 -97

No files matched your search

@@ -0,0 +1,22 @@
#include "ObjCompilerQOS.h"
using namespace QOS;
void ObjCompiler::ConfigureCreatorCollection(AssetCreatorCollection& collection,
Zone& zone,
const ZoneDefinitionContext& zoneDefinition,
ISearchPath& searchPath,
IGdtQueryable& gdt,
ZoneAssetCreationStateContainer& zoneStates,
IOutputPath& outDir,
IOutputPath& cacheDir) const
{
(void)collection;
(void)zone;
(void)zoneDefinition;
(void)searchPath;
(void)gdt;
(void)zoneStates;
(void)outDir;
(void)cacheDir;
}
@@ -0,0 +1,19 @@
#pragma once
#include "IObjCompiler.h"
namespace QOS
{
class ObjCompiler final : public IObjCompiler
{
public:
void ConfigureCreatorCollection(AssetCreatorCollection& collection,
Zone& zone,
const ZoneDefinitionContext& zoneDefinition,
ISearchPath& searchPath,
IGdtQueryable& gdt,
ZoneAssetCreationStateContainer& zoneStates,
IOutputPath& outDir,
IOutputPath& cacheDir) const override;
};
} // namespace QOS
+2
View File
@@ -3,6 +3,7 @@
#include "Game/IW3/ObjCompilerIW3.h"
#include "Game/IW4/ObjCompilerIW4.h"
#include "Game/IW5/ObjCompilerIW5.h"
#include "Game/QOS/ObjCompilerQOS.h"
#include "Game/T4/ObjCompilerT4.h"
#include "Game/T5/ObjCompilerT5.h"
#include "Game/T6/ObjCompilerT6.h"
@@ -15,6 +16,7 @@ const IObjCompiler* IObjCompiler::GetObjCompilerForGame(GameId game)
new IW3::ObjCompiler(),
new IW4::ObjCompiler(),
new IW5::ObjCompiler(),
new QOS::ObjCompiler(),
new T4::ObjCompiler(),
new T5::ObjCompiler(),
new T6::ObjCompiler(),