Revert "fix(Core/Vehicles): defer accessory init to avoid double install" (#25491)

This commit is contained in:
Andrew 2026-04-17 11:28:33 -03:00 committed by GitHub
parent b40a978938
commit 589784baa0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 8 additions and 14 deletions

View file

@ -713,13 +713,6 @@ void Creature::Update(uint32 diff)
m_vehicleKit->Reset();
}
if (_triggerVehicleKitInit)
{
_triggerVehicleKitInit = false;
if (m_vehicleKit)
m_vehicleKit->Reset();
}
switch (m_deathState)
{
case DeathState::JustRespawned:
@ -1120,10 +1113,9 @@ bool Creature::AIM_Initialize(CreatureAI* ai)
IsAIEnabled = true;
i_AI->InitializeAI();
// Defer vehicle kit init to the next Creature::Update tick so accessories
// install after visibility sync.
if (GetVehicleKit())
_triggerVehicleKitInit = true;
// Xinef: Initialize vehicle if it is not summoned!
if (GetVehicleKit() && m_spawnId)
GetVehicleKit()->Reset();
return true;
}

View file

@ -536,9 +536,6 @@ private:
// Formation variable
CreatureGroup* m_formation;
bool TriggerJustRespawned;
// Deferred vehicle init: set in AIM_Initialize, consumed on the next
// Creature::Update tick so accessories install after visibility sync.
bool _triggerVehicleKitInit = false;
// Shared timer between mobs who assist another.
// Damaging one extends leash range on all of them.

View file

@ -346,6 +346,11 @@ bool Map::AddToMap(T* obj, bool checkTransport)
//also, trigger needs to cast spell, if not update, cannot see visual
obj->UpdateObjectVisibility(true);
// Xinef: little hack for vehicles, accessories have to be added after visibility update so they wont fall off the vehicle, moved from Creature::AIM_Initialize
// Initialize vehicle, this is done only for summoned npcs, DB creatures are handled by grid loaders
if (obj->IsCreature())
if (Vehicle* vehicle = obj->ToCreature()->GetVehicleKit())
vehicle->Reset();
return true;
}