Add hooks for containers

coverity_scan^2
Koncord 8 years ago
parent 536715cf46
commit 9ca206dda9

@ -2,6 +2,8 @@
#include <MyGUI_InputManager.h>
#include <MyGUI_Button.h>
#include "../mwmp/Main.hpp"
#include "../mwmp/WorldController.hpp"
#include "../mwbase/environment.hpp"
#include "../mwbase/world.hpp"
@ -132,6 +134,8 @@ namespace MWGui
void ContainerWindow::openContainer(const MWWorld::Ptr& container, bool loot)
{
mwmp::Main::get().getWorldController()->openContainer(container, loot);
mPickpocketDetected = false;
mPtr = container;
@ -175,6 +179,7 @@ namespace MWGui
void ContainerWindow::close()
{
mwmp::Main::get().getWorldController()->closeContainer(mPtr);
WindowBase::close();
if (dynamic_cast<PickpocketItemModel*>(mModel)

@ -2,7 +2,9 @@
#include "../mwworld/worldimp.hpp"
#include <components/esm/cellid.hpp>
#include <components/openmw-mp/Log.hpp>
#include "../mwworld/containerstore.hpp"
#include "../mwworld/class.hpp"
#include <components/openmw-mp/Log.hpp>
#include "WorldController.hpp"
#include "Main.hpp"
@ -38,3 +40,39 @@ MWWorld::CellStore *mwmp::WorldController::getCell(const ESM::Cell& cell)
return cellStore;
}
void mwmp::WorldController::openContainer(const MWWorld::Ptr &container, bool loot)
{
LOG_MESSAGE_SIMPLE(Log::LOG_VERBOSE, "Container \"%s\" (%d) is openned. Loot: %s",
container.getCellRef().getRefId().c_str(),
container.getCellRef().getRefNum().mIndex,
loot ? "true" : "false");
MWWorld::ContainerStore &cont = container.getClass().getContainerStore(container);
for(MWWorld::ContainerStoreIterator iter = cont.begin(); iter != cont.end(); iter++)
{
int count = iter->getRefData().getCount();
const std::string &name = iter->getCellRef().getRefId();
LOG_APPEND(Log::LOG_VERBOSE, " - Item. Refid: \"%s\" Count: %d", name.c_str(), count);
/*if(::Misc::StringUtils::ciEqual(name, "gold_001"))
cont.remove("gold_001", count, container);*/
}
}
void mwmp::WorldController::closeContainer(const MWWorld::Ptr &container)
{
LOG_MESSAGE_SIMPLE(Log::LOG_VERBOSE, "Container \"%s\" (%d) is closed.",
container.getCellRef().getRefId().c_str(),
container.getCellRef().getRefNum().mIndex);
MWWorld::ContainerStore &cont = container.getClass().getContainerStore(container);
for(MWWorld::ContainerStoreIterator iter = cont.begin(); iter != cont.end(); iter++)
{
LOG_APPEND(Log::LOG_VERBOSE, " - Item. Refid: \"%s\" Count: %d",
iter->getCellRef().getRefId().c_str(), iter->getRefData().getCount());
}
}

@ -1,6 +1,8 @@
#ifndef OPENMW_WORLDCONTROLLER_HPP
#define OPENMW_WORLDCONTROLLER_HPP
#include "../mwworld/cellstore.hpp"
namespace mwmp
{
class WorldController
@ -10,6 +12,9 @@ namespace mwmp
WorldController();
~WorldController();
void openContainer(const MWWorld::Ptr& container, bool loot);
void closeContainer(const MWWorld::Ptr& container);
virtual MWWorld::CellStore *getCell(const ESM::Cell& cell);
};
}

Loading…
Cancel
Save