︙ | | | ︙ | |
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
neterr(OFString *s)
{
conoutf(@"illegal network message (%@)", s);
disconnect();
}
void
changemapserv(char *name, int mode) // forced map change from the server
{
gamemode = mode;
@autoreleasepool {
load_world(@(name));
}
}
void
changemap(OFString *name) // request map change, server may ignore
{
toservermap = name;
}
|
|
<
|
<
|
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
neterr(OFString *s)
{
conoutf(@"illegal network message (%@)", s);
disconnect();
}
void
changemapserv(OFString *name, int mode) // forced map change from the server
{
gamemode = mode;
load_world(name);
}
void
changemap(OFString *name) // request map change, server may ignore
{
toservermap = name;
}
|
︙ | | | ︙ | |
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
|
@"to join this server!");
disconnect();
return;
}
if (getint(p) == 1)
conoutf(@"server is FULL, disconnecting..");
break;
};
case SV_POS: // position of another client
{
cn = getint(p);
d = getclient(cn);
if (!d)
return;
|
<
>
|
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
@"to join this server!");
disconnect();
return;
}
if (getint(p) == 1)
conoutf(@"server is FULL, disconnecting..");
break;
}
case SV_POS: // position of another client
{
cn = getint(p);
d = getclient(cn);
if (!d)
return;
|
︙ | | | ︙ | |
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
int state = f >> 3;
if (state == CS_DEAD && d->state != CS_DEAD)
d->lastaction = lastmillis;
d->state = state;
if (!demoplayback)
updatepos(d);
break;
};
case SV_SOUND:
playsound(getint(p), &d->o);
break;
case SV_TEXT:
sgetstr();
conoutf(@"%s:\f %s", d->name, text);
break;
case SV_MAPCHANGE:
sgetstr();
changemapserv(text, getint(p));
mapchanged = true;
break;
case SV_ITEMLIST: {
int n;
if (mapchanged) {
senditemstoserver = false;
resetspawns();
};
while ((n = getint(p)) != -1)
if (mapchanged)
setspawn(n, true);
break;
}
case SV_MAPRELOAD: // server requests next map
|
<
>
>
|
>
<
>
|
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
int state = f >> 3;
if (state == CS_DEAD && d->state != CS_DEAD)
d->lastaction = lastmillis;
d->state = state;
if (!demoplayback)
updatepos(d);
break;
}
case SV_SOUND:
playsound(getint(p), &d->o);
break;
case SV_TEXT:
sgetstr();
conoutf(@"%s:\f %s", d->name, text);
break;
case SV_MAPCHANGE:
sgetstr();
@autoreleasepool {
changemapserv(@(text), getint(p));
}
mapchanged = true;
break;
case SV_ITEMLIST: {
int n;
if (mapchanged) {
senditemstoserver = false;
resetspawns();
}
while ((n = getint(p)) != -1)
if (mapchanged)
setspawn(n, true);
break;
}
case SV_MAPRELOAD: // server requests next map
|
︙ | | | ︙ | |
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
|
case SV_RECVMAP: {
sgetstr();
conoutf(@"received map \"%s\" from server, reloading..",
text);
int mapsize = getint(p);
@autoreleasepool {
writemap(@(text), mapsize, p);
}
p += mapsize;
changemapserv(text, gamemode);
break;
}
case SV_SERVMSG:
sgetstr();
conoutf(@"%s", text);
break;
|
>
|
<
|
|
>
|
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
|
case SV_RECVMAP: {
sgetstr();
conoutf(@"received map \"%s\" from server, reloading..",
text);
int mapsize = getint(p);
@autoreleasepool {
OFString *string = @(text);
writemap(string, mapsize, p);
p += mapsize;
changemapserv(string, gamemode);
}
break;
}
case SV_SERVMSG:
sgetstr();
conoutf(@"%s", text);
break;
|
︙ | | | ︙ | |