mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-03-29 16:06:44 +00:00
Fix Windows server crash caused by printing event->CellRef()->mRefID
This commit is contained in:
parent
8080cceac6
commit
92463c4a03
6 changed files with 18 additions and 24 deletions
|
@ -370,6 +370,7 @@ void Networking::ProcessWorldPacket(RakNet::Packet *packet)
|
||||||
|
|
||||||
WorldPacket *myPacket = worldController->GetPacket(packet->data[0]);
|
WorldPacket *myPacket = worldController->GetPacket(packet->data[0]);
|
||||||
WorldEvent *event = new WorldEvent(player->guid);
|
WorldEvent *event = new WorldEvent(player->guid);
|
||||||
|
event->cellRef.blank();
|
||||||
|
|
||||||
switch (packet->data[0])
|
switch (packet->data[0])
|
||||||
{
|
{
|
||||||
|
@ -392,9 +393,8 @@ void Networking::ProcessWorldPacket(RakNet::Packet *packet)
|
||||||
|
|
||||||
myPacket->Read(event);
|
myPacket->Read(event);
|
||||||
|
|
||||||
LOG_APPEND(Log::LOG_WARN, "- %s", event->CellRef()->mRefID.c_str());
|
LOG_APPEND(Log::LOG_WARN, "- %s", event->cellRef.mRefID.c_str());
|
||||||
|
LOG_APPEND(Log::LOG_WARN, "- %i", event->cellRef.mRefNum);
|
||||||
LOG_APPEND(Log::LOG_WARN, "- %i", event->CellRef()->mRefNum);
|
|
||||||
|
|
||||||
myPacket->Send(event, true);
|
myPacket->Send(event, true);
|
||||||
|
|
||||||
|
|
|
@ -639,9 +639,9 @@ void Networking::ProcessWorldPacket(RakNet::Packet *packet)
|
||||||
{
|
{
|
||||||
case ID_WORLD_OBJECT_CREATION:
|
case ID_WORLD_OBJECT_CREATION:
|
||||||
{
|
{
|
||||||
MWWorld::ManualRef ref(MWBase::Environment::get().getWorld()->getStore(), event->CellRef()->mRefID, 1);
|
MWWorld::ManualRef ref(MWBase::Environment::get().getWorld()->getStore(), event->cellRef.mRefID, 1);
|
||||||
|
|
||||||
MWBase::Environment::get().getWorld()->placeObject(ref.getPtr(), ptrCellStore, event->CellRef()->mPos);
|
MWBase::Environment::get().getWorld()->placeObject(ref.getPtr(), ptrCellStore, event->cellRef.mPos);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -651,10 +651,10 @@ void Networking::ProcessWorldPacket(RakNet::Packet *packet)
|
||||||
|
|
||||||
LOG_MESSAGE_SIMPLE(Log::LOG_WARN, "%s", "Received ID_WORLD_OBJECT_REMOVAL");
|
LOG_MESSAGE_SIMPLE(Log::LOG_WARN, "%s", "Received ID_WORLD_OBJECT_REMOVAL");
|
||||||
LOG_APPEND(Log::LOG_WARN, "- cellRefId: %s, %i",
|
LOG_APPEND(Log::LOG_WARN, "- cellRefId: %s, %i",
|
||||||
event->CellRef()->mRefID.c_str(),
|
event->cellRef.mRefID.c_str(),
|
||||||
event->CellRef()->mRefNum);
|
event->cellRef.mRefNum);
|
||||||
|
|
||||||
//MWWorld::Ptr object = ptrCellStore->search(event->CellRef()->mRefID);
|
//MWWorld::Ptr object = ptrCellStore->search(event->cellRef.mRefID);
|
||||||
//MWBase::Environment::get().getWorld()->deleteObject(object);
|
//MWBase::Environment::get().getWorld()->deleteObject(object);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1108,15 +1108,16 @@ namespace MWWorld
|
||||||
{
|
{
|
||||||
// Added by tes3mp
|
// Added by tes3mp
|
||||||
mwmp::WorldEvent *event = mwmp::Main::get().getNetworking()->createWorldEvent();
|
mwmp::WorldEvent *event = mwmp::Main::get().getNetworking()->createWorldEvent();
|
||||||
|
event->cellRef.blank();
|
||||||
|
|
||||||
event->CellRef()->mRefID = ptr.getCellRef().getRefId();
|
event->cellRef.mRefID = ptr.getCellRef().getRefId();
|
||||||
event->CellRef()->mRefNum = ptr.getCellRef().getRefNum();
|
event->cellRef.mRefNum = ptr.getCellRef().getRefNum();
|
||||||
mwmp::Main::get().getNetworking()->GetWorldPacket(ID_WORLD_OBJECT_REMOVAL)->Send(event);
|
mwmp::Main::get().getNetworking()->GetWorldPacket(ID_WORLD_OBJECT_REMOVAL)->Send(event);
|
||||||
|
|
||||||
printf("Sending ID_WORLD_OBJECT_REMOVAL about\n%s\n%s\n%i\n",
|
printf("Sending ID_WORLD_OBJECT_REMOVAL about\n%s\n%s\n%i\n",
|
||||||
ptr.getCellRef().getRefId().c_str(),
|
ptr.getCellRef().getRefId().c_str(),
|
||||||
event->CellRef()->mRefID.c_str(),
|
event->cellRef.mRefID.c_str(),
|
||||||
event->CellRef()->mRefNum);
|
event->cellRef.mRefNum);
|
||||||
|
|
||||||
mWorldScene->removeObjectFromScene (ptr);
|
mWorldScene->removeObjectFromScene (ptr);
|
||||||
mLocalScripts.remove (ptr);
|
mLocalScripts.remove (ptr);
|
||||||
|
|
|
@ -20,17 +20,8 @@ namespace mwmp
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ESM::CellRef *CellRef()
|
|
||||||
{
|
|
||||||
return &ref;
|
|
||||||
}
|
|
||||||
|
|
||||||
RakNet::RakNetGUID guid;
|
RakNet::RakNetGUID guid;
|
||||||
|
ESM::CellRef cellRef;
|
||||||
protected:
|
|
||||||
|
|
||||||
ESM::CellRef ref;
|
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,5 +12,6 @@ void PacketObjectCreation::Packet(RakNet::BitStream *bs, WorldEvent *event, bool
|
||||||
{
|
{
|
||||||
WorldPacket::Packet(bs, event, send);
|
WorldPacket::Packet(bs, event, send);
|
||||||
|
|
||||||
RW(*event->CellRef(), send);
|
RW(event->cellRef.mRefID, send);
|
||||||
|
RW(event->cellRef.mRefNum, send);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,5 +12,6 @@ void PacketObjectRemoval::Packet(RakNet::BitStream *bs, WorldEvent *event, bool
|
||||||
{
|
{
|
||||||
WorldPacket::Packet(bs, event, send);
|
WorldPacket::Packet(bs, event, send);
|
||||||
|
|
||||||
RW(*event->CellRef(), send);
|
RW(event->cellRef.mRefID, send);
|
||||||
|
RW(event->cellRef.mRefNum, send);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue