From f2208671446d3a89276c0d5fa4f28c8ce2d764f9 Mon Sep 17 00:00:00 2001 From: Marc Zinnschlag Date: Sun, 23 Feb 2014 18:17:41 +0100 Subject: [PATCH] make Ptr a bit more pointer-like --- apps/openmw/mwworld/cellstore.cpp | 24 ++++++------------------ apps/openmw/mwworld/ptr.cpp | 5 +++++ apps/openmw/mwworld/ptr.hpp | 3 +++ 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/apps/openmw/mwworld/cellstore.cpp b/apps/openmw/mwworld/cellstore.cpp index ceb27274e3..91bda79af2 100644 --- a/apps/openmw/mwworld/cellstore.cpp +++ b/apps/openmw/mwworld/cellstore.cpp @@ -342,26 +342,14 @@ namespace MWWorld Ptr CellStore::searchInContainer (const std::string& id) { - { - Ptr ptr = searchInContainerList (mContainers, id); + if (Ptr ptr = searchInContainerList (mContainers, id)) + return ptr; - if (!ptr.isEmpty()) - return ptr; - } + if (Ptr ptr = searchInContainerList (mCreatures, id)) + return ptr; - { - Ptr ptr = searchInContainerList (mCreatures, id); - - if (!ptr.isEmpty()) - return ptr; - } - - { - Ptr ptr = searchInContainerList (mNpcs, id); - - if (!ptr.isEmpty()) - return ptr; - } + if (Ptr ptr = searchInContainerList (mNpcs, id)) + return ptr; return Ptr(); } diff --git a/apps/openmw/mwworld/ptr.cpp b/apps/openmw/mwworld/ptr.cpp index 67bfe49007..3920a3e794 100644 --- a/apps/openmw/mwworld/ptr.cpp +++ b/apps/openmw/mwworld/ptr.cpp @@ -55,3 +55,8 @@ MWWorld::ContainerStore *MWWorld::Ptr::getContainerStore() const { return mContainerStore; } + +MWWorld::Ptr::operator const void *() +{ + return mRef; +} \ No newline at end of file diff --git a/apps/openmw/mwworld/ptr.hpp b/apps/openmw/mwworld/ptr.hpp index 1212619d03..4529ae2798 100644 --- a/apps/openmw/mwworld/ptr.hpp +++ b/apps/openmw/mwworld/ptr.hpp @@ -74,6 +74,9 @@ namespace MWWorld ContainerStore *getContainerStore() const; ///< May return a 0-pointer, if reference is not in a container. + + operator const void *(); + ///< Return a 0-pointer, if Ptr is empty; return a non-0-pointer, if Ptr is not empty }; inline bool operator== (const Ptr& left, const Ptr& right)