private static unsafe List <PerkAction> GetPerkActions() { List <PerkAction> perks = new List <PerkAction>(); IntPtr pEngine = N3Engine_t.GetInstance(); if (pEngine == IntPtr.Zero) { return(perks); } foreach (IntPtr pAction in N3EngineClientAnarchy_t.GetSpecialActionList(pEngine)->ToList()) { SpecialActionMemStruct specialAction = *(SpecialActionMemStruct *)pAction; if (specialAction.Identity.Type != IdentityType.PerkHash) { continue; } perks.Add(new PerkAction(specialAction.TemplateIdentity, specialAction.Identity.Instance)); } return(perks.OrderBy(perk => perk.Identity.Instance).ToList()); }