refactor: generate asset code once per asset/variant combination

This commit is contained in:
Jan Laupetin committed 2026-10-22 20:01:04 +02:00
1 parent bf88f781d3
commit 367c87bdea
12 files changed
+380 -312

No files matched your search

+309 -261
View File
@@ -1,275 +1,315 @@
ZoneCode = {}
ZoneCode.Assets = {
ZoneCode.Games = {
IW3 = {
"PhysPreset",
"XAnimParts",
"XModel",
"Material",
"MaterialTechniqueSet",
"GfxImage",
"snd_alias_list_t",
"SndCurve",
"LoadedSound",
"clipMap_t",
"ComWorld",
"GameWorldSp",
"GameWorldMp",
"MapEnts",
"GfxWorld",
"GfxLightDef",
"Font_s",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponDef",
"FxEffectDef",
"FxImpactTable",
"RawFile",
"StringTable"
Variants = {
"pc"
},
Assets = {
"PhysPreset",
"XAnimParts",
"XModel",
"Material",
"MaterialTechniqueSet",
"GfxImage",
"snd_alias_list_t",
"SndCurve",
"LoadedSound",
"clipMap_t",
"ComWorld",
"GameWorldSp",
"GameWorldMp",
"MapEnts",
"GfxWorld",
"GfxLightDef",
"Font_s",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponDef",
"FxEffectDef",
"FxImpactTable",
"RawFile",
"StringTable"
}
},
IW4 = {
"PhysPreset",
"PhysCollmap",
"XAnimParts",
"XModel",
"Material",
"MaterialPixelShader",
"MaterialVertexShader",
"MaterialVertexDeclaration",
"MaterialTechniqueSet",
"GfxImage",
"snd_alias_list_t",
"SndCurve",
"LoadedSound",
"clipMap_t",
"ComWorld",
"GameWorldSp",
"GameWorldMp",
"MapEnts",
"FxWorld",
"GfxWorld",
"GfxLightDef",
"Font_s",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponCompleteDef",
"FxEffectDef",
"FxImpactTable",
"RawFile",
"StringTable",
"LeaderboardDef",
"StructuredDataDefSet",
"TracerDef",
"VehicleDef",
"AddonMapEnts"
Variants = {
"pc32",
"pc64"
},
Assets = {
"PhysPreset",
"PhysCollmap",
"XAnimParts",
"XModel",
"Material",
"MaterialPixelShader",
"MaterialVertexShader",
"MaterialVertexDeclaration",
"MaterialTechniqueSet",
"GfxImage",
"snd_alias_list_t",
"SndCurve",
"LoadedSound",
"clipMap_t",
"ComWorld",
"GameWorldSp",
"GameWorldMp",
"MapEnts",
"FxWorld",
"GfxWorld",
"GfxLightDef",
"Font_s",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponCompleteDef",
"FxEffectDef",
"FxImpactTable",
"RawFile",
"StringTable",
"LeaderboardDef",
"StructuredDataDefSet",
"TracerDef",
"VehicleDef",
"AddonMapEnts"
}
},
IW5 = {
"PhysPreset",
"PhysCollmap",
"XAnimParts",
"XModelSurfs",
"XModel",
"Material",
"MaterialPixelShader",
"MaterialVertexShader",
"MaterialVertexDeclaration",
"MaterialTechniqueSet",
"GfxImage",
"snd_alias_list_t",
"SndCurve",
"LoadedSound",
"clipMap_t",
"ComWorld",
"GlassWorld",
"PathData",
"VehicleTrack",
"MapEnts",
"FxWorld",
"GfxWorld",
"GfxLightDef",
"Font_s",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponAttachment",
"WeaponCompleteDef",
"FxEffectDef",
"FxImpactTable",
"SurfaceFxTable",
"RawFile",
"ScriptFile",
"StringTable",
"LeaderboardDef",
"StructuredDataDefSet",
"TracerDef",
"VehicleDef",
"AddonMapEnts",
Variants = {
"pc32",
"pc64"
},
Assets = {
"PhysPreset",
"PhysCollmap",
"XAnimParts",
"XModelSurfs",
"XModel",
"Material",
"MaterialPixelShader",
"MaterialVertexShader",
"MaterialVertexDeclaration",
"MaterialTechniqueSet",
"GfxImage",
"snd_alias_list_t",
"SndCurve",
"LoadedSound",
"clipMap_t",
"ComWorld",
"GlassWorld",
"PathData",
"VehicleTrack",
"MapEnts",
"FxWorld",
"GfxWorld",
"GfxLightDef",
"Font_s",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponAttachment",
"WeaponCompleteDef",
"FxEffectDef",
"FxImpactTable",
"SurfaceFxTable",
"RawFile",
"ScriptFile",
"StringTable",
"LeaderboardDef",
"StructuredDataDefSet",
"TracerDef",
"VehicleDef",
"AddonMapEnts",
}
},
QOS = {
"PhysPreset",
"PhysConstraints",
"DestructibleDef",
"XAnimParts",
"XModel",
"Material",
"MaterialTechniqueSet",
"GfxImage",
"snd_alias_list_t",
"SndCurve",
"clipMap_t",
"ComWorld",
"GameWorldSp",
"GameWorldMp",
"MapEnts",
"GfxWorld",
"GfxLightDef",
"Font_s",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponDef",
"FxEffectDef",
"FxImpactTable",
"RawFile",
"StringTable",
"XmlTree",
"SceneAnimation",
"Cutscene",
"CustomCamera",
Variants = {
"pc"
},
Assets = {
"PhysPreset",
"PhysConstraints",
"DestructibleDef",
"XAnimParts",
"XModel",
"Material",
"MaterialTechniqueSet",
"GfxImage",
"snd_alias_list_t",
"SndCurve",
"clipMap_t",
"ComWorld",
"GameWorldSp",
"GameWorldMp",
"MapEnts",
"GfxWorld",
"GfxLightDef",
"Font_s",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponDef",
"FxEffectDef",
"FxImpactTable",
"RawFile",
"StringTable",
"XmlTree",
"SceneAnimation",
"Cutscene",
"CustomCamera",
}
},
T4 = {
"PhysPreset",
"PhysConstraints",
"DestructibleDef",
"XAnimParts",
"XModel",
"Material",
"MaterialTechniqueSet",
"GfxImage",
"snd_alias_list_t",
"SndDriverGlobals",
"LoadedSound",
"clipMap_t",
"ComWorld",
"GameWorldSp",
"GameWorldMp",
"MapEnts",
"GfxWorld",
"GfxLightDef",
"Font_s",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponDef",
"FxEffectDef",
"FxImpactTable",
"RawFile",
"StringTable",
"PackIndex",
Variants = {
"pc"
},
Assets = {
"PhysPreset",
"PhysConstraints",
"DestructibleDef",
"XAnimParts",
"XModel",
"Material",
"MaterialTechniqueSet",
"GfxImage",
"snd_alias_list_t",
"SndDriverGlobals",
"LoadedSound",
"clipMap_t",
"ComWorld",
"GameWorldSp",
"GameWorldMp",
"MapEnts",
"GfxWorld",
"GfxLightDef",
"Font_s",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponDef",
"FxEffectDef",
"FxImpactTable",
"RawFile",
"StringTable",
"PackIndex",
}
},
T5 = {
"PhysPreset",
"PhysConstraints",
"DestructibleDef",
"XAnimParts",
"XModel",
"Material",
"MaterialTechniqueSet",
"GfxImage",
"SndBank",
"SndPatch",
"clipMap_t",
"ComWorld",
"GameWorldSp",
"GameWorldMp",
"MapEnts",
"GfxWorld",
"GfxLightDef",
"Font_s",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponVariantDef",
"SndDriverGlobals",
"FxEffectDef",
"FxImpactTable",
"RawFile",
"StringTable",
"PackIndex",
"XGlobals",
"ddlRoot_t",
"Glasses",
"EmblemSet"
Variants = {
"pc"
},
Assets = {
"PhysPreset",
"PhysConstraints",
"DestructibleDef",
"XAnimParts",
"XModel",
"Material",
"MaterialTechniqueSet",
"GfxImage",
"SndBank",
"SndPatch",
"clipMap_t",
"ComWorld",
"GameWorldSp",
"GameWorldMp",
"MapEnts",
"GfxWorld",
"GfxLightDef",
"Font_s",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponVariantDef",
"SndDriverGlobals",
"FxEffectDef",
"FxImpactTable",
"RawFile",
"StringTable",
"PackIndex",
"XGlobals",
"ddlRoot_t",
"Glasses",
"EmblemSet"
}
},
T6 = {
"PhysPreset",
"PhysConstraints",
"DestructibleDef",
"XAnimParts",
"XModel",
"Material",
"MaterialTechniqueSet",
"GfxImage",
"SndBank",
"SndPatch",
"clipMap_t",
"ComWorld",
"GameWorldSp",
"GameWorldMp",
"MapEnts",
"GfxWorld",
"GfxLightDef",
"Font_s",
"FontIcon",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponVariantDef",
"WeaponAttachment",
"WeaponAttachmentUnique",
"WeaponCamo",
"SndDriverGlobals",
"FxEffectDef",
"FxImpactTable",
"RawFile",
"StringTable",
"LeaderboardDef",
"XGlobals",
"ddlRoot_t",
"Glasses",
"EmblemSet",
"ScriptParseTree",
"KeyValuePairs",
"VehicleDef",
"MemoryBlock",
"AddonMapEnts",
"TracerDef",
"SkinnedVertsDef",
"Qdb",
"Slug",
"FootstepTableDef",
"FootstepFXTableDef",
"ZBarrierDef"
Variants = {
"pc"
},
Assets = {
"PhysPreset",
"PhysConstraints",
"DestructibleDef",
"XAnimParts",
"XModel",
"Material",
"MaterialTechniqueSet",
"GfxImage",
"SndBank",
"SndPatch",
"clipMap_t",
"ComWorld",
"GameWorldSp",
"GameWorldMp",
"MapEnts",
"GfxWorld",
"GfxLightDef",
"Font_s",
"FontIcon",
"MenuList",
"menuDef_t",
"LocalizeEntry",
"WeaponVariantDef",
"WeaponAttachment",
"WeaponAttachmentUnique",
"WeaponCamo",
"SndDriverGlobals",
"FxEffectDef",
"FxImpactTable",
"RawFile",
"StringTable",
"LeaderboardDef",
"XGlobals",
"ddlRoot_t",
"Glasses",
"EmblemSet",
"ScriptParseTree",
"KeyValuePairs",
"VehicleDef",
"MemoryBlock",
"AddonMapEnts",
"TracerDef",
"SkinnedVertsDef",
"Qdb",
"Slug",
"FootstepTableDef",
"FootstepFXTableDef",
"ZBarrierDef"
}
}
}
function ZoneCode:allTestFiles()
result = {}
for game, assets in pairs(self.Assets) do
for game, gameData in pairs(self.Games) do
local gameLower = string.lower(game)
for i, assetName in ipairs(assets) do
local assetNameLower = string.lower(assetName)
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_" .. gameLower .. "_struct_test.cpp")
for i, variantName in ipairs(gameData.Variants) do
local variantLower = string.lower(variantName)
for j, assetName in ipairs(gameData.Assets) do
local assetNameLower = string.lower(assetName)
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_" .. gameLower .. "_" .. variantName .. "_struct_test.cpp")
end
end
end
@@ -279,14 +319,16 @@ end
function ZoneCode:allMarkFiles()
result = {}
for game, assets in pairs(self.Assets) do
for game, gameData in pairs(self.Games) do
local gameLower = string.lower(game)
-- PerAsset
for i, assetName in ipairs(assets) do
local assetNameLower = string.lower(assetName)
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_" .. gameLower .. "_mark_db.cpp")
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_" .. gameLower .. "_mark_db.h")
for i, variantName in ipairs(gameData.Variants) do
local variantLower = string.lower(variantName)
for j, assetName in ipairs(gameData.Assets) do
local assetNameLower = string.lower(assetName)
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_" .. gameLower .. "_" .. variantName .. "_mark_db.cpp")
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_" .. gameLower .. "_" .. variantName .. "_mark_db.h")
end
end
-- PerTemplate
@@ -299,14 +341,17 @@ end
function ZoneCode:allLoadFiles()
result = {}
for game, assets in pairs(self.Assets) do
for game, gameData in pairs(self.Games) do
local gameLower = string.lower(game)
-- PerAsset
for i, assetName in ipairs(assets) do
local assetNameLower = string.lower(assetName)
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_" .. gameLower .. "_load_db.cpp")
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_" .. gameLower .. "_load_db.h")
for i, variantName in ipairs(gameData.Variants) do
local variantLower = string.lower(variantName)
-- Per Asset/Variant
for j, assetName in ipairs(gameData.Assets) do
local assetNameLower = string.lower(assetName)
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_" .. gameLower .. "_" .. variantName .. "_load_db.cpp")
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_" .. gameLower .. "_" .. variantName .. "_load_db.h")
end
end
-- PerTemplate
@@ -319,14 +364,17 @@ end
function ZoneCode:allWriteFiles()
result = {}
for game, assets in pairs(self.Assets) do
for game, gameData in pairs(self.Games) do
local gameLower = string.lower(game)
-- PerAsset
for i, assetName in ipairs(assets) do
local assetNameLower = string.lower(assetName)
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_" .. gameLower .. "_write_db.cpp")
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_" .. gameLower .. "_write_db.h")
for i, variantName in ipairs(gameData.Variants) do
local variantLower = string.lower(variantName)
-- Per Asset/Variant
for j, assetName in ipairs(gameData.Assets) do
local assetNameLower = string.lower(assetName)
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_" .. gameLower .. "_" .. variantName .. "_write_db.cpp")
table.insert(result, "%{wks.location}/src/ZoneCode/Game/" .. game .. "/XAssets/" .. assetNameLower .. "/" .. assetNameLower .. "_" .. gameLower .. "_" .. variantName .. "_write_db.h")
end
end
-- PerTemplate