You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openmw-tes3mp/apps/openmw/mwmp/CellController.hpp

53 lines
1.7 KiB
C++

#ifndef OPENMW_CELLCONTROLLER_HPP
#define OPENMW_CELLCONTROLLER_HPP
#include "Cell.hpp"
#include "WorldEvent.hpp"
#include "LocalActor.hpp"
#include "DedicatedActor.hpp"
#include "../mwworld/cellstore.hpp"
namespace mwmp
{
class CellController
{
public:
CellController();
~CellController();
void updateLocal();
void updateDedicated(float dt);
void initializeCell(const ESM::Cell& cell);
void initializeLocalActors(const ESM::Cell& cell);
void readCellFrame(mwmp::WorldEvent& worldEvent);
void setLocalActorRecord(std::string actorIndex, std::string cellIndex);
void removeLocalActorRecord(std::string actorIndex);
bool hasLocalActorRecord(MWWorld::Ptr ptr);
virtual LocalActor *getLocalActor(MWWorld::Ptr ptr);
void setDedicatedActorRecord(std::string actorIndex, std::string cellIndex);
void removeDedicatedActorRecord(std::string actorIndex);
bool hasDedicatedActorRecord(MWWorld::Ptr ptr);
virtual DedicatedActor *getDedicatedActor(MWWorld::Ptr ptr);
std::string generateMapIndex(MWWorld::Ptr ptr);
std::string generateMapIndex(mwmp::WorldObject object);
int getCellSize() const;
virtual MWWorld::CellStore *getCell(const ESM::Cell& cell);
void openContainer(const MWWorld::Ptr& container, bool loot);
void closeContainer(const MWWorld::Ptr& container);
private:
static std::map<std::string, mwmp::Cell *> cellsActive;
static std::map<std::string, std::string> localActorsToCells;
static std::map<std::string, std::string> dedicatedActorsToCells;
};
}
#endif //OPENMW_CELLCONTROLLER_HPP