#include "livecellref.hpp" #include #include "../mwbase/environment.hpp" #include "../mwbase/world.hpp" #include "ptr.hpp" #include "class.hpp" #include "esmstore.hpp" void MWWorld::LiveCellRefBase::loadImp (const ESM::ObjectState& state) { mRef = state.mRef; mData = RefData (state); Ptr ptr (this); if (state.mHasLocals) { std::string scriptId = mClass->getScript (ptr); mData.setLocals (*MWBase::Environment::get().getWorld()->getStore(). get().search (scriptId)); mData.getLocals().read (state.mLocals, scriptId); } mClass->readAdditionalState (ptr, state); } void MWWorld::LiveCellRefBase::saveImp (ESM::ObjectState& state) const { state.mRef = mRef; /// \todo get rid of this cast once const-correct Ptr are available Ptr ptr (const_cast (this)); mData.write (state, mClass->getScript (ptr)); mClass->writeAdditionalState (ptr, state); } bool MWWorld::LiveCellRefBase::checkStateImp (const ESM::ObjectState& state) { return true; }