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-tes3coop/apps/openmw/mwmp/DedicatedPlayer.hpp

61 lines
1.5 KiB
C++

//
// Created by koncord on 02.01.16.
//
#ifndef OPENMW_PLAYER_HPP
#define OPENMW_PLAYER_HPP
#include <components/esm/loadnpc.hpp>
#include <apps/openmw/mwworld/manualref.hpp>
#include <map>
#include <apps/openmw/mwmechanics/aisequence.hpp>
#include <RakNetTypes.h>
#include <components/openmw-mp/Base/BasePlayer.hpp>
namespace mwmp
{
struct DedicatedPlayer;
class Players
{
public:
static DedicatedPlayer *NewPlayer(RakNet::RakNetGUID guid);
static void CreatePlayer(RakNet::RakNetGUID guid);
static void DisconnectPlayer(RakNet::RakNetGUID guid);
static void CleanUp();
static DedicatedPlayer *GetPlayer(RakNet::RakNetGUID guid);
static DedicatedPlayer *GetPlayer(const MWWorld::Ptr &ptr);
static void Update(float dt);
private:
static std::map<RakNet::RakNetGUID, DedicatedPlayer *> players;
};
class DedicatedPlayer : public BasePlayer
{
friend class Players;
public:
MWWorld::Ptr getPtr();
MWWorld::Ptr getLiveCellPtr();
MWWorld::ManualRef* getRef();
void Move(float dt);
void UpdateDrawState();
void UpdateInventory();
void updateCell();
private:
DedicatedPlayer(RakNet::RakNetGUID guid);
virtual ~DedicatedPlayer();
void UpdatePtr(MWWorld::Ptr newPtr);
const std::string GetAnim();
int state;
MWWorld::ManualRef* reference;
MWWorld::Ptr ptr;
};
}
#endif //OPENMW_PLAYER_HPP