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