︙ | | | ︙ | |
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
#define MAXOBUF 100000
void process(ENetPacket *packet, int sender);
void multicast(ENetPacket *packet, int sender);
void disconnect_client(int n, OFString *reason);
void
send(int n, ENetPacket *packet)
{
if (!packet)
return;
switch (clients[n].type) {
case ST_TCPIP:
enet_peer_send(clients[n].peer, 0, packet);
|
|
|
|
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
#define MAXOBUF 100000
void process(ENetPacket *packet, int sender);
void multicast(ENetPacket *packet, int sender);
void disconnect_client(int n, OFString *reason);
static void
send_(int n, ENetPacket *packet)
{
if (!packet)
return;
switch (clients[n].type) {
case ST_TCPIP:
enet_peer_send(clients[n].peer, 0, packet);
|
︙ | | | ︙ | |
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
putint(&p, a);
putint(&p, b);
*(ushort *)start = ENET_HOST_TO_NET_16(p - start);
enet_packet_resize(packet, p - start);
if (cn < 0)
process(packet, -1);
else
send(cn, packet);
if (packet->referenceCount == 0)
enet_packet_destroy(packet);
}
void
sendservmsg(OFString *msg)
{
|
|
|
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
putint(&p, a);
putint(&p, b);
*(ushort *)start = ENET_HOST_TO_NET_16(p - start);
enet_packet_resize(packet, p - start);
if (cn < 0)
process(packet, -1);
else
send_(cn, packet);
if (packet->referenceCount == 0)
enet_packet_destroy(packet);
}
void
sendservmsg(OFString *msg)
{
|
︙ | | | ︙ | |
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
void
resetitems()
{
[sents removeAllObjects];
notgotitems = true;
}
void
pickup(uint i, int sec, int sender) // server side item pickup, acknowledge
// first client that gets it
{
if (i >= (uint)sents.count)
return;
if (sents[i].spawned) {
sents[i].spawned = false;
sents[i].spawnsecs = sec;
send2(true, sender, SV_ITEMACC, i);
|
>
|
|
<
|
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
void
resetitems()
{
[sents removeAllObjects];
notgotitems = true;
}
// server side item pickup, acknowledge first client that gets it
static void
pickup(uint i, int sec, int sender)
{
if (i >= (uint)sents.count)
return;
if (sents[i].spawned) {
sents[i].spawned = false;
sents[i].spawnsecs = sec;
send2(true, sender, SV_ITEMACC, i);
|
︙ | | | ︙ | |
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
|
sgetstr();
int mapsize = getint(&p);
sendmaps(sender, @(text), mapsize, p);
return;
}
case SV_RECVMAP:
send(sender, recvmap(sender));
return;
// allows for new features that require no server updates
case SV_EXT:
for (int n = getint(&p); n; n--)
getint(&p);
break;
|
|
|
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
|
sgetstr();
int mapsize = getint(&p);
sendmaps(sender, @(text), mapsize, p);
return;
}
case SV_RECVMAP:
send_(sender, recvmap(sender));
return;
// allows for new features that require no server updates
case SV_EXT:
for (int n = getint(&p); n; n--)
getint(&p);
break;
|
︙ | | | ︙ | |
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
|
if (e.spawned)
putint(&p, i);
}];
putint(&p, -1);
}
*(ushort *)start = ENET_HOST_TO_NET_16(p - start);
enet_packet_resize(packet, p - start);
send(n, packet);
}
void
multicast(ENetPacket *packet, int sender)
{
size_t count = clients.count;
for (size_t i = 0; i < count; i++)
if (i != sender)
send(i, packet);
}
void
localclienttoserver(ENetPacket *packet)
{
process(packet, 0);
|
|
|
|
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
|
if (e.spawned)
putint(&p, i);
}];
putint(&p, -1);
}
*(ushort *)start = ENET_HOST_TO_NET_16(p - start);
enet_packet_resize(packet, p - start);
send_(n, packet);
}
void
multicast(ENetPacket *packet, int sender)
{
size_t count = clients.count;
for (size_t i = 0; i < count; i++)
if (i != sender)
send_(i, packet);
}
void
localclienttoserver(ENetPacket *packet)
{
process(packet, 0);
|
︙ | | | ︙ | |