[Client] Fix crashes in PlayerProcessors from NULL players

Also rename ProcessorPlayerDrawState into ProcessorPlayerAnimFlags
0.6.1
David Cernat 8 years ago
parent dba0d47973
commit e70faf1016

@ -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…
Cancel
Save