fix(interaction): restore retail loot placement and world-drop projection
This commit is contained in:
parent
4d095be286
commit
921712f412
24 changed files with 1581 additions and 34 deletions
|
|
@ -261,7 +261,19 @@ internal sealed class WorldSelectionQuery
|
|||
|
||||
public VividTargetInfo? ResolveVividTargetInfo(uint serverGuid)
|
||||
{
|
||||
if (!_liveEntities.TryGetWorldEntity(serverGuid, out _)
|
||||
uint playerGuid = _playerGuid();
|
||||
ClientObject? target = _objects.Get(serverGuid);
|
||||
|
||||
// VividTargetIndicator::SetSelected @ 0x004F5CE0 deliberately keeps
|
||||
// ACCWeenieObject::selectedID intact while suppressing its own marker
|
||||
// for self, player-owned objects, and objects whose current state is
|
||||
// IN_CONTAINER. ContainerId is our authoritative placement projection
|
||||
// for that retail state.
|
||||
if (serverGuid == playerGuid
|
||||
|| target is null
|
||||
|| _objects.IsOwnedByObject(serverGuid, playerGuid)
|
||||
|| target.ContainerId != 0u
|
||||
|| !_liveEntities.TryGetSpatiallyProjectedRecord(serverGuid, out _)
|
||||
|| !TryGetSelectionSphere(serverGuid, out Vector3 center, out float radius))
|
||||
{
|
||||
return null;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue