From d6613d3677adf5a921a4d93a9e7afafe17aff7d7 Mon Sep 17 00:00:00 2001 From: Bo Svensson <90132211+bosvensson1@users.noreply.github.com> Date: Mon, 11 Oct 2021 14:56:26 +0000 Subject: [PATCH] mostly reverts MWLua changes (#3170) We just can no longer use the former ptr.getTypeName() as a fallback, but I do not suppose it matters. This value was an implementation defined string that usually contained a garbled mess. Probably we should additionally refactor Lua types completely now that we have Ptr::getType(). I will leave this up to MWLua developers. --- apps/openmw/mwlua/object.cpp | 8 ++++---- apps/openmw/mwlua/object.hpp | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/openmw/mwlua/object.cpp b/apps/openmw/mwlua/object.cpp index eb88ab69d0..266e628dd6 100644 --- a/apps/openmw/mwlua/object.cpp +++ b/apps/openmw/mwlua/object.cpp @@ -23,7 +23,7 @@ namespace MWLua return std::to_string(id.mIndex) + "_" + std::to_string(id.mContentFile); } - const static std::map classNames = { + const static std::map classNames = { {typeid(MWClass::Activator), "Activator"}, {typeid(MWClass::Armor), "Armor"}, {typeid(MWClass::Book), "Book"}, @@ -40,7 +40,7 @@ namespace MWLua {typeid(MWClass::Weapon), "Weapon"}, }; - std::string getMWClassName(const std::type_index& cls_type, std::string fallback) + std::string_view getMWClassName(const std::type_index& cls_type, std::string_view fallback) { auto it = classNames.find(cls_type); if (it != classNames.end()) @@ -55,13 +55,13 @@ namespace MWLua return id == "prisonmarker" || id == "divinemarker" || id == "templemarker" || id == "northmarker"; } - std::string getMWClassName(const MWWorld::Ptr& ptr) + std::string_view getMWClassName(const MWWorld::Ptr& ptr) { if (ptr.getCellRef().getRefIdRef() == "player") return "Player"; if (isMarker(ptr)) return "Marker"; - return ptr.getTypeDescription(); + return getMWClassName(typeid(ptr.getClass())); } std::string ptrToString(const MWWorld::Ptr& ptr) diff --git a/apps/openmw/mwlua/object.hpp b/apps/openmw/mwlua/object.hpp index 5cd8f399d7..c0b6bf1919 100644 --- a/apps/openmw/mwlua/object.hpp +++ b/apps/openmw/mwlua/object.hpp @@ -19,8 +19,8 @@ namespace MWLua std::string idToString(const ObjectId& id); std::string ptrToString(const MWWorld::Ptr& ptr); bool isMarker(const MWWorld::Ptr& ptr); - std::string getMWClassName(const std::type_index& cls_type, std::string fallback = "Unknown"); - std::string getMWClassName(const MWWorld::Ptr& ptr); + std::string_view getMWClassName(const std::type_index& cls_type, std::string_view fallback = "Unknown"); + std::string_view getMWClassName(const MWWorld::Ptr& ptr); // Holds a mapping ObjectId -> MWWord::Ptr. class ObjectRegistry