1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
using System;
using System.Runtime.InteropServices;
using System.Text;
namespace Steamworks;
[Serializable]
[StructLayout(LayoutKind.Sequential, Pack = 4, Size = 372)]
public class gameserveritem_t
{
public servernetadr_t m_NetAdr;
public int m_nPing;
[MarshalAs(UnmanagedType.I1)]
public bool m_bHadSuccessfulResponse;
[MarshalAs(UnmanagedType.I1)]
public bool m_bDoNotRefresh;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
private byte[] m_szGameDir;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]
private byte[] m_szMap;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
private byte[] m_szGameDescription;
public uint m_nAppID;
public int m_nPlayers;
public int m_nMaxPlayers;
public int m_nBotPlayers;
[MarshalAs(UnmanagedType.I1)]
public bool m_bPassword;
[MarshalAs(UnmanagedType.I1)]
public bool m_bSecure;
public uint m_ulTimeLastPlayed;
public int m_nServerVersion;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 64)]
private byte[] m_szServerName;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
private byte[] m_szGameTags;
public CSteamID m_steamID;
public string GetGameDir()
{
return Encoding.UTF8.GetString(m_szGameDir, 0, Array.IndexOf(m_szGameDir, (byte)0));
}
public void SetGameDir(string dir)
{
m_szGameDir = Encoding.UTF8.GetBytes(dir + "\0");
}
public string GetMap()
{
return Encoding.UTF8.GetString(m_szMap, 0, Array.IndexOf(m_szMap, (byte)0));
}
public void SetMap(string map)
{
m_szMap = Encoding.UTF8.GetBytes(map + "\0");
}
public string GetGameDescription()
{
return Encoding.UTF8.GetString(m_szGameDescription, 0, Array.IndexOf(m_szGameDescription, (byte)0));
}
public void SetGameDescription(string desc)
{
m_szGameDescription = Encoding.UTF8.GetBytes(desc + "\0");
}
public string GetServerName()
{
if (m_szServerName[0] == 0)
{
return m_NetAdr.GetConnectionAddressString();
}
return Encoding.UTF8.GetString(m_szServerName, 0, Array.IndexOf(m_szServerName, (byte)0));
}
public void SetServerName(string name)
{
m_szServerName = Encoding.UTF8.GetBytes(name + "\0");
}
public string GetGameTags()
{
return Encoding.UTF8.GetString(m_szGameTags, 0, Array.IndexOf(m_szGameTags, (byte)0));
}
public void SetGameTags(string tags)
{
m_szGameTags = Encoding.UTF8.GetBytes(tags + "\0");
}
}
|