1
2
3
4
5
6
7
8
9
10
11
|
// client.cpp, mostly network related client game code
#include "cube.h"
#import "DynamicEntity.h"
static ENetHost *clienthost = NULL;
static int connecting = 0;
static int connattempts = 0;
static int disconnecting = 0;
// our client id in the game
|
>
|
1
2
3
4
5
6
7
8
9
10
11
12
|
// client.cpp, mostly network related client game code
#include "cube.h"
#import "Command.h"
#import "DynamicEntity.h"
static ENetHost *clienthost = NULL;
static int connecting = 0;
static int connattempts = 0;
static int disconnecting = 0;
// our client id in the game
|
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
|
if (!clienthost || connecting)
return;
assert(ENET_PEER_PACKET_THROTTLE_SCALE == 32);
enet_peer_throttle_configure(clienthost->peers,
throttle_interval * 1000, throttle_accel, throttle_decel);
}
void
newname(OFString *name)
{
c2sinit = false;
if (name.length > 16)
name = [name substringToIndex:16];
player1.name = name;
}
COMMANDN(name, newname, ARG_1STR)
void
newteam(OFString *name)
{
c2sinit = false;
if (name.length > 5)
name = [name substringToIndex:5];
player1.team = name;
}
COMMANDN(team, newteam, ARG_1STR)
void
writeclientinfo(OFStream *stream)
{
[stream writeFormat:@"name \"%@\"\nteam \"%@\"\n", player1.name,
player1.team];
}
|
|
>
|
>
>
|
>
|
>
>
|
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
|
if (!clienthost || connecting)
return;
assert(ENET_PEER_PACKET_THROTTLE_SCALE == 32);
enet_peer_throttle_configure(clienthost->peers,
throttle_interval * 1000, throttle_accel, throttle_decel);
}
static void
newname(OFString *name)
{
c2sinit = false;
if (name.length > 16)
name = [name substringToIndex:16];
player1.name = name;
}
COMMAND(name, ARG_1STR, ^(OFString *name) {
newname(name);
})
static void
newteam(OFString *name)
{
c2sinit = false;
if (name.length > 5)
name = [name substringToIndex:5];
player1.team = name;
}
COMMAND(team, ARG_1STR, ^(OFString *name) {
newteam(name);
})
void
writeclientinfo(OFStream *stream)
{
[stream writeFormat:@"name \"%@\"\nteam \"%@\"\n", player1.name,
player1.team];
}
|
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
|
void
toserver(OFString *text)
{
conoutf(@"%@:\f %@", player1.name, text);
ctext = text;
}
void
echo(OFString *text)
{
conoutf(@"%@", text);
}
COMMAND(echo, ARG_VARI)
COMMANDN(say, toserver, ARG_VARI)
COMMANDN(connect, connects, ARG_1STR)
COMMANDN(disconnect, trydisconnect, ARG_NONE)
// collect c2s messages conveniently
static OFMutableArray<OFData *> *messages;
void
addmsg(int rel, int num, int type, ...)
|
<
|
<
|
|
<
|
>
>
|
>
|
>
>
|
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
|
void
toserver(OFString *text)
{
conoutf(@"%@:\f %@", player1.name, text);
ctext = text;
}
COMMAND(echo, ARG_VARI, ^(OFString *text) {
conoutf(@"%@", text);
})
COMMAND(say, ARG_VARI, ^(OFString *text) {
toserver(text);
})
COMMAND(connect, ARG_1STR, ^(OFString *servername) {
connects(servername);
})
COMMAND(disconnect, ARG_NONE, ^{
trydisconnect();
})
// collect c2s messages conveniently
static OFMutableArray<OFData *> *messages;
void
addmsg(int rel, int num, int type, ...)
|
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
|
int lastupdate = 0, lastping = 0;
OFString *toservermap;
bool senditemstoserver =
false; // after a map change, since server doesn't have map data
OFString *clientpassword;
void
password(OFString *p)
{
clientpassword = p;
}
COMMAND(password, ARG_1STR)
bool
netmapstart()
{
senditemstoserver = true;
return clienthost != NULL;
}
|
<
|
<
|
<
|
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
|
int lastupdate = 0, lastping = 0;
OFString *toservermap;
bool senditemstoserver =
false; // after a map change, since server doesn't have map data
OFString *clientpassword;
COMMAND(password, ARG_1STR, ^(OFString *p) {
clientpassword = p;
})
bool
netmapstart()
{
senditemstoserver = true;
return clienthost != NULL;
}
|