public MMKVPMarshaller(MatchMakingKeyValuePair_t[] filters) { if (filters == null) { return; } int num = Marshal.SizeOf(typeof(MatchMakingKeyValuePair_t)); this.m_pNativeArray = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(IntPtr)) * filters.Length); this.m_pArrayEntries = Marshal.AllocHGlobal(num * filters.Length); for (int i = 0; i < filters.Length; i++) { Marshal.StructureToPtr(filters[i], new IntPtr(this.m_pArrayEntries.ToInt64() + (long)(i * num)), false); } Marshal.WriteIntPtr(this.m_pNativeArray, this.m_pArrayEntries); }
public MMKVPMarshaller(MatchMakingKeyValuePair_t[] filters) { if (filters == null) { return; } int sizeOfMMKVP = Marshal.SizeOf(typeof(MatchMakingKeyValuePair_t)); m_pNativeArray = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(IntPtr)) * filters.Length); m_pArrayEntries = Marshal.AllocHGlobal(sizeOfMMKVP * filters.Length); for (int i = 0; i < filters.Length; ++i) { Marshal.StructureToPtr(filters[i], new IntPtr(m_pArrayEntries.ToInt64() + (i * sizeOfMMKVP)), false); } Marshal.WriteIntPtr(m_pNativeArray, m_pArrayEntries); }
public static HServerListRequest RequestSpectatorServerList(AppId_t iApp, MatchMakingKeyValuePair_t[] ppchFilters, uint nFilters, ISteamMatchmakingServerListResponse pRequestServersResponse) { InteropHelp.TestIfAvailableClient(); return (HServerListRequest)NativeMethods.ISteamMatchmakingServers_RequestSpectatorServerList(iApp, new MMKVPMarshaller(ppchFilters), nFilters, (IntPtr)pRequestServersResponse); }
public HServerListRequest RefreshList(EServerList listType, MatchMakingKeyValuePair_t[] filters, ISteamMatchmakingServerListResponse response = null) { ISteamMatchmakingServerListResponse resp = new ISteamMatchmakingServerListResponse(SteamMatchmakingServerListResponse_ServerResponded, SteamMatchmakingServerListResponse_ServerFailedToResponded, (a, b) => { SteamMatchmakingServerListResponse_OnRefreshComplete(a, b, listType); }); if (response != null) resp = response; switch (listType) { case EServerList.Favorites: return SteamMatchmakingServers.RequestFavoritesServerList(SteamUtils.GetAppID(), filters, (uint)filters.Length, resp); case EServerList.Friends: return SteamMatchmakingServers.RequestFriendsServerList(SteamUtils.GetAppID(), filters, (uint)filters.Length, resp); case EServerList.History: return SteamMatchmakingServers.RequestHistoryServerList(SteamUtils.GetAppID(), filters, (uint)filters.Length, resp); case EServerList.Internet: return SteamMatchmakingServers.RequestInternetServerList(SteamUtils.GetAppID(), filters, (uint)filters.Length, resp); case EServerList.LAN: return SteamMatchmakingServers.RequestLANServerList(SteamUtils.GetAppID(), resp); case EServerList.Spectator: return SteamMatchmakingServers.RequestSpectatorServerList(SteamUtils.GetAppID(), filters, (uint)filters.Length, resp); default: throw new System.Exception("\"listType\" must not be unknown."); } }
public void RenderOnGUI() { GUILayout.BeginArea(new Rect(Screen.width - 120, 0, 120, Screen.height)); GUILayout.Label("Variables:"); GUILayout.Label("m_ServerListRequest: " + m_ServerListRequest); GUILayout.Label("m_ServerQuery: " + m_ServerQuery); GUILayout.EndArea(); if (GUILayout.Button("RequestInternetServerList(new AppId_t(440), filters, (uint)filters.Length, m_ServerListResponse)")) { ReleaseRequest(); MatchMakingKeyValuePair_t[] filters = new MatchMakingKeyValuePair_t[1]; filters[0].m_szKey = "map"; filters[0].m_szValue = "cp_granary"; m_ServerListRequest = SteamMatchmakingServers.RequestInternetServerList(new AppId_t(440), filters, (uint)filters.Length, m_ServerListResponse); print("SteamMatchmakingServers.RequestInternetServerList(" + new AppId_t(440) + ", filters, (uint)filters.Length, m_ServerListResponse) : " + m_ServerListRequest); } if (GUILayout.Button("RequestLANServerList(new AppId_t(440), m_ServerListResponse)")) { ReleaseRequest(); m_ServerListRequest = SteamMatchmakingServers.RequestLANServerList(new AppId_t(440), m_ServerListResponse); ; print("SteamMatchmakingServers.RequestLANServerList(" + new AppId_t(440) + ", m_ServerListResponse) : " + m_ServerListRequest); } if (GUILayout.Button("RequestFriendsServerList(new AppId_t(440), null, 0, m_ServerListResponse)")) { ReleaseRequest(); m_ServerListRequest = SteamMatchmakingServers.RequestFriendsServerList(new AppId_t(440), null, 0, m_ServerListResponse); print("SteamMatchmakingServers.RequestFriendsServerList(" + new AppId_t(440) + ", null, 0, m_ServerListResponse) : " + m_ServerListRequest); } if (GUILayout.Button("RequestFavoritesServerList(new AppId_t(440), null, 0, m_ServerListResponse)")) { ReleaseRequest(); m_ServerListRequest = SteamMatchmakingServers.RequestFavoritesServerList(new AppId_t(440), null, 0, m_ServerListResponse); print("SteamMatchmakingServers.RequestFavoritesServerList(" + new AppId_t(440) + ", null, 0, m_ServerListResponse) : " + m_ServerListRequest); } if (GUILayout.Button("RequestHistoryServerList(new AppId_t(440), null, 0, m_ServerListResponse)")) { ReleaseRequest(); m_ServerListRequest = SteamMatchmakingServers.RequestHistoryServerList(new AppId_t(440), null, 0, m_ServerListResponse); print("SteamMatchmakingServers.RequestHistoryServerList(" + new AppId_t(440) + ", null, 0, m_ServerListResponse) : " + m_ServerListRequest); } if (GUILayout.Button("RequestSpectatorServerList(new AppId_t(440), null, 0, m_ServerListResponse)")) { ReleaseRequest(); m_ServerListRequest = SteamMatchmakingServers.RequestSpectatorServerList(new AppId_t(440), null, 0, m_ServerListResponse); print("SteamMatchmakingServers.RequestSpectatorServerList(" + new AppId_t(440) + ", null, 0, m_ServerListResponse) : " + m_ServerListRequest); } if (GUILayout.Button("ReleaseRequest(m_ServerListRequest)")) { ReleaseRequest(); // We do this instead, because we want to make sure that m_ServerListRequested gets set to Invalid after releasing. } if (GUILayout.Button("GetServerDetails(m_ServerListRequest, 0)")) { gameserveritem_t gsi = SteamMatchmakingServers.GetServerDetails(m_ServerListRequest, 0); print("SteamMatchmakingServers.GetServerDetails(" + m_ServerListRequest + ", 0) : " + gsi + "\n" + GameServerItemFormattedString(gsi)); } if (GUILayout.Button("CancelQuery(m_ServerListRequest)")) { SteamMatchmakingServers.CancelQuery(m_ServerListRequest); print("SteamMatchmakingServers.CancelQuery(" + m_ServerListRequest + ")"); } if (GUILayout.Button("RefreshQuery(m_ServerListRequest)")) { SteamMatchmakingServers.RefreshQuery(m_ServerListRequest); print("SteamMatchmakingServers.RefreshQuery(" + m_ServerListRequest + ")"); } GUILayout.Label("SteamMatchmakingServers.IsRefreshing(m_ServerListRequest) : " + SteamMatchmakingServers.IsRefreshing(m_ServerListRequest)); GUILayout.Label("SteamMatchmakingServers.GetServerCount(m_ServerListRequest) : " + SteamMatchmakingServers.GetServerCount(m_ServerListRequest)); if (GUILayout.Button("RefreshServer(m_ServerListRequest, 0)")) { SteamMatchmakingServers.RefreshServer(m_ServerListRequest, 0); print("SteamMatchmakingServers.RefreshServer(" + m_ServerListRequest + ", 0)"); } // 3494815209 = 208.78.165.233 = Valve Payload Server (Virginia srcds150 #1) if (GUILayout.Button("PingServer(3494815209, 27015, m_PingResponse)")) { CancelServerQuery(); m_ServerQuery = SteamMatchmakingServers.PingServer(3494815209, 27015, m_PingResponse); print("SteamMatchmakingServers.PingServer(3494815209, 27015, m_PingResponse) : " + m_ServerQuery); } if (GUILayout.Button("PlayerDetails(3494815209, 27015, m_PlayersResponse)")) { CancelServerQuery(); m_ServerQuery = SteamMatchmakingServers.PlayerDetails(3494815209, 27015, m_PlayersResponse); print("SteamMatchmakingServers.PlayerDetails(3494815209, 27015, m_PlayersResponse) : " + m_ServerQuery); } if (GUILayout.Button("ServerRules(3494815209, 27015, m_RulesResponse)")) { CancelServerQuery(); m_ServerQuery = SteamMatchmakingServers.ServerRules(3494815209, 27015, m_RulesResponse); print("SteamMatchmakingServers.ServerRules(3494815209, 27015, m_RulesResponse) : " + m_ServerQuery); } if (GUILayout.Button("CancelServerQuery(m_ServerQuery)")) { CancelServerQuery(); // We do this instead, because we want to make sure that m_ServerListRequested gets set to Invalid after releasing, and we call it from a number of places. } }
public MMKVPMarshaller(MatchMakingKeyValuePair_t[] filters) { if (filters == null) { return; } m_AllocatedMemory = new IntPtr[filters.Length]; int intPtrSize = Marshal.SizeOf(typeof(IntPtr)); m_NativeArray = Marshal.AllocHGlobal(intPtrSize * filters.Length); for (int i = 0; i < filters.Length; i++) { m_AllocatedMemory[i] = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(MatchMakingKeyValuePair_t))); Marshal.StructureToPtr(filters[i], m_AllocatedMemory[i], false); Marshal.WriteIntPtr(m_NativeArray, i * intPtrSize, m_AllocatedMemory[i]); } }