mirror of
https://github.com/EQEmu/Server.git
synced 2026-02-09 10:02:25 +00:00
[Fix] Fix Object Name Init, User Refs, and Client Sync on Close (#4861)
* [Bugfix] Fix uninitialized char* in object.cpp. * [Bugfix] Clear object user and user tradeskill object on reset. * [Bugfix] Send clear object packet on Object::Close()
This commit is contained in:
parent
83cd8119c8
commit
3d607d352c
@ -75,6 +75,8 @@ decay_timer(300000)
|
||||
decay_timer.Disable();
|
||||
}
|
||||
|
||||
memset(m_display_name, 0, sizeof(m_display_name));
|
||||
|
||||
respawn_timer.Disable();
|
||||
|
||||
// Set drop_id to zero - it will be set when added to zone with SetID()
|
||||
@ -122,6 +124,8 @@ decay_timer(300000)
|
||||
// Set as much struct data as we can
|
||||
memset(&m_data, 0, sizeof(Object_Struct));
|
||||
|
||||
memset(m_display_name, 0, sizeof(m_display_name));
|
||||
|
||||
m_data.heading = heading;
|
||||
m_data.z = z;
|
||||
m_data.zone_id = zone->GetZoneID();
|
||||
@ -164,6 +168,8 @@ decay_timer(300000)
|
||||
// Set as much struct data as we can
|
||||
memset(&m_data, 0, sizeof(Object_Struct));
|
||||
|
||||
memset(m_display_name, 0, sizeof(m_display_name));
|
||||
|
||||
m_data.heading = client->GetHeading();
|
||||
m_data.x = client->GetX();
|
||||
m_data.y = client->GetY();
|
||||
@ -236,6 +242,8 @@ decay_timer(decay_time)
|
||||
// Set as much struct data as we can
|
||||
memset(&m_data, 0, sizeof(Object_Struct));
|
||||
|
||||
memset(m_display_name, 0, sizeof(m_display_name));
|
||||
|
||||
m_data.heading = heading;
|
||||
m_data.x = x;
|
||||
m_data.y = y;
|
||||
@ -312,6 +320,8 @@ decay_timer(decay_time)
|
||||
m_data.z = z;
|
||||
m_data.zone_id = zone->GetZoneID();
|
||||
|
||||
memset(m_display_name, 0, sizeof(m_display_name));
|
||||
|
||||
if (!IsFixZEnabled()) {
|
||||
FixZ();
|
||||
}
|
||||
@ -353,6 +363,8 @@ void Object::SetID(uint16 set_id)
|
||||
// Reset state of object back to zero
|
||||
void Object::ResetState()
|
||||
{
|
||||
Close();
|
||||
|
||||
safe_delete(m_inst);
|
||||
|
||||
m_id = 0;
|
||||
@ -440,6 +452,12 @@ void Object::Close() {
|
||||
}
|
||||
}
|
||||
|
||||
auto outapp = new EQApplicationPacket(OP_ClearObject, sizeof(ClearObject_Struct));
|
||||
ClearObject_Struct *cos = (ClearObject_Struct *)outapp->pBuffer;
|
||||
cos->Clear = 1;
|
||||
user->QueuePacket(outapp);
|
||||
safe_delete(outapp);
|
||||
|
||||
user->SetTradeskillObject(nullptr);
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user