private unsafe void CompanionEnableDrawDetour(Companion *thisPtr) { if (_config.Enabled && _config.HideMinion && thisPtr->Character.CompanionOwnerID != LocalPlayer->Character.GameObject.ObjectID) { _minions[ContainerType.All].Add(thisPtr->Character.CompanionOwnerID); if (_players[ContainerType.Friend].Contains(thisPtr->Character.CompanionOwnerID)) { _minions[ContainerType.Friend].Add(thisPtr->Character.CompanionOwnerID); } if (_players[ContainerType.Party].Contains(thisPtr->Character.CompanionOwnerID)) { _minions[ContainerType.Party].Add(thisPtr->Character.CompanionOwnerID); } if (_players[ContainerType.Company].Contains(thisPtr->Character.CompanionOwnerID)) { _minions[ContainerType.Company].Add(thisPtr->Character.CompanionOwnerID); } if ((_config.ShowFriendMinion && _players[ContainerType.Friend].Contains(thisPtr->Character.CompanionOwnerID)) || (_config.ShowCompanyMinion && _players[ContainerType.Company].Contains(thisPtr->Character.CompanionOwnerID)) || (_config.ShowPartyMinion && _players[ContainerType.Party].Contains(thisPtr->Character.CompanionOwnerID))) { } else { thisPtr->Character.GameObject.RenderFlags |= (int)VisibilityFlags.Invisible; HiddenMinionObjectIds.Add(thisPtr->Character.CompanionOwnerID); } } hookCompanionEnableDraw.Original(thisPtr); }
// Companions (MINIONS) have their own enable draw override, while it calls the character one you need to set the flag before it does that for minion hiding properly private unsafe void CompanionEnableDrawDetour(Companion *thisPtr) { hookCompanionEnableDraw.Original(thisPtr); }