Commit Graph
28 Commits
Author SHA1 Message Date
Jan Laupetin 53c279ff4c fix: increased iw4 and iw5 peeking may result in a failbit in the stream 2026-10-22 20:01:07 +02:00
moandJan Laupetin 9f49e0e31c 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]>
2026-08-05 00:32:23 +02:00
Jan Laupetin 4242c4a325 refactor: use std::expected instead of custom implementation 2026-04-04 14:47:10 +02:00
Jan Laupetin 90d7f92ddd chore: replace all usages of removed ClassUtils macros 2026-03-06 00:13:04 +01:00
Jan Laupetin 2b2590b8fb fix: not correctly returning bad result for failed zone loading 2026-01-17 00:45:18 +00:00
Jan Laupetin 9fa41ca0d3 feat: show loading progress in modman 2025-10-14 17:59:34 +01:00
Jan Laupetin 5b3664ad8c chore: add possibility to provide loading progress callback when loading zones 2025-10-14 16:48:20 +01:00
Jan Laupetin b27b7e77bd chore: pass ZoneLoading error as result 2025-10-11 19:04:47 +01:00
Jan Laupetin 02f20f09b6 chore: update all logging to use centralized logging component 2025-09-11 20:25:51 +02:00
Jan a1851b0ea0 chore: use method static array for zoneloaderfactory 2024-10-19 20:05:08 +01:00
Jan 1b13f1f1b4 refactor: only use sizeof with parenthesis 2024-03-24 19:56:06 +01:00
Clang Format c858695f0c Adjust further code formatting 2023-11-19 21:07:28 +00:00
Clang Format 6b4f5d94a8 Reformat code with clang format 2023-11-19 21:07:21 +00:00
Jan f201dfafd8 IW5 support initial commit 2021-07-23 01:12:36 +02:00
Jan bb3e7d9e88 Load T5 fastfiles 2021-05-12 21:47:34 +02:00
Jan ecef868903 Add loading of iw3 fastfiles 2021-04-14 19:41:41 +02:00
Jan 4f995751ce Add load argument to unlinker to load zones before trying to unlink specified zones
this allows to make sure certain ipaks are loaded before dumping
2021-03-27 16:45:30 +01:00
Jan 1cd06668e0 Replace FileAPI with c++ streams and std::filesystem 2021-03-03 14:04:35 +01:00
Jan f3afaf3110 move zoneloaderfactories in their respective game namespaces 2020-10-17 16:04:26 +02:00
Jan 060e5678b5 Read IW4 signed headers 2020-09-06 14:39:19 +02:00
Jan 00b3322cb2 ZoneLoading: Extract all obj dumping relevant parts to ObjWriting component 2019-12-25 14:07:24 +01:00
Jan d220aa8fde ZoneLoading: Make ZoneDumper also generate a game specific zone file 2019-11-18 21:42:02 +01:00
Jan 73489ee455 ZoneLoading: Add dumping for Rawfile based assets 2019-11-16 01:24:09 +01:00
Jan 2fe3954da8 Unlinker: Add skeleton for Dumping and listing of assets 2019-11-15 18:17:08 +01:00
Jan 9d1b7325a2 Code Quality: Use enum class instead of enum to make sure enum members can only be accessed when scoped to the enum 2019-10-02 12:48:58 +02:00
Jan d662e5dcfa Implement ZoneLoading in ZoneLoading component class 2019-09-26 22:35:59 +02:00
Jan 36cc8d3065 Make use of ArgumentParser and UsageInformation Generator in unlink tool 2019-09-26 21:43:49 +02:00
Jan 42af6df5d8 Rename ZoneLoader and ZoneWriter components to ZoneLoading and ZoneWriting to make a difference between the executive class and the component class 2019-09-24 22:35:11 +02:00