diff --git a/docs/engine/objects/zCVobLensFlare.md b/docs/engine/objects/zCVobLensFlare.md
new file mode 100644
index 00000000..0ca49474
--- /dev/null
+++ b/docs/engine/objects/zCVobLensFlare.md
@@ -0,0 +1,30 @@
+# zCVobLensFlare
+
+!!! abstract inline end "Quick Infos"
+ **Type:** Virtual Object
+ **Format Name:** ZenGin Archive
+ **File Extension:** `.ZEN`
+ **Class Name:** `zCVobLensFlare`
+ **Version Identifiers:**
+ — Gothic I: `64704`
+ — Gothic II: `193`
+ **ZenKit Class:** `VLensFlare`
+
+Represents a lens flare effect.
+
+
+ - zCVob
+ -
+ zCVobLight
+
+
+
+
+## Properties
+
+ `lensflareFX`
+
+: The name of the lens flare effect. Must be one of the effects listed in `/_work/data/Presets/Lensflare.zen`.
+
diff --git a/include/zenkit/vobs/Misc.hh b/include/zenkit/vobs/Misc.hh
index f7c26372..0041f1ab 100644
--- a/include/zenkit/vobs/Misc.hh
+++ b/include/zenkit/vobs/Misc.hh
@@ -119,23 +119,31 @@ namespace zenkit {
[[nodiscard]] ZKAPI uint16_t get_version_identifier(GameVersion game) const override;
};
- /// \brief A VOb representing a [lens flare](https://en.wikipedia.org/wiki/Lens_flare).
+ /// \brief Represents a lens flare effect.
+ /// \see https://zk.gothickit.dev/engine/objects/zCVobLensFlare/
struct VLensFlare : VirtualObject {
ZK_OBJECT(ObjectType::zCVobLensFlare);
public:
+ /// \brief The name of the lens flare effect.
+ ///
+ /// Must be one of the effects listed in `/_work/data/Presets/Lensflare.zen`.
+ ///
+ /// \see https://zk.gothickit.dev/engine/objects/zCVobLensFlare/#lensflareFX
std::string fx;
- /// \brief Parses a lens flare VOb the given *ZenGin* archive.
- /// \param[out] obj The object to read.
- /// \param[in,out] ctx The archive reader to read from.
- /// \note After this function returns the position of \p ctx will be at the end of the parsed object.
- /// \throws ParserError if parsing fails.
- /// \see vob::parse
ZKREM("use ::load()") ZKAPI static void parse(VLensFlare& obj, ReadArchive& ctx, GameVersion version);
+ /// \brief Load this object from the given archive.
+ /// \param r The archive to read from;
+ /// \param version The version of the game the object was made for.
ZKAPI void load(ReadArchive& r, GameVersion version) override;
+
+ /// \brief Save this object to the given archive.
+ /// \param w The archive to save to.
+ /// \param version The version of the game to save for.
ZKAPI void save(WriteArchive& w, GameVersion version) const override;
+
[[nodiscard]] ZKAPI uint16_t get_version_identifier(GameVersion game) const override;
};
diff --git a/mkdocs.yml b/mkdocs.yml
index 41b8db89..5407aac0 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -39,6 +39,7 @@ nav:
- 'Objects':
- 'zCVob': 'engine/objects/zCVob.md'
- 'zCVobAnimate': 'engine/objects/zCVobAnimate.md'
+ - 'zCVobLensFlare': 'engine/objects/zCVobLensFlare.md'
- 'zCVobLevelCompo': 'engine/objects/zCVobLevelCompo.md'
- 'zCVobLight': 'engine/objects/zCVobLight.md'
- 'zCVobSpot': 'engine/objects/zCVobSpot.md'