//static public string[] ListFGamerTags = new string[32]; //static public string[] ListFSXuid = new string[8]; //static public ulong[] ListFLXuid = new ulong[8]; //static public IEnumerable<Friend> EnumerateFriends(XDevkit.IXboxConsole xbc, UserIndex userIndex) //static public void GetMyFriends(XDevkit.IXboxConsole xbc, UserIndex userIndex) //{ // uint friendIndex = 0; // while (true) // { // XONLINE_FRIEND iteratorVariable0; // if (GetNextFriend(xbc, userIndex, friendIndex, out iteratorVariable0) != 0) // { // yield break; // } // FriendRequestStatus requestAccepted = FriendRequestStatus.RequestAccepted; // if ((iteratorVariable0.dwFriendState & 0x40000000) > 0) // { // requestAccepted = FriendRequestStatus.RequestSent; // } // else if ((iteratorVariable0.dwFriendState & 0x80000000) > 0) // { // requestAccepted = FriendRequestStatus.RequestReceived; // } // FriendStatus offline = FriendStatus.Offline; // if ((iteratorVariable0.dwFriendState & 1) > 0) // { // offline = ((FriendStatus)iteratorVariable0.dwFriendState) & ((FriendStatus)0xf0000); // } // //Friend iteratorVariable4 = new Friend(iteratorVariable0.szGamertag, iteratorVariable0.xuid, requestAccepted, offline, iteratorVariable0.wszRichPresence, iteratorVariable0.dwTitleID); // //yield return iteratorVariable4; // friendIndex++; // } //} static private uint GetNextFriend(XDevkit.IXboxConsole xbc, UserIndex userIndex, uint friendIndex, out XONLINE_FRIEND friend) { uint num2; //try //{ friend = new XONLINE_FRIEND(); XDRPCExecutionOptions options = new XDRPCExecutionOptions(XDRPCMode.Title, "xam.xex", 0x4ea); XDRPCArgumentInfo <uint> info = new XDRPCArgumentInfo <uint>((uint)userIndex); XDRPCArgumentInfo <uint> info2 = new XDRPCArgumentInfo <uint>(friendIndex); XDRPCArgumentInfo <uint> info3 = new XDRPCArgumentInfo <uint>(1); XDRPCArgumentInfo <uint> info4 = new XDRPCArgumentInfo <uint>(0, ArgumentType.Out); XDRPCArgumentInfo <uint> info5 = new XDRPCArgumentInfo <uint>(0, ArgumentType.Out); uint num = ((XDevkit.IXboxConsole)xbc).ExecuteRPC <uint>(options, new XDRPCArgumentInfo[] { info, info2, info3, info4, info5 }); if (num == 0) { options = new XDRPCExecutionOptions(XDRPCMode.Title, "xam.xex", 0x250); info5 = new XDRPCArgumentInfo <uint>(info5.Value); XDRPCArgumentInfo <uint> info6 = new XDRPCArgumentInfo <uint>(0); XDRPCStructArgumentInfo <XONLINE_FRIEND> info7 = new XDRPCStructArgumentInfo <XONLINE_FRIEND>(new XONLINE_FRIEND(), ArgumentType.Out); info4 = new XDRPCArgumentInfo <uint>(info4.Value); XDRPCArgumentInfo <uint> info8 = new XDRPCArgumentInfo <uint>(0, ArgumentType.Out); XDRPCNullArgumentInfo info9 = new XDRPCNullArgumentInfo(); num = ((XDevkit.IXboxConsole)xbc).ExecuteRPC <uint>(options, new XDRPCArgumentInfo[] { info5, info6, info7, info4, info8, info9 }); friend = info7.Value; options = new XDRPCExecutionOptions(XDRPCMode.Title, "xam.xex", 0x414); ((XDevkit.IXboxConsole)xbc).ExecuteRPC <bool>(options, new XDRPCArgumentInfo[] { info5 }); } num2 = num; //} //catch (XDRPCException exception) //{ // //throw new ProfilesException(exception); //} return(num2); }
//static public string[] ListFGamerTags = new string[32]; //static public string[] ListFSXuid = new string[8]; //static public ulong[] ListFLXuid = new ulong[8]; //static public IEnumerable<Friend> EnumerateFriends(XDevkit.IXboxConsole xbc, UserIndex userIndex) //static public void GetMyFriends(XDevkit.IXboxConsole xbc, UserIndex userIndex) //{ // uint friendIndex = 0; // while (true) // { // XONLINE_FRIEND iteratorVariable0; // if (GetNextFriend(xbc, userIndex, friendIndex, out iteratorVariable0) != 0) // { // yield break; // } // FriendRequestStatus requestAccepted = FriendRequestStatus.RequestAccepted; // if ((iteratorVariable0.dwFriendState & 0x40000000) > 0) // { // requestAccepted = FriendRequestStatus.RequestSent; // } // else if ((iteratorVariable0.dwFriendState & 0x80000000) > 0) // { // requestAccepted = FriendRequestStatus.RequestReceived; // } // FriendStatus offline = FriendStatus.Offline; // if ((iteratorVariable0.dwFriendState & 1) > 0) // { // offline = ((FriendStatus)iteratorVariable0.dwFriendState) & ((FriendStatus)0xf0000); // } // //Friend iteratorVariable4 = new Friend(iteratorVariable0.szGamertag, iteratorVariable0.xuid, requestAccepted, offline, iteratorVariable0.wszRichPresence, iteratorVariable0.dwTitleID); // //yield return iteratorVariable4; // friendIndex++; // } //} private static uint GetNextFriend(XDevkit.IXboxConsole xbc, UserIndex userIndex, uint friendIndex, out XONLINE_FRIEND friend) { uint num2; //try //{ friend = new XONLINE_FRIEND(); XDRPCExecutionOptions options = new XDRPCExecutionOptions(XDRPCMode.Title, "xam.xex", 0x4ea); XDRPCArgumentInfo<uint> info = new XDRPCArgumentInfo<uint>((uint)userIndex); XDRPCArgumentInfo<uint> info2 = new XDRPCArgumentInfo<uint>(friendIndex); XDRPCArgumentInfo<uint> info3 = new XDRPCArgumentInfo<uint>(1); XDRPCArgumentInfo<uint> info4 = new XDRPCArgumentInfo<uint>(0, ArgumentType.Out); XDRPCArgumentInfo<uint> info5 = new XDRPCArgumentInfo<uint>(0, ArgumentType.Out); uint num = ((XDevkit.IXboxConsole)xbc).ExecuteRPC<uint>(options, new XDRPCArgumentInfo[] { info, info2, info3, info4, info5 }); if (num == 0) { options = new XDRPCExecutionOptions(XDRPCMode.Title, "xam.xex", 0x250); info5 = new XDRPCArgumentInfo<uint>(info5.Value); XDRPCArgumentInfo<uint> info6 = new XDRPCArgumentInfo<uint>(0); XDRPCStructArgumentInfo<XONLINE_FRIEND> info7 = new XDRPCStructArgumentInfo<XONLINE_FRIEND>(new XONLINE_FRIEND(), ArgumentType.Out); info4 = new XDRPCArgumentInfo<uint>(info4.Value); XDRPCArgumentInfo<uint> info8 = new XDRPCArgumentInfo<uint>(0, ArgumentType.Out); XDRPCNullArgumentInfo info9 = new XDRPCNullArgumentInfo(); num = ((XDevkit.IXboxConsole)xbc).ExecuteRPC<uint>(options, new XDRPCArgumentInfo[] { info5, info6, info7, info4, info8, info9 }); friend = info7.Value; options = new XDRPCExecutionOptions(XDRPCMode.Title, "xam.xex", 0x414); ((XDevkit.IXboxConsole)xbc).ExecuteRPC<bool>(options, new XDRPCArgumentInfo[] { info5 }); } num2 = num; //} //catch (XDRPCException exception) //{ // //throw new ProfilesException(exception); //} return num2; }