1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-15 21:49:56 +00:00
openmw-tes3mp/apps/openmw/mwmp/CellController.hpp
David Cernat 9350e1d484 [General] Split up Attack packets into Attack and Cast ones
Create an entirely new PlayerCast packet for that purpose, but rename the already existing but unused ActorInteraction into ActorCast.
2019-08-25 09:35:23 +03:00

74 lines
2.7 KiB
C++

#ifndef OPENMW_CELLCONTROLLER_HPP
#define OPENMW_CELLCONTROLLER_HPP
#include "Cell.hpp"
#include "ActorList.hpp"
#include "LocalActor.hpp"
#include "DedicatedActor.hpp"
#include "../mwworld/cellstore.hpp"
namespace mwmp
{
class CellController
{
public:
CellController();
virtual ~CellController();
void updateLocal(bool forceUpdate);
void updateDedicated(float dt);
void initializeCell(const ESM::Cell& cell);
void readPositions(mwmp::ActorList& actorList);
void readAnimFlags(mwmp::ActorList& actorList);
void readAnimPlay(mwmp::ActorList& actorList);
void readStatsDynamic(mwmp::ActorList& actorList);
void readEquipment(mwmp::ActorList& actorList);
void readSpeech(mwmp::ActorList& actorList);
void readAi(mwmp::ActorList& actorList);
void readAttack(mwmp::ActorList& actorList);
void readCast(mwmp::ActorList& actorList);
void readCellChange(mwmp::ActorList& actorList);
void setLocalActorRecord(std::string actorIndex, std::string cellIndex);
void removeLocalActorRecord(std::string actorIndex);
bool isLocalActor(MWWorld::Ptr ptr);
bool isLocalActor(int refNum, int mpNum);
virtual LocalActor *getLocalActor(MWWorld::Ptr ptr);
virtual LocalActor *getLocalActor(int refNum, int mpNum);
void setDedicatedActorRecord(std::string actorIndex, std::string cellIndex);
void removeDedicatedActorRecord(std::string actorIndex);
bool isDedicatedActor(MWWorld::Ptr ptr);
bool isDedicatedActor(int refNum, int mpNum);
virtual DedicatedActor *getDedicatedActor(MWWorld::Ptr ptr);
virtual DedicatedActor *getDedicatedActor(int refNum, int mpNum);
std::string generateMapIndex(int refNumindex, int mpNum);
std::string generateMapIndex(MWWorld::Ptr ptr);
std::string generateMapIndex(mwmp::BaseActor baseActor);
bool hasLocalAuthority(const ESM::Cell& cell);
bool isInitializedCell(const std::string& cellDescription);
bool isInitializedCell(const ESM::Cell& cell);
bool isActiveWorldCell(const ESM::Cell& cell);
virtual Cell *getCell(const ESM::Cell& cell);
virtual MWWorld::CellStore *getCellStore(const ESM::Cell& cell);
bool isSameCell(const ESM::Cell& cell, const ESM::Cell& otherCell);
int getCellSize() const;
private:
static std::map<std::string, mwmp::Cell *> cellsInitialized;
static std::map<std::string, std::string> localActorsToCells;
static std::map<std::string, std::string> dedicatedActorsToCells;
};
}
#endif //OPENMW_CELLCONTROLLER_HPP