1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-02-01 02:15:32 +00:00

[Client] Split off DedicatedPlayer and PlayerList into different files

This commit is contained in:
David Cernat 2017-04-30 14:57:43 +03:00
parent f2ec6ce02c
commit 809b4d78ba
19 changed files with 279 additions and 230 deletions

View file

@ -96,8 +96,8 @@ add_openmw_dir (mwbase
inputmanager windowmanager statemanager inputmanager windowmanager statemanager
) )
add_openmw_dir (mwmp Main Networking LocalPlayer DedicatedPlayer LocalActor DedicatedActor ActorList WorldEvent Cell add_openmw_dir (mwmp Main Networking LocalPlayer DedicatedPlayer PlayerList LocalActor DedicatedActor ActorList WorldEvent
CellController MechanicsHelper GUIChat GUILogin GUIController PlayerMarkerCollection GUIDialogList Cell CellController MechanicsHelper GUIChat GUILogin GUIController PlayerMarkerCollection GUIDialogList
BaseClientPacketProcessor PlayerProcessor WorldProcessor ActorProcessor ProcessorInitializer) BaseClientPacketProcessor PlayerProcessor WorldProcessor ActorProcessor ProcessorInitializer)
add_openmw_dir (mwmp\\processors\\actor ProcessorActorAnimFlags ProcessorActorAnimPlay ProcessorActorAttack add_openmw_dir (mwmp\\processors\\actor ProcessorActorAnimFlags ProcessorActorAnimPlay ProcessorActorAttack

View file

@ -13,7 +13,7 @@
#include <components/openmw-mp/Log.hpp> #include <components/openmw-mp/Log.hpp>
#include "../mwmp/Main.hpp" #include "../mwmp/Main.hpp"
#include "../mwmp/LocalPlayer.hpp" #include "../mwmp/LocalPlayer.hpp"
#include "../mwmp/DedicatedPlayer.hpp" #include "../mwmp/PlayerList.hpp"
#include "../mwmp/CellController.hpp" #include "../mwmp/CellController.hpp"
#include "../mwmp/MechanicsHelper.hpp" #include "../mwmp/MechanicsHelper.hpp"
/* /*

View file

@ -16,7 +16,7 @@
#include <components/openmw-mp/Log.hpp> #include <components/openmw-mp/Log.hpp>
#include "../mwmp/Main.hpp" #include "../mwmp/Main.hpp"
#include "../mwmp/LocalPlayer.hpp" #include "../mwmp/LocalPlayer.hpp"
#include "../mwmp/DedicatedPlayer.hpp" #include "../mwmp/PlayerList.hpp"
#include "../mwmp/CellController.hpp" #include "../mwmp/CellController.hpp"
#include "../mwmp/MechanicsHelper.hpp" #include "../mwmp/MechanicsHelper.hpp"
/* /*

View file

@ -19,7 +19,7 @@
#include <components/openmw-mp/Log.hpp> #include <components/openmw-mp/Log.hpp>
#include "../mwmp/Main.hpp" #include "../mwmp/Main.hpp"
#include "../mwmp/LocalPlayer.hpp" #include "../mwmp/LocalPlayer.hpp"
#include "../mwmp/DedicatedPlayer.hpp" #include "../mwmp/PlayerList.hpp"
#include "../mwmp/CellController.hpp" #include "../mwmp/CellController.hpp"
#include "../mwmp/MechanicsHelper.hpp" #include "../mwmp/MechanicsHelper.hpp"
/* /*

View file

@ -36,7 +36,7 @@
#include "../mwmp/Main.hpp" #include "../mwmp/Main.hpp"
#include "../mwmp/LocalPlayer.hpp" #include "../mwmp/LocalPlayer.hpp"
#include "../mwmp/LocalActor.hpp" #include "../mwmp/LocalActor.hpp"
#include "../mwmp/DedicatedPlayer.hpp" #include "../mwmp/PlayerList.hpp"
#include "../mwmp/CellController.hpp" #include "../mwmp/CellController.hpp"
#include "../mwmp/MechanicsHelper.hpp" #include "../mwmp/MechanicsHelper.hpp"
/* /*

View file

@ -12,7 +12,7 @@
#include <components/openmw-mp/Log.hpp> #include <components/openmw-mp/Log.hpp>
#include "../mwmp/Main.hpp" #include "../mwmp/Main.hpp"
#include "../mwmp/LocalPlayer.hpp" #include "../mwmp/LocalPlayer.hpp"
#include "../mwmp/DedicatedPlayer.hpp" #include "../mwmp/PlayerList.hpp"
#include "../mwmp/CellController.hpp" #include "../mwmp/CellController.hpp"
#include "../mwmp/MechanicsHelper.hpp" #include "../mwmp/MechanicsHelper.hpp"
/* /*

View file

@ -15,7 +15,7 @@
Include additional headers for multiplayer purposes Include additional headers for multiplayer purposes
*/ */
#include "../mwmp/Main.hpp" #include "../mwmp/Main.hpp"
#include "../mwmp/DedicatedPlayer.hpp" #include "../mwmp/PlayerList.hpp"
#include "../mwmp/CellController.hpp" #include "../mwmp/CellController.hpp"
/* /*
End of tes3mp addition End of tes3mp addition

View file

@ -15,7 +15,7 @@
*/ */
#include <components/openmw-mp/Log.hpp> #include <components/openmw-mp/Log.hpp>
#include "../mwmp/Main.hpp" #include "../mwmp/Main.hpp"
#include "../mwmp/DedicatedPlayer.hpp" #include "../mwmp/PlayerList.hpp"
#include "../mwmp/LocalPlayer.hpp" #include "../mwmp/LocalPlayer.hpp"
#include "../mwmp/MechanicsHelper.hpp" #include "../mwmp/MechanicsHelper.hpp"
/* /*

View file

@ -39,8 +39,6 @@
using namespace mwmp; using namespace mwmp;
using namespace std; using namespace std;
std::map<RakNet::RakNetGUID, DedicatedPlayer *> PlayerList::players;
DedicatedPlayer::DedicatedPlayer(RakNet::RakNetGUID guid) : BasePlayer(guid) DedicatedPlayer::DedicatedPlayer(RakNet::RakNetGUID guid) : BasePlayer(guid)
{ {
attack.pressed = 0; attack.pressed = 0;
@ -52,200 +50,6 @@ DedicatedPlayer::~DedicatedPlayer()
} }
void PlayerList::update(float dt)
{
for (std::map <RakNet::RakNetGUID, DedicatedPlayer *>::iterator it = players.begin(); it != players.end(); it++)
{
DedicatedPlayer *player = it->second;
if (player == 0) continue;
player->update(dt);
}
}
void PlayerList::createPlayer(RakNet::RakNetGUID guid)
{
LOG_APPEND(Log::LOG_INFO, "- Setting up character info");
MWBase::World *world = MWBase::Environment::get().getWorld();
DedicatedPlayer *dedicPlayer = players[guid];
ESM::Creature creature;
ESM::NPC npc;
if (!dedicPlayer->creatureModel.empty())
{
const ESM::Creature *tmpCreature = world->getStore().get<ESM::Creature>().search(dedicPlayer->creatureModel);
if(tmpCreature == 0)
{
dedicPlayer->creatureModel = "";
createPlayer(guid);
return;
}
creature = *tmpCreature;
creature.mScript = "";
if(!dedicPlayer->useCreatureName)
creature.mName = dedicPlayer->npc.mName;
}
else
{
MWWorld::Ptr player = world->getPlayerPtr();
npc = *player.get<ESM::NPC>()->mBase;
// To avoid freezes caused by invalid races, only set race if we find it
// on our client
if (world->getStore().get<ESM::Race>().search(dedicPlayer->npc.mRace) != 0)
npc.mRace = dedicPlayer->npc.mRace;
npc.mHead = dedicPlayer->npc.mHead;
npc.mHair = dedicPlayer->npc.mHair;
npc.mClass = dedicPlayer->npc.mClass;
npc.mName = dedicPlayer->npc.mName;
npc.mFlags = dedicPlayer->npc.mFlags;
}
if (dedicPlayer->state == 0)
{
string recid;
if (dedicPlayer->creatureModel.empty())
{
npc.mId = "Dedicated Player";
recid = world->createRecord(npc)->mId;
}
else
{
creature.mId = "Dedicated Player";
recid = world->createRecord(creature)->mId;
}
dedicPlayer->reference = new MWWorld::ManualRef(world->getStore(), recid, 1);
}
// Temporarily spawn or move player to the center of exterior 0,0 whenever setting base info
ESM::Position spawnPos;
spawnPos.pos[0] = spawnPos.pos[1] = Main::get().getCellController()->getCellSize() / 2;
spawnPos.pos[2] = 0;
MWWorld::CellStore *cellStore = world->getExterior(0, 0);
if (dedicPlayer->state == 0)
{
LOG_APPEND(Log::LOG_INFO, "- Creating new reference pointer for %s", dedicPlayer->npc.mName.c_str());
MWWorld::Ptr tmp = world->placeObject(dedicPlayer->reference->getPtr(), cellStore, spawnPos);
dedicPlayer->ptr.mCell = tmp.mCell;
dedicPlayer->ptr.mRef = tmp.mRef;
dedicPlayer->cell = *dedicPlayer->ptr.getCell()->getCell();
dedicPlayer->position = dedicPlayer->ptr.getRefData().getPosition();
}
else
{
LOG_APPEND(Log::LOG_INFO, "- Updating reference pointer for %s", dedicPlayer->npc.mName.c_str());
MWWorld::ESMStore *store = const_cast<MWWorld::ESMStore *>(&world->getStore());
if (!dedicPlayer->creatureModel.empty())
{
creature.mId = players[guid]->ptr.get<ESM::Creature>()->mBase->mId;
MWWorld::Store<ESM::Creature> *esm_store = const_cast<MWWorld::Store<ESM::Creature> *> (&store->get<ESM::Creature>());
esm_store->insert(creature);
}
else
{
npc.mId = players[guid]->ptr.get<ESM::NPC>()->mBase->mId;
MWWorld::Store<ESM::NPC> *esm_store = const_cast<MWWorld::Store<ESM::NPC> *> (&store->get<ESM::NPC>());
esm_store->insert(npc);
}
// Disable Ptr to avoid graphical glitches caused by race changes
world->disable(players[guid]->ptr);
dedicPlayer->setPtr(world->moveObject(dedicPlayer->ptr, cellStore, spawnPos.pos[0], spawnPos.pos[1], spawnPos.pos[2]));
dedicPlayer->updateCell();
ESM::CustomMarker mEditingMarker = Main::get().getGUIController()->CreateMarker(guid);
dedicPlayer->marker = mEditingMarker;
dedicPlayer->setMarkerState(true);
}
dedicPlayer->guid = guid;
dedicPlayer->state = 2;
// Give this new character a fatigue of at least 1 so it doesn't spawn
// on the ground
dedicPlayer->creatureStats.mDynamic[2].mBase = 1;
world->enable(players[guid]->ptr);
}
DedicatedPlayer *PlayerList::newPlayer(RakNet::RakNetGUID guid)
{
LOG_APPEND(Log::LOG_INFO, "- Creating new DedicatedPlayer with guid %lu", guid.g);
players[guid] = new DedicatedPlayer(guid);
players[guid]->state = 0;
return players[guid];
}
void PlayerList::disconnectPlayer(RakNet::RakNetGUID guid)
{
if (players[guid]->state > 1)
{
players[guid]->state = 1;
// Remove player's marker
players[guid]->setMarkerState(false);
MWBase::World *world = MWBase::Environment::get().getWorld();
world->disable(players[guid]->getPtr());
// Move player to exterior 0,0
ESM::Position newPos;
newPos.pos[0] = newPos.pos[1] = Main::get().getCellController()->getCellSize() / 2;
newPos.pos[2] = 0;
MWWorld::CellStore *cellStore = world->getExterior(0, 0);
world->moveObject(players[guid]->getPtr(), cellStore, newPos.pos[0], newPos.pos[1], newPos.pos[2]);
}
}
void PlayerList::cleanUp()
{
for (std::map <RakNet::RakNetGUID, DedicatedPlayer *>::iterator it = players.begin(); it != players.end(); it++)
delete it->second;
}
DedicatedPlayer *PlayerList::getPlayer(RakNet::RakNetGUID guid)
{
return players[guid];
}
DedicatedPlayer *PlayerList::getPlayer(const MWWorld::Ptr &ptr)
{
std::map <RakNet::RakNetGUID, DedicatedPlayer *>::iterator it = players.begin();
for (; it != players.end(); it++)
{
if (it->second == 0 || it->second->getPtr().mRef == 0)
continue;
string refid = ptr.getCellRef().getRefId();
if (it->second->getPtr().getCellRef().getRefId() == refid)
return it->second;
}
return 0;
}
bool PlayerList::isDedicatedPlayer(const MWWorld::Ptr &ptr)
{
if (ptr.mRef == NULL)
return false;
return (getPlayer(ptr) != 0);
}
void DedicatedPlayer::update(float dt) void DedicatedPlayer::update(float dt)
{ {
MWMechanics::CreatureStats *ptrCreatureStats = &ptr.getClass().getCreatureStats(ptr); MWMechanics::CreatureStats *ptrCreatureStats = &ptr.getClass().getCreatureStats(ptr);

View file

@ -25,28 +25,6 @@ namespace mwmp
{ {
struct DedicatedPlayer; struct DedicatedPlayer;
class PlayerList
{
public:
static void update(float dt);
static void createPlayer(RakNet::RakNetGUID guid);
static DedicatedPlayer *newPlayer(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 bool isDedicatedPlayer(const MWWorld::Ptr &ptr);
private:
static std::map<RakNet::RakNetGUID, DedicatedPlayer *> players;
};
class DedicatedPlayer : public BasePlayer class DedicatedPlayer : public BasePlayer
{ {
friend class PlayerList; friend class PlayerList;

View file

@ -35,6 +35,7 @@
#include "GUIChat.hpp" #include "GUIChat.hpp"
#include "LocalPlayer.hpp" #include "LocalPlayer.hpp"
#include "DedicatedPlayer.hpp" #include "DedicatedPlayer.hpp"
#include "PlayerList.hpp"
mwmp::GUIController::GUIController(): mInputBox(0), mListBox(0) mwmp::GUIController::GUIController(): mInputBox(0), mListBox(0)

View file

@ -41,6 +41,7 @@
#include "Networking.hpp" #include "Networking.hpp"
#include "LocalPlayer.hpp" #include "LocalPlayer.hpp"
#include "DedicatedPlayer.hpp" #include "DedicatedPlayer.hpp"
#include "PlayerList.hpp"
#include "GUIController.hpp" #include "GUIController.hpp"
#include "CellController.hpp" #include "CellController.hpp"
#include "MechanicsHelper.hpp" #include "MechanicsHelper.hpp"

View file

@ -16,6 +16,7 @@
#include "Main.hpp" #include "Main.hpp"
#include "LocalPlayer.hpp" #include "LocalPlayer.hpp"
#include "DedicatedPlayer.hpp" #include "DedicatedPlayer.hpp"
#include "PlayerList.hpp"
#include "CellController.hpp" #include "CellController.hpp"
using namespace mwmp; using namespace mwmp;

View file

@ -0,0 +1,217 @@
#include <components/openmw-mp/Log.hpp>
#include "../mwbase/environment.hpp"
#include "../mwclass/npc.hpp"
#include "../mwmechanics/creaturestats.hpp"
#include "../mwworld/cellstore.hpp"
#include "../mwworld/player.hpp"
#include "../mwworld/worldimp.hpp"
#include "PlayerList.hpp"
#include "Main.hpp"
#include "DedicatedPlayer.hpp"
#include "CellController.hpp"
#include "GUIController.hpp"
using namespace mwmp;
using namespace std;
std::map<RakNet::RakNetGUID, DedicatedPlayer *> PlayerList::players;
void PlayerList::update(float dt)
{
for (std::map <RakNet::RakNetGUID, DedicatedPlayer *>::iterator it = players.begin(); it != players.end(); it++)
{
DedicatedPlayer *player = it->second;
if (player == 0) continue;
player->update(dt);
}
}
void PlayerList::createPlayer(RakNet::RakNetGUID guid)
{
LOG_APPEND(Log::LOG_INFO, "- Setting up character info");
MWBase::World *world = MWBase::Environment::get().getWorld();
DedicatedPlayer *dedicPlayer = players[guid];
ESM::Creature creature;
ESM::NPC npc;
if (!dedicPlayer->creatureModel.empty())
{
const ESM::Creature *tmpCreature = world->getStore().get<ESM::Creature>().search(dedicPlayer->creatureModel);
if(tmpCreature == 0)
{
dedicPlayer->creatureModel = "";
createPlayer(guid);
return;
}
creature = *tmpCreature;
creature.mScript = "";
if(!dedicPlayer->useCreatureName)
creature.mName = dedicPlayer->npc.mName;
}
else
{
MWWorld::Ptr player = world->getPlayerPtr();
npc = *player.get<ESM::NPC>()->mBase;
// To avoid freezes caused by invalid races, only set race if we find it
// on our client
if (world->getStore().get<ESM::Race>().search(dedicPlayer->npc.mRace) != 0)
npc.mRace = dedicPlayer->npc.mRace;
npc.mHead = dedicPlayer->npc.mHead;
npc.mHair = dedicPlayer->npc.mHair;
npc.mClass = dedicPlayer->npc.mClass;
npc.mName = dedicPlayer->npc.mName;
npc.mFlags = dedicPlayer->npc.mFlags;
}
if (dedicPlayer->state == 0)
{
string recid;
if (dedicPlayer->creatureModel.empty())
{
npc.mId = "Dedicated Player";
recid = world->createRecord(npc)->mId;
}
else
{
creature.mId = "Dedicated Player";
recid = world->createRecord(creature)->mId;
}
dedicPlayer->reference = new MWWorld::ManualRef(world->getStore(), recid, 1);
}
// Temporarily spawn or move player to the center of exterior 0,0 whenever setting base info
ESM::Position spawnPos;
spawnPos.pos[0] = spawnPos.pos[1] = Main::get().getCellController()->getCellSize() / 2;
spawnPos.pos[2] = 0;
MWWorld::CellStore *cellStore = world->getExterior(0, 0);
if (dedicPlayer->state == 0)
{
LOG_APPEND(Log::LOG_INFO, "- Creating new reference pointer for %s", dedicPlayer->npc.mName.c_str());
MWWorld::Ptr tmp = world->placeObject(dedicPlayer->reference->getPtr(), cellStore, spawnPos);
dedicPlayer->ptr.mCell = tmp.mCell;
dedicPlayer->ptr.mRef = tmp.mRef;
dedicPlayer->cell = *dedicPlayer->ptr.getCell()->getCell();
dedicPlayer->position = dedicPlayer->ptr.getRefData().getPosition();
}
else
{
LOG_APPEND(Log::LOG_INFO, "- Updating reference pointer for %s", dedicPlayer->npc.mName.c_str());
MWWorld::ESMStore *store = const_cast<MWWorld::ESMStore *>(&world->getStore());
if (!dedicPlayer->creatureModel.empty())
{
creature.mId = players[guid]->ptr.get<ESM::Creature>()->mBase->mId;
MWWorld::Store<ESM::Creature> *esm_store = const_cast<MWWorld::Store<ESM::Creature> *> (&store->get<ESM::Creature>());
esm_store->insert(creature);
}
else
{
npc.mId = players[guid]->ptr.get<ESM::NPC>()->mBase->mId;
MWWorld::Store<ESM::NPC> *esm_store = const_cast<MWWorld::Store<ESM::NPC> *> (&store->get<ESM::NPC>());
esm_store->insert(npc);
}
// Disable Ptr to avoid graphical glitches caused by race changes
world->disable(players[guid]->ptr);
dedicPlayer->setPtr(world->moveObject(dedicPlayer->ptr, cellStore, spawnPos.pos[0], spawnPos.pos[1], spawnPos.pos[2]));
dedicPlayer->updateCell();
ESM::CustomMarker mEditingMarker = Main::get().getGUIController()->CreateMarker(guid);
dedicPlayer->marker = mEditingMarker;
dedicPlayer->setMarkerState(true);
}
dedicPlayer->guid = guid;
dedicPlayer->state = 2;
// Give this new character a fatigue of at least 1 so it doesn't spawn
// on the ground
dedicPlayer->creatureStats.mDynamic[2].mBase = 1;
world->enable(players[guid]->ptr);
}
DedicatedPlayer *PlayerList::newPlayer(RakNet::RakNetGUID guid)
{
LOG_APPEND(Log::LOG_INFO, "- Creating new DedicatedPlayer with guid %lu", guid.g);
players[guid] = new DedicatedPlayer(guid);
players[guid]->state = 0;
return players[guid];
}
void PlayerList::disconnectPlayer(RakNet::RakNetGUID guid)
{
if (players[guid]->state > 1)
{
players[guid]->state = 1;
// Remove player's marker
players[guid]->setMarkerState(false);
MWBase::World *world = MWBase::Environment::get().getWorld();
world->disable(players[guid]->getPtr());
// Move player to exterior 0,0
ESM::Position newPos;
newPos.pos[0] = newPos.pos[1] = Main::get().getCellController()->getCellSize() / 2;
newPos.pos[2] = 0;
MWWorld::CellStore *cellStore = world->getExterior(0, 0);
world->moveObject(players[guid]->getPtr(), cellStore, newPos.pos[0], newPos.pos[1], newPos.pos[2]);
}
}
void PlayerList::cleanUp()
{
for (std::map <RakNet::RakNetGUID, DedicatedPlayer *>::iterator it = players.begin(); it != players.end(); it++)
delete it->second;
}
DedicatedPlayer *PlayerList::getPlayer(RakNet::RakNetGUID guid)
{
return players[guid];
}
DedicatedPlayer *PlayerList::getPlayer(const MWWorld::Ptr &ptr)
{
std::map <RakNet::RakNetGUID, DedicatedPlayer *>::iterator it = players.begin();
for (; it != players.end(); it++)
{
if (it->second == 0 || it->second->getPtr().mRef == 0)
continue;
string refid = ptr.getCellRef().getRefId();
if (it->second->getPtr().getCellRef().getRefId() == refid)
return it->second;
}
return 0;
}
bool PlayerList::isDedicatedPlayer(const MWWorld::Ptr &ptr)
{
if (ptr.mRef == NULL)
return false;
return (getPlayer(ptr) != 0);
}

View file

@ -0,0 +1,47 @@
#ifndef OPENMW_PLAYERLIST_HPP
#define OPENMW_PLAYERLIST_HPP
#include <components/esm/custommarkerstate.hpp>
#include <components/esm/loadnpc.hpp>
#include <components/openmw-mp/Base/BasePlayer.hpp>
#include "../mwmechanics/aisequence.hpp"
#include "../mwworld/manualref.hpp"
#include <map>
#include <RakNetTypes.h>
namespace MWMechanics
{
class Actor;
}
namespace mwmp
{
struct DedicatedPlayer;
class PlayerList
{
public:
static void update(float dt);
static void createPlayer(RakNet::RakNetGUID guid);
static DedicatedPlayer *newPlayer(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 bool isDedicatedPlayer(const MWWorld::Ptr &ptr);
private:
static std::map<RakNet::RakNetGUID, DedicatedPlayer *> players;
};
}
#endif //OPENMW_PLAYERLIST_HPP

View file

@ -5,8 +5,6 @@
#include <boost/foreach.hpp> #include <boost/foreach.hpp>
#include "Networking.hpp" #include "Networking.hpp"
#include "PlayerProcessor.hpp" #include "PlayerProcessor.hpp"
#include "DedicatedPlayer.hpp"
#include "LocalPlayer.hpp"
#include "Main.hpp" #include "Main.hpp"
using namespace mwmp; using namespace mwmp;

View file

@ -13,6 +13,7 @@
#include <components/openmw-mp/Packets/Player/PlayerPacket.hpp> #include <components/openmw-mp/Packets/Player/PlayerPacket.hpp>
#include "LocalPlayer.hpp" #include "LocalPlayer.hpp"
#include "DedicatedPlayer.hpp" #include "DedicatedPlayer.hpp"
#include "PlayerList.hpp"
#include "BaseClientPacketProcessor.hpp" #include "BaseClientPacketProcessor.hpp"
namespace mwmp namespace mwmp

View file

@ -13,7 +13,7 @@
Include additional headers for multiplayer purposes Include additional headers for multiplayer purposes
*/ */
#include "../mwmp/DedicatedPlayer.hpp" #include "../mwmp/PlayerList.hpp"
/* /*
End of tes3mp addition End of tes3mp addition
*/ */

View file

@ -13,6 +13,7 @@
#include <components/openmw-mp/Log.hpp> #include <components/openmw-mp/Log.hpp>
#include "../mwmp/Main.hpp" #include "../mwmp/Main.hpp"
#include "../mwmp/Networking.hpp" #include "../mwmp/Networking.hpp"
#include "../mwmp/PlayerList.hpp"
#include "../mwmp/DedicatedPlayer.hpp" #include "../mwmp/DedicatedPlayer.hpp"
#include "../mwmp/LocalActor.hpp" #include "../mwmp/LocalActor.hpp"
#include "../mwmp/DedicatedActor.hpp" #include "../mwmp/DedicatedActor.hpp"