forked from mirror/openmw-tes3mp
[Client] Fix crashes in PlayerProcessors from NULL players
Also rename ProcessorPlayerDrawState into ProcessorPlayerAnimFlags
This commit is contained in:
parent
dba0d47973
commit
e70faf1016
15 changed files with 23 additions and 21 deletions
|
@ -107,7 +107,7 @@ add_openmw_dir (mwmp\\processors\\actor ProcessorActorAnimFlags ProcessorActorAn
|
|||
|
||||
add_openmw_dir (mwmp\\processors\\player ProcessorChatMessage ProcessorGameConsole ProcessorGameTime ProcessorGUIMessageBox
|
||||
ProcessorHandshake ProcessorPlayerAttack ProcessorPlayerAttribute ProcessorPlayerBaseInfo ProcessorPlayerCellChange
|
||||
ProcessorPlayerCellState ProcessorPlayerCharClass ProcessorPlayerCharGen ProcessorPlayerDeath ProcessorPlayerDrawState
|
||||
ProcessorPlayerCellState ProcessorPlayerCharClass ProcessorPlayerCharGen ProcessorPlayerDeath ProcessorPlayerAnimFlags
|
||||
ProcessorPlayerDynamicStats ProcessorPlayerEquipment ProcessorPlayerInventory ProcessorPlayerJournal
|
||||
ProcessorPlayerLevel ProcessorPlayerPos ProcessorPlayerResurrect ProcessorPlayerSkill ProcessorPlayerSpellbook
|
||||
ProcessorUserDisconnected ProcessorUserMyID
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
#include "processors/player/ProcessorPlayerDynamicStats.hpp"
|
||||
#include "processors/player/ProcessorPlayerDeath.hpp"
|
||||
#include "processors/player/ProcessorPlayerResurrect.hpp"
|
||||
#include "processors/player/ProcessorPlayerDrawState.hpp"
|
||||
#include "processors/player/ProcessorPlayerAnimFlags.hpp"
|
||||
#include "processors/player/ProcessorChatMessage.hpp"
|
||||
#include "processors/player/ProcessorPlayerCharGen.hpp"
|
||||
#include "processors/player/ProcessorGUIMessageBox.hpp"
|
||||
|
@ -76,7 +76,7 @@ void ProcessorInitializer()
|
|||
PlayerProcessor::AddProcessor(new ProcessorPlayerDynamicStats());
|
||||
PlayerProcessor::AddProcessor(new ProcessorPlayerDeath());
|
||||
PlayerProcessor::AddProcessor(new ProcessorPlayerResurrect());
|
||||
PlayerProcessor::AddProcessor(new ProcessorPlayerDrawState());
|
||||
PlayerProcessor::AddProcessor(new ProcessorPlayerAnimFlags());
|
||||
PlayerProcessor::AddProcessor(new ProcessorChatMessage());
|
||||
PlayerProcessor::AddProcessor(new ProcessorPlayerCharGen());
|
||||
PlayerProcessor::AddProcessor(new ProcessorGUIMessageBox());
|
||||
|
|
|
@ -22,7 +22,8 @@ namespace mwmp
|
|||
|
||||
virtual void Do(PlayerPacket &packet, BasePlayer *player)
|
||||
{
|
||||
Main::get().getGUIController()->printChatMessage(player->chatMessage);
|
||||
if (player != 0)
|
||||
Main::get().getGUIController()->printChatMessage(player->chatMessage);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -2,18 +2,18 @@
|
|||
// Created by koncord on 16.04.17.
|
||||
//
|
||||
|
||||
#ifndef OPENMW_PROCESSORPLAYERDRAWSTATE_HPP
|
||||
#define OPENMW_PROCESSORPLAYERDRAWSTATE_HPP
|
||||
#ifndef OPENMW_PROCESSORPLAYERANIMFLAGS_HPP
|
||||
#define OPENMW_PROCESSORPLAYERANIMFLAGS_HPP
|
||||
|
||||
|
||||
#include "apps/openmw/mwmp/PlayerProcessor.hpp"
|
||||
|
||||
namespace mwmp
|
||||
{
|
||||
class ProcessorPlayerDrawState : public PlayerProcessor
|
||||
class ProcessorPlayerAnimFlags : public PlayerProcessor
|
||||
{
|
||||
public:
|
||||
ProcessorPlayerDrawState()
|
||||
ProcessorPlayerAnimFlags()
|
||||
{
|
||||
BPP_INIT(ID_PLAYER_ANIM_FLAGS)
|
||||
}
|
||||
|
@ -25,11 +25,11 @@ namespace mwmp
|
|||
if(isRequest())
|
||||
static_cast<LocalPlayer *>(player)->updateAnimFlags(true);
|
||||
}
|
||||
else
|
||||
else if (player != 0)
|
||||
static_cast<DedicatedPlayer *>(player)->updateAnimFlags();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
#endif //OPENMW_PROCESSORPLAYERDRAWSTATE_HPP
|
||||
#endif //OPENMW_PROCESSORPLAYERANIMFLAGS_HPP
|
|
@ -27,7 +27,8 @@ namespace mwmp
|
|||
|
||||
virtual void Do(PlayerPacket &packet, BasePlayer *player)
|
||||
{
|
||||
Main::get().getMechanicsHelper()->processAttack(player->attack, static_cast<DedicatedPlayer*>(player)->getPtr());
|
||||
if (player != 0)
|
||||
Main::get().getMechanicsHelper()->processAttack(player->attack, static_cast<DedicatedPlayer*>(player)->getPtr());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
@ -29,7 +29,7 @@ namespace mwmp
|
|||
else
|
||||
static_cast<LocalPlayer *>(player)->setAttributes();
|
||||
}
|
||||
else
|
||||
else if (player != 0)
|
||||
{
|
||||
MWWorld::Ptr ptrPlayer = static_cast<DedicatedPlayer *>(player)->getPtr();
|
||||
MWMechanics::CreatureStats *ptrCreatureStats = &ptrPlayer.getClass().getCreatureStats(ptrPlayer);
|
||||
|
|
|
@ -27,7 +27,7 @@ namespace mwmp
|
|||
else
|
||||
static_cast<LocalPlayer *>(player)->setCell();
|
||||
}
|
||||
else
|
||||
else if (player != 0)
|
||||
static_cast<DedicatedPlayer*>(player)->updateCell();
|
||||
}
|
||||
};
|
||||
|
|
|
@ -33,7 +33,7 @@ namespace mwmp
|
|||
packet.setPlayer(player);
|
||||
packet.Send(serverAddr);
|
||||
}
|
||||
else
|
||||
else if (player != 0)
|
||||
{
|
||||
LOG_APPEND(Log::LOG_INFO, "- Packet was about %s", player->npc.mName.c_str());
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ namespace mwmp
|
|||
else
|
||||
static_cast<LocalPlayer *>(player)->setDynamicStats();
|
||||
}
|
||||
else
|
||||
else if (player != 0)
|
||||
{
|
||||
MWWorld::Ptr ptrPlayer = static_cast<DedicatedPlayer*>(player)->getPtr();
|
||||
MWMechanics::CreatureStats *ptrCreatureStats = &ptrPlayer.getClass().getCreatureStats(ptrPlayer);
|
||||
|
|
|
@ -27,7 +27,7 @@ namespace mwmp
|
|||
else
|
||||
static_cast<LocalPlayer*>(player)->setEquipment();
|
||||
}
|
||||
else
|
||||
else if (player != 0)
|
||||
static_cast<DedicatedPlayer*>(player)->updateEquipment();
|
||||
}
|
||||
};
|
||||
|
|
|
@ -27,7 +27,7 @@ namespace mwmp
|
|||
else
|
||||
static_cast<LocalPlayer *>(player)->setLevel();
|
||||
}
|
||||
else
|
||||
else if (player != 0)
|
||||
{
|
||||
MWWorld::Ptr ptrPlayer = static_cast<DedicatedPlayer *>(player)->getPtr();
|
||||
MWMechanics::CreatureStats *ptrCreatureStats = &ptrPlayer.getClass().getCreatureStats(ptrPlayer);
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace mwmp
|
|||
else
|
||||
static_cast<LocalPlayer*>(player)->updatePosition(true);
|
||||
}
|
||||
else // dedicated player
|
||||
else if (player != 0) // dedicated player
|
||||
static_cast<DedicatedPlayer*>(player)->updateMarker();
|
||||
}
|
||||
};
|
||||
|
|
|
@ -43,7 +43,7 @@ namespace mwmp
|
|||
Main::get().getNetworking()->getPlayerPacket(ID_PLAYER_STATS_DYNAMIC)->setPlayer(player);
|
||||
Main::get().getNetworking()->getPlayerPacket(ID_PLAYER_STATS_DYNAMIC)->Send(serverAddr);
|
||||
}
|
||||
else
|
||||
else if (player != 0)
|
||||
{
|
||||
LOG_APPEND(Log::LOG_INFO, "- Packet was about %s", player->npc.mName.c_str());
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ namespace mwmp
|
|||
else
|
||||
static_cast<LocalPlayer *>(player)->setSkills();
|
||||
}
|
||||
else
|
||||
else if (player != 0)
|
||||
{
|
||||
MWWorld::Ptr ptrPlayer = static_cast<DedicatedPlayer *>(player)->getPtr();
|
||||
MWMechanics::NpcStats *ptrNpcStats = &ptrPlayer.getClass().getNpcStats(ptrPlayer);
|
||||
|
|
|
@ -24,7 +24,7 @@ namespace mwmp
|
|||
{
|
||||
if (isLocal())
|
||||
MWBase::Environment::get().getStateManager()->requestQuit();
|
||||
else
|
||||
else if (player != 0)
|
||||
PlayerList::disconnectPlayer(guid);
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue