From d3af894d2f745a45bc99905b5b93201944cdc5cc Mon Sep 17 00:00:00 2001 From: yyc12345 Date: Thu, 5 Feb 2026 14:32:49 +0800 Subject: [PATCH] feat: add target camera in BMapInspector --- Ballance/BMapInspector/Map.cpp | 24 +++++++++++++++++------- Ballance/BMapInspector/Map.hpp | 15 +++------------ Ballance/BMapInspector/Rule.hpp | 1 - LibCmo/LibCmo/CK2/CKTypes.hpp | 4 ++-- 4 files changed, 22 insertions(+), 22 deletions(-) diff --git a/Ballance/BMapInspector/Map.cpp b/Ballance/BMapInspector/Map.cpp index aa2f22f..858a909 100644 --- a/Ballance/BMapInspector/Map.cpp +++ b/Ballance/BMapInspector/Map.cpp @@ -59,25 +59,29 @@ namespace BMapInspector::Map { auto ptr = fileobj.ObjPtr; if (ptr == nullptr) continue; + using LibCmo::CK2::CK_CLASSID; switch (fileobj.ObjectCid) { - case LibCmo::CK2::CK_CLASSID::CKCID_GROUP: + case CK_CLASSID::CKCID_GROUP: m_ObjGroups.emplace_back(static_cast(ptr)); break; - case LibCmo::CK2::CK_CLASSID::CKCID_3DOBJECT: + case CK_CLASSID::CKCID_3DOBJECT: m_Obj3dObjects.emplace_back(static_cast(ptr)); break; - case LibCmo::CK2::CK_CLASSID::CKCID_MESH: + case CK_CLASSID::CKCID_MESH: m_ObjMeshes.emplace_back(static_cast(ptr)); break; - case LibCmo::CK2::CK_CLASSID::CKCID_MATERIAL: + case CK_CLASSID::CKCID_MATERIAL: m_ObjMaterials.emplace_back(static_cast(ptr)); break; - case LibCmo::CK2::CK_CLASSID::CKCID_TEXTURE: + case CK_CLASSID::CKCID_TEXTURE: m_ObjTextures.emplace_back(static_cast(ptr)); break; - case LibCmo::CK2::CK_CLASSID::CKCID_TARGETLIGHT: + case CK_CLASSID::CKCID_TARGETLIGHT: m_ObjTargetLights.emplace_back(static_cast(ptr)); break; + case CK_CLASSID::CKCID_TARGETCAMERA: + m_ObjTargetCameras.emplace_back(static_cast(ptr)); + break; default: break; // skip unknow objects } @@ -95,7 +99,7 @@ namespace BMapInspector::Map { YYCC_IMPL_MOVE_CTOR(Level, rhs) : m_Context(rhs.m_Context), m_ObjGroups(std::move(rhs.m_ObjGroups)), m_Obj3dObjects(std::move(rhs.m_Obj3dObjects)), m_ObjMeshes(std::move(rhs.m_ObjMeshes)), m_ObjMaterials(std::move(rhs.m_ObjMaterials)), m_ObjTextures(std::move(rhs.m_ObjTextures)), - m_ObjTargetLights(std::move(rhs.m_ObjTargetLights)) + m_ObjTargetLights(std::move(rhs.m_ObjTargetLights)), m_ObjTargetCameras(std::move(rhs.m_ObjTargetCameras)) { rhs.m_Context = nullptr; @@ -109,6 +113,7 @@ namespace BMapInspector::Map { this->m_ObjMaterials = std::move(rhs.m_ObjMaterials); this->m_ObjTextures = std::move(rhs.m_ObjTextures); this->m_ObjTargetLights = std::move(rhs.m_ObjTargetLights); + this->m_ObjTargetCameras = std::move(rhs.m_ObjTargetCameras); rhs.m_Context = nullptr; @@ -157,6 +162,11 @@ namespace BMapInspector::Map { return this->m_ObjTargetLights; } + const std::vector& Level::GetTargetCameras() const { + CHECK_STATUS(this) + return this->m_ObjTargetCameras; + } + #undef CHECK_STATUS #pragma endregion diff --git a/Ballance/BMapInspector/Map.hpp b/Ballance/BMapInspector/Map.hpp index d17987d..06dbea0 100644 --- a/Ballance/BMapInspector/Map.hpp +++ b/Ballance/BMapInspector/Map.hpp @@ -1,5 +1,6 @@ #pragma once #include "Cli.hpp" +#include #include #include #include @@ -7,18 +8,6 @@ #include #include -namespace LibCmo::CK2 { - class CKContext; - namespace ObjImpls { - class CKGroup; - class CK3dObject; - class CKMesh; - class CKMaterial; - class CKTexture; - class CKTargetLight; - } // namespace ObjImpls -} // namespace LibCmo::CK2 - namespace BMapInspector::Map { enum class Error { @@ -53,6 +42,7 @@ namespace BMapInspector::Map { const std::vector& GetMaterials() const; const std::vector& GetTextures() const; const std::vector& GetTargetLights() const; + const std::vector& GetTargetCameras() const; private: std::vector m_ObjGroups; @@ -61,6 +51,7 @@ namespace BMapInspector::Map { std::vector m_ObjMaterials; std::vector m_ObjTextures; std::vector m_ObjTargetLights; + std::vector m_ObjTargetCameras; }; Result load(const Cli::Args& args); diff --git a/Ballance/BMapInspector/Rule.hpp b/Ballance/BMapInspector/Rule.hpp index d2db082..bd1297e 100644 --- a/Ballance/BMapInspector/Rule.hpp +++ b/Ballance/BMapInspector/Rule.hpp @@ -2,7 +2,6 @@ #include "Utils.hpp" #include "Reporter.hpp" #include "Map.hpp" -#include #include #include #include diff --git a/LibCmo/LibCmo/CK2/CKTypes.hpp b/LibCmo/LibCmo/CK2/CKTypes.hpp index 98a5774..00e9ec7 100644 --- a/LibCmo/LibCmo/CK2/CKTypes.hpp +++ b/LibCmo/LibCmo/CK2/CKTypes.hpp @@ -437,13 +437,13 @@ namespace LibCmo::CK2 { constexpr CKGUID(CKDWORD gd1 = 0, CKDWORD gd2 = 0) : d1(gd1), d2(gd2) {} CKGUID(const CKGUID& rhs) : d1(rhs.d1), d2(rhs.d2) {} - CKGUID(CKGUID&& rhs) : d1(rhs.d1), d2(rhs.d2) {} + CKGUID(CKGUID&& rhs) noexcept : d1(rhs.d1), d2(rhs.d2) {} CKGUID& operator=(const CKGUID& rhs) { this->d1 = rhs.d1; this->d2 = rhs.d2; return *this; } - CKGUID& operator=(CKGUID&& rhs) { + CKGUID& operator=(CKGUID&& rhs) noexcept { this->d1 = rhs.d1; this->d2 = rhs.d2; return *this;