138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
conoutf(@"disconnected");
clienthost = NULL;
connecting = 0;
connattempts = 0;
disconnecting = 0;
clientnum = -1;
c2sinit = false;
player1.lifesequence = 0;
[players removeAllObjects];
localdisconnect();
if (!onlyclean) {
stop();
localconnect();
|
|
|
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
conoutf(@"disconnected");
clienthost = NULL;
connecting = 0;
connattempts = 0;
disconnecting = 0;
clientnum = -1;
c2sinit = false;
player1.lifeSequence = 0;
[players removeAllObjects];
localdisconnect();
if (!onlyclean) {
stop();
localconnect();
|
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
|
toservermap = @"";
putint(&p, nextmode);
} else {
putint(&p, SV_POS);
putint(&p, clientnum);
// quantize coordinates to 1/16th of a cube, between 1 and 3
// bytes
putint(&p, (int)(d.o.x * DMF));
putint(&p, (int)(d.o.y * DMF));
putint(&p, (int)(d.o.z * DMF));
putint(&p, (int)(d.yaw * DAF));
putint(&p, (int)(d.pitch * DAF));
putint(&p, (int)(d.roll * DAF));
// quantize to 1/100, almost always 1 byte
putint(&p, (int)(d.vel.x * DVF));
putint(&p, (int)(d.vel.y * DVF));
putint(&p, (int)(d.vel.z * DVF));
// pack rest in 1 byte: strafe:2, move:2, onfloor:1, state:3
putint(&p,
(d.strafe & 3) | ((d.move & 3) << 2) |
(((int)d.onfloor) << 4) |
((editmode ? CS_EDITING : d.state) << 5));
if (senditemstoserver) {
packet->flags = ENET_PACKET_FLAG_RELIABLE;
putint(&p, SV_ITEMLIST);
if (!m_noitems)
putitems(&p);
|
|
|
|
|
|
|
|
|
|
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
|
toservermap = @"";
putint(&p, nextmode);
} else {
putint(&p, SV_POS);
putint(&p, clientnum);
// quantize coordinates to 1/16th of a cube, between 1 and 3
// bytes
putint(&p, (int)(d.origin.x * DMF));
putint(&p, (int)(d.origin.y * DMF));
putint(&p, (int)(d.origin.z * DMF));
putint(&p, (int)(d.yaw * DAF));
putint(&p, (int)(d.pitch * DAF));
putint(&p, (int)(d.roll * DAF));
// quantize to 1/100, almost always 1 byte
putint(&p, (int)(d.velocity.x * DVF));
putint(&p, (int)(d.velocity.y * DVF));
putint(&p, (int)(d.velocity.z * DVF));
// pack rest in 1 byte: strafe:2, move:2, onFloor:1, state:3
putint(&p,
(d.strafe & 3) | ((d.move & 3) << 2) |
(((int)d.onFloor) << 4) |
((editmode ? CS_EDITING : d.state) << 5));
if (senditemstoserver) {
packet->flags = ENET_PACKET_FLAG_RELIABLE;
putint(&p, SV_ITEMLIST);
if (!m_noitems)
putitems(&p);
|
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
|
// tell other clients who I am
if (!c2sinit) {
packet->flags = ENET_PACKET_FLAG_RELIABLE;
c2sinit = true;
putint(&p, SV_INITC2S);
sendstring(player1.name, &p);
sendstring(player1.team, &p);
putint(&p, player1.lifesequence);
}
for (OFData *msg in messages) {
// send messages collected during the previous frames
if (*(int *)[msg itemAtIndex:1])
packet->flags = ENET_PACKET_FLAG_RELIABLE;
loopi(*(int *)[msg itemAtIndex:0])
putint(&p, *(int *)[msg itemAtIndex:i + 2]);
|
|
|
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
|
// tell other clients who I am
if (!c2sinit) {
packet->flags = ENET_PACKET_FLAG_RELIABLE;
c2sinit = true;
putint(&p, SV_INITC2S);
sendstring(player1.name, &p);
sendstring(player1.team, &p);
putint(&p, player1.lifeSequence);
}
for (OFData *msg in messages) {
// send messages collected during the previous frames
if (*(int *)[msg itemAtIndex:1])
packet->flags = ENET_PACKET_FLAG_RELIABLE;
loopi(*(int *)[msg itemAtIndex:0])
putint(&p, *(int *)[msg itemAtIndex:i + 2]);
|