#include "CmPrerequisites.h" #include "CmGameObject.h" #include "CmGameObjectHandle.h" #include "CmException.h" #include "CmGameObjectHandleRTTI.h" namespace CamelotFramework { GameObjectHandleBase::GameObjectHandleBase(const std::shared_ptr& data) :mData(data) { } GameObjectHandleBase::GameObjectHandleBase(const std::shared_ptr ptr) { mData = cm_shared_ptr(ptr->mInstanceData); } GameObjectHandleBase::GameObjectHandleBase(std::nullptr_t ptr) { mData->mPtr = nullptr; } GameObjectHandleBase::GameObjectHandleBase() { } void GameObjectHandleBase::resolve(const GameObjectHandleBase& object) { mData = object.mData; } void GameObjectHandleBase::throwIfDestroyed() const { if(isDestroyed()) { CM_EXCEPT(InternalErrorException, "Trying to access an object that has been destroyed."); } } RTTITypeBase* GameObjectHandleBase::getRTTIStatic() { return GameObjectHandleRTTI::instance(); } RTTITypeBase* GameObjectHandleBase::getRTTI() const { return ResourceHandleBase::getRTTIStatic(); } }