Migrate more strings
FossilOrigin-Name: fa4b03aacafc3bab0a52c144241ab665332f7e8e789eb17fff63f76e02e2d5c9
This commit is contained in:
parent
daeb76f126
commit
745514762e
15 changed files with 154 additions and 134 deletions
|
@ -90,8 +90,7 @@ VARP(minmillis, 0, 5, 1000);
|
|||
|
||||
initclient();
|
||||
// never returns if dedicated
|
||||
initserver(dedicated, uprate, sdesc.UTF8String, ip.UTF8String,
|
||||
master.UTF8String, passwd, maxcl);
|
||||
initserver(dedicated, uprate, sdesc, ip, master, passwd, maxcl);
|
||||
|
||||
log(@"world");
|
||||
empty_world(7, true);
|
||||
|
|
|
@ -293,7 +293,7 @@ c2sinfo(dynent *d) // send update to the server
|
|||
// update
|
||||
packet->flags = ENET_PACKET_FLAG_RELIABLE;
|
||||
putint(p, SV_MAPCHANGE);
|
||||
sendstring(toservermap.UTF8String, p);
|
||||
sendstring(toservermap, p);
|
||||
toservermap = @"";
|
||||
putint(p, nextmode);
|
||||
} else {
|
||||
|
@ -334,7 +334,7 @@ c2sinfo(dynent *d) // send update to the server
|
|||
{
|
||||
packet->flags = ENET_PACKET_FLAG_RELIABLE;
|
||||
putint(p, SV_TEXT);
|
||||
sendstring(ctext, p);
|
||||
sendstring(@(ctext), p);
|
||||
ctext[0] = 0;
|
||||
}
|
||||
if (!c2sinit) // tell other clients who I am
|
||||
|
@ -342,8 +342,8 @@ c2sinfo(dynent *d) // send update to the server
|
|||
packet->flags = ENET_PACKET_FLAG_RELIABLE;
|
||||
c2sinit = true;
|
||||
putint(p, SV_INITC2S);
|
||||
sendstring(player1->name, p);
|
||||
sendstring(player1->team, p);
|
||||
sendstring(@(player1->name), p);
|
||||
sendstring(@(player1->team), p);
|
||||
putint(p, player1->lifesequence);
|
||||
}
|
||||
for (OFData *msg in messages) {
|
||||
|
|
|
@ -191,7 +191,7 @@ sendmap(OFString *mapname)
|
|||
uchar *start = packet->data;
|
||||
uchar *p = start + 2;
|
||||
putint(p, SV_SENDMAP);
|
||||
sendstring(mapname.UTF8String, p);
|
||||
sendstring(mapname, p);
|
||||
putint(p, mapdata.count);
|
||||
if (65535 - (p - start) < mapdata.count) {
|
||||
conoutf(@"map %@ is too large to send", mapname);
|
||||
|
|
|
@ -510,7 +510,7 @@ startmap(OFString *name) // called just after a map load
|
|||
showscores(false);
|
||||
intermission = false;
|
||||
Cube.sharedInstance.framesInMap = 0;
|
||||
conoutf(@"game mode is %s", modestr(gamemode));
|
||||
conoutf(@"game mode is %@", modestr(gamemode));
|
||||
}
|
||||
|
||||
COMMANDN(map, changemap, ARG_1STR)
|
||||
|
|
|
@ -15,12 +15,10 @@ neterr(OFString *s)
|
|||
}
|
||||
|
||||
void
|
||||
changemapserv(char *name, int mode) // forced map change from the server
|
||||
changemapserv(OFString *name, int mode) // forced map change from the server
|
||||
{
|
||||
gamemode = mode;
|
||||
@autoreleasepool {
|
||||
load_world(@(name));
|
||||
}
|
||||
load_world(name);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -100,7 +98,7 @@ localservertoclient(
|
|||
if (getint(p) == 1)
|
||||
conoutf(@"server is FULL, disconnecting..");
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
case SV_POS: // position of another client
|
||||
{
|
||||
|
@ -129,7 +127,7 @@ localservertoclient(
|
|||
if (!demoplayback)
|
||||
updatepos(d);
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
case SV_SOUND:
|
||||
playsound(getint(p), &d->o);
|
||||
|
@ -142,7 +140,9 @@ localservertoclient(
|
|||
|
||||
case SV_MAPCHANGE:
|
||||
sgetstr();
|
||||
changemapserv(text, getint(p));
|
||||
@autoreleasepool {
|
||||
changemapserv(@(text), getint(p));
|
||||
}
|
||||
mapchanged = true;
|
||||
break;
|
||||
|
||||
|
@ -151,7 +151,7 @@ localservertoclient(
|
|||
if (mapchanged) {
|
||||
senditemstoserver = false;
|
||||
resetspawns();
|
||||
};
|
||||
}
|
||||
while ((n = getint(p)) != -1)
|
||||
if (mapchanged)
|
||||
setspawn(n, true);
|
||||
|
@ -367,10 +367,11 @@ localservertoclient(
|
|||
text);
|
||||
int mapsize = getint(p);
|
||||
@autoreleasepool {
|
||||
writemap(@(text), mapsize, p);
|
||||
}
|
||||
OFString *string = @(text);
|
||||
writemap(string, mapsize, p);
|
||||
p += mapsize;
|
||||
changemapserv(text, gamemode);
|
||||
changemapserv(string, gamemode);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -345,17 +345,12 @@ bool
|
|||
execfile(OFString *cfgfile)
|
||||
{
|
||||
@autoreleasepool {
|
||||
OFMutableData *data;
|
||||
@try {
|
||||
data = [OFMutableData dataWithContentsOfFile:cfgfile];
|
||||
execute([OFString stringWithContentsOfFile:cfgfile]);
|
||||
} @catch (id e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Ensure \0 termination.
|
||||
[data addItem:""];
|
||||
|
||||
execute(@((char *)data.mutableItems));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -156,7 +156,7 @@ menukey(int code, bool isdown)
|
|||
OFString *action = menus[vmenu].items[menusel].action;
|
||||
if (vmenu == 1) {
|
||||
@autoreleasepool {
|
||||
connects(@(getservername(menusel)));
|
||||
connects(getservername(menusel));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
22
src/protos.h
22
src/protos.h
|
@ -37,7 +37,7 @@ extern void newmenu(OFString *name);
|
|||
|
||||
// serverbrowser
|
||||
extern void addserver(OFString *servername);
|
||||
extern char *getservername(int n);
|
||||
extern OFString *getservername(int n);
|
||||
extern void writeservercfg();
|
||||
|
||||
// rendergl
|
||||
|
@ -82,7 +82,7 @@ extern void neterr(OFString *s);
|
|||
extern void initclientnet();
|
||||
extern bool netmapstart();
|
||||
extern int getclientnum();
|
||||
extern void changemapserv(char *name, int mode);
|
||||
extern void changemapserv(OFString *name, int mode);
|
||||
extern void writeclientinfo(OFStream *stream);
|
||||
|
||||
// clientgame
|
||||
|
@ -95,7 +95,7 @@ extern void spawnplayer(dynent *d);
|
|||
extern void selfdamage(int damage, int actor, dynent *act);
|
||||
extern dynent *newdynent();
|
||||
extern OFString *getclientmap();
|
||||
extern const char *modestr(int n);
|
||||
extern OFString *modestr(int n);
|
||||
extern void zapdynent(dynent *&d);
|
||||
extern dynent *getclient(int cn);
|
||||
extern void timeupdate(int timeremain);
|
||||
|
@ -215,8 +215,8 @@ extern void rendermodel(OFString *mdl, int frame, int range, int tex, float rad,
|
|||
extern MapModelInfo *getmminfo(int i);
|
||||
|
||||
// server
|
||||
extern void initserver(bool dedicated, int uprate, const char *sdesc,
|
||||
const char *ip, const char *master, OFString *passwd, int maxcl);
|
||||
extern void initserver(bool dedicated, int uprate, OFString *sdesc,
|
||||
OFString *ip, OFString *master, OFString *passwd, int maxcl);
|
||||
extern void cleanupserver();
|
||||
extern void localconnect();
|
||||
extern void localdisconnect();
|
||||
|
@ -224,15 +224,15 @@ extern void localclienttoserver(struct _ENetPacket *);
|
|||
extern void serverslice(int seconds, unsigned int timeout);
|
||||
extern void putint(uchar *&p, int n);
|
||||
extern int getint(uchar *&p);
|
||||
extern void sendstring(const char *t, uchar *&p);
|
||||
extern void sendstring(OFString *t, uchar *&p);
|
||||
extern void startintermission();
|
||||
extern void restoreserverstate(vector<entity> &ents);
|
||||
extern uchar *retrieveservers(uchar *buf, int buflen);
|
||||
extern char msgsizelookup(int msg);
|
||||
extern void serverms(int mode, int numplayers, int minremain, char *smapname,
|
||||
int seconds, bool isfull);
|
||||
extern void servermsinit(const char *master, const char *sdesc, bool listen);
|
||||
extern void sendmaps(int n, string mapname, int mapsize, uchar *mapdata);
|
||||
extern void serverms(int mode, int numplayers, int minremain,
|
||||
OFString *smapname, int seconds, bool isfull);
|
||||
extern void servermsinit(OFString *master, OFString *sdesc, bool listen);
|
||||
extern void sendmaps(int n, OFString *mapname, int mapsize, uchar *mapdata);
|
||||
extern ENetPacket *recvmap(int n);
|
||||
|
||||
// weapon
|
||||
|
@ -243,7 +243,7 @@ extern void shootv(int gun, OFVector3D &from, OFVector3D &to, dynent *d = 0,
|
|||
extern void createrays(OFVector3D &from, OFVector3D &to);
|
||||
extern void moveprojectiles(float time);
|
||||
extern void projreset();
|
||||
extern char *playerincrosshair();
|
||||
extern OFString *playerincrosshair();
|
||||
extern int reloadtime(int gun);
|
||||
|
||||
// monster
|
||||
|
|
|
@ -367,14 +367,14 @@ gl_drawhud(int w, int h, int curfps, int nquads, int curvert, bool underwater)
|
|||
|
||||
@autoreleasepool {
|
||||
OFString *command = getcurcommand();
|
||||
char *player = playerincrosshair();
|
||||
OFString *player = playerincrosshair();
|
||||
|
||||
if (command)
|
||||
draw_textf(@"> %@_", 20, 1570, 2, command);
|
||||
else if (closeent[0])
|
||||
draw_text(@(closeent), 20, 1570, 2);
|
||||
else if (player)
|
||||
draw_text(@(player), 20, 1570, 2);
|
||||
else if (player != nil)
|
||||
draw_text(player, 20, 1570, 2);
|
||||
}
|
||||
|
||||
renderscores();
|
||||
|
|
|
@ -18,7 +18,7 @@ struct client // server side version of "dynent" type
|
|||
vector<client> clients;
|
||||
|
||||
int maxclients = 8;
|
||||
string smapname;
|
||||
static OFString *smapname;
|
||||
|
||||
struct server_entity // server side version of "entity" type
|
||||
{
|
||||
|
@ -96,7 +96,7 @@ send2(bool rel, int cn, int a, int b)
|
|||
};
|
||||
|
||||
void
|
||||
sendservmsg(char *msg)
|
||||
sendservmsg(OFString *msg)
|
||||
{
|
||||
ENetPacket *packet = enet_packet_create(
|
||||
NULL, _MAXDEFSTR + 10, ENET_PACKET_FLAG_RELIABLE);
|
||||
|
@ -109,7 +109,7 @@ sendservmsg(char *msg)
|
|||
multicast(packet, -1);
|
||||
if (packet->referenceCount == 0)
|
||||
enet_packet_destroy(packet);
|
||||
};
|
||||
}
|
||||
|
||||
void
|
||||
disconnect_client(int n, char *reason)
|
||||
|
@ -165,12 +165,16 @@ vote(char *map, int reqmode, int sender)
|
|||
};
|
||||
if (yes == 1 && no == 0)
|
||||
return true; // single player
|
||||
sprintf_sd(msg)("%s suggests %s on map %s (set map to vote)",
|
||||
clients[sender].name, modestr(reqmode), map);
|
||||
@autoreleasepool {
|
||||
OFString *msg =
|
||||
[OFString stringWithFormat:
|
||||
@"%s suggests %@ on map %s (set map to vote)",
|
||||
clients[sender].name, modestr(reqmode), map];
|
||||
sendservmsg(msg);
|
||||
}
|
||||
if (yes / (float)(yes + no) <= 0.5f)
|
||||
return false;
|
||||
sendservmsg("vote passed");
|
||||
sendservmsg(@"vote passed");
|
||||
resetvotes();
|
||||
return true;
|
||||
};
|
||||
|
@ -211,7 +215,7 @@ process(ENetPacket *packet, int sender) // sender may be -1
|
|||
int reqmode = getint(p);
|
||||
if (reqmode < 0)
|
||||
reqmode = 0;
|
||||
if (smapname[0] && !mapreload &&
|
||||
if (smapname.length > 0 && !mapreload &&
|
||||
!vote(text, reqmode, sender))
|
||||
return;
|
||||
mapreload = false;
|
||||
|
@ -219,11 +223,13 @@ process(ENetPacket *packet, int sender) // sender may be -1
|
|||
minremain = mode & 1 ? 15 : 10;
|
||||
mapend = lastsec + minremain * 60;
|
||||
interm = 0;
|
||||
strcpy_s(smapname, text);
|
||||
@autoreleasepool {
|
||||
smapname = @(text);
|
||||
}
|
||||
resetitems();
|
||||
sender = -1;
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
case SV_ITEMLIST: {
|
||||
int n;
|
||||
|
@ -236,13 +242,13 @@ process(ENetPacket *packet, int sender) // sender may be -1
|
|||
};
|
||||
notgotitems = false;
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
case SV_ITEMPICKUP: {
|
||||
int n = getint(p);
|
||||
pickup(n, getint(p), sender);
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
case SV_PING:
|
||||
send2(false, cn, SV_PONG, getint(p));
|
||||
|
@ -259,12 +265,14 @@ process(ENetPacket *packet, int sender) // sender may be -1
|
|||
assert(size != -1);
|
||||
loopi(size - 2) getint(p);
|
||||
break;
|
||||
};
|
||||
}
|
||||
|
||||
case SV_SENDMAP: {
|
||||
sgetstr();
|
||||
int mapsize = getint(p);
|
||||
sendmaps(sender, text, mapsize, p);
|
||||
@autoreleasepool {
|
||||
sendmaps(sender, @(text), mapsize, p);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -307,21 +315,23 @@ send_welcome(int n)
|
|||
putint(p, SV_INITS2C);
|
||||
putint(p, n);
|
||||
putint(p, PROTOCOL_VERSION);
|
||||
putint(p, smapname[0]);
|
||||
sendstring(serverpassword.UTF8String, p);
|
||||
@autoreleasepool {
|
||||
putint(p, *smapname.UTF8String);
|
||||
}
|
||||
sendstring(serverpassword, p);
|
||||
putint(p, clients.length() > maxclients);
|
||||
if (smapname[0]) {
|
||||
if (smapname.length > 0) {
|
||||
putint(p, SV_MAPCHANGE);
|
||||
sendstring(smapname, p);
|
||||
putint(p, mode);
|
||||
putint(p, SV_ITEMLIST);
|
||||
loopv(sents) if (sents[i].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)
|
||||
|
@ -371,7 +381,7 @@ resetserverifempty()
|
|||
{
|
||||
loopv(clients) if (clients[i].type != ST_EMPTY) return;
|
||||
clients.setsize(0);
|
||||
smapname[0] = 0;
|
||||
smapname = @"";
|
||||
resetvotes();
|
||||
resetitems();
|
||||
mode = 0;
|
||||
|
@ -379,7 +389,7 @@ resetserverifempty()
|
|||
minremain = 10;
|
||||
mapend = lastsec + minremain * 60;
|
||||
interm = 0;
|
||||
};
|
||||
}
|
||||
|
||||
int nonlocalclients = 0;
|
||||
int lastconnect = 0;
|
||||
|
@ -509,18 +519,21 @@ localconnect()
|
|||
};
|
||||
|
||||
void
|
||||
initserver(bool dedicated, int uprate, const char *sdesc, const char *ip,
|
||||
const char *master, OFString *passwd, int maxcl)
|
||||
initserver(bool dedicated, int uprate, OFString *sdesc, OFString *ip,
|
||||
OFString *master, OFString *passwd, int maxcl)
|
||||
{
|
||||
serverpassword = passwd;
|
||||
maxclients = maxcl;
|
||||
servermsinit(master ? master : "wouter.fov120.com/cube/masterserver/",
|
||||
servermsinit(master ? master : @"wouter.fov120.com/cube/masterserver/",
|
||||
sdesc, dedicated);
|
||||
|
||||
if (isdedicated = dedicated) {
|
||||
ENetAddress address = {ENET_HOST_ANY, CUBE_SERVER_PORT};
|
||||
if (*ip && enet_address_set_host(&address, ip) < 0)
|
||||
@autoreleasepool {
|
||||
if (ip.length > 0 &&
|
||||
enet_address_set_host(&address, ip.UTF8String) < 0)
|
||||
printf("WARNING: server ip not resolved");
|
||||
}
|
||||
serverhost = enet_host_create(&address, MAXCLIENTS, 0, uprate);
|
||||
if (!serverhost)
|
||||
fatal(@"could not create server host\n");
|
||||
|
|
|
@ -145,10 +145,12 @@ vector<serverinfo> servers;
|
|||
ENetSocket pingsock = ENET_SOCKET_NULL;
|
||||
int lastinfo = 0;
|
||||
|
||||
char *
|
||||
OFString *
|
||||
getservername(int n)
|
||||
{
|
||||
return servers[n].name;
|
||||
@autoreleasepool {
|
||||
return @(servers[n].name);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -272,11 +274,16 @@ refreshservers()
|
|||
if (si.protocol != PROTOCOL_VERSION)
|
||||
sprintf_s(si.full)(
|
||||
"%s [different cube protocol]", si.name);
|
||||
else
|
||||
sprintf_s(si.full)("%d\t%d\t%s, %s: %s %s",
|
||||
si.ping, si.numplayers,
|
||||
else {
|
||||
@autoreleasepool {
|
||||
sprintf_s(si.full)(
|
||||
"%d\t%d\t%s, %s: %s %s", si.ping,
|
||||
si.numplayers,
|
||||
si.map[0] ? si.map : "[unknown]",
|
||||
modestr(si.mode), si.name, si.sdesc);
|
||||
modestr(si.mode).UTF8String,
|
||||
si.name, si.sdesc);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
sprintf_s(si.full)(
|
||||
si.address.host != ENET_HOST_ANY
|
||||
|
|
|
@ -12,18 +12,18 @@ httpgetsend(ENetAddress &ad, char *hostname, char *req, char *ref, char *agent)
|
|||
enet_address_set_host(&ad, hostname);
|
||||
if (ad.host == ENET_HOST_ANY)
|
||||
return;
|
||||
};
|
||||
}
|
||||
if (mssock != ENET_SOCKET_NULL)
|
||||
enet_socket_destroy(mssock);
|
||||
mssock = enet_socket_create(ENET_SOCKET_TYPE_STREAM, NULL);
|
||||
if (mssock == ENET_SOCKET_NULL) {
|
||||
printf("could not open socket\n");
|
||||
return;
|
||||
};
|
||||
}
|
||||
if (enet_socket_connect(mssock, &ad) < 0) {
|
||||
printf("could not connect\n");
|
||||
return;
|
||||
};
|
||||
}
|
||||
ENetBuffer buf;
|
||||
sprintf_sd(httpget)(
|
||||
"GET %s HTTP/1.0\nHost: %s\nReferer: %s\nUser-Agent: %s\n\n", req,
|
||||
|
@ -32,7 +32,7 @@ httpgetsend(ENetAddress &ad, char *hostname, char *req, char *ref, char *agent)
|
|||
buf.dataLength = strlen((char *)buf.data);
|
||||
printf("sending request to %s...\n", hostname);
|
||||
enet_socket_send(mssock, NULL, &buf, 1);
|
||||
};
|
||||
}
|
||||
|
||||
void
|
||||
httpgetrecieve(ENetBuffer &buf)
|
||||
|
@ -110,11 +110,11 @@ retrieveservers(uchar *buf, int buflen)
|
|||
};
|
||||
|
||||
ENetSocket pongsock = ENET_SOCKET_NULL;
|
||||
string serverdesc;
|
||||
static OFString *serverdesc;
|
||||
|
||||
void
|
||||
serverms(int mode, int numplayers, int minremain, char *smapname, int seconds,
|
||||
bool isfull)
|
||||
serverms(int mode, int numplayers, int minremain, OFString *smapname,
|
||||
int seconds, bool isfull)
|
||||
{
|
||||
checkmasterreply();
|
||||
updatemasterserver(seconds);
|
||||
|
@ -136,9 +136,9 @@ serverms(int mode, int numplayers, int minremain, char *smapname, int seconds,
|
|||
putint(p, mode);
|
||||
putint(p, numplayers);
|
||||
putint(p, minremain);
|
||||
string mname;
|
||||
strcpy_s(mname, isfull ? "[FULL] " : "");
|
||||
strcat_s(mname, smapname);
|
||||
OFString *mname =
|
||||
[OFString stringWithFormat:@"%@%@",
|
||||
(isfull ? @"[FULL] " : @""), smapname];
|
||||
sendstring(mname, p);
|
||||
sendstring(serverdesc, p);
|
||||
buf.dataLength = p - pong;
|
||||
|
@ -147,20 +147,24 @@ serverms(int mode, int numplayers, int minremain, char *smapname, int seconds,
|
|||
}
|
||||
|
||||
void
|
||||
servermsinit(const char *master, const char *sdesc, bool listen)
|
||||
servermsinit(OFString *master_, OFString *sdesc, bool listen)
|
||||
{
|
||||
@autoreleasepool {
|
||||
const char *master = master_.UTF8String;
|
||||
const char *mid = strstr(master, "/");
|
||||
if (!mid)
|
||||
mid = master;
|
||||
strcpy_s(masterpath, mid);
|
||||
strn0cpy(masterbase, master, mid - master + 1);
|
||||
strcpy_s(serverdesc, sdesc);
|
||||
serverdesc = sdesc;
|
||||
|
||||
if (listen) {
|
||||
ENetAddress address = {ENET_HOST_ANY, CUBE_SERVINFO_PORT};
|
||||
pongsock =
|
||||
enet_socket_create(ENET_SOCKET_TYPE_DATAGRAM, &address);
|
||||
ENetAddress address = {
|
||||
ENET_HOST_ANY, CUBE_SERVINFO_PORT};
|
||||
pongsock = enet_socket_create(
|
||||
ENET_SOCKET_TYPE_DATAGRAM, &address);
|
||||
if (pongsock == ENET_SOCKET_NULL)
|
||||
fatal(@"could not create server info socket\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,38 +40,41 @@ getint(uchar *&p)
|
|||
return n | (*p++ << 24);
|
||||
} else
|
||||
return c;
|
||||
};
|
||||
}
|
||||
|
||||
void
|
||||
sendstring(const char *t, uchar *&p)
|
||||
sendstring(OFString *t_, uchar *&p)
|
||||
{
|
||||
@autoreleasepool {
|
||||
const char *t = t_.UTF8String;
|
||||
while (*t)
|
||||
putint(p, *t++);
|
||||
putint(p, 0);
|
||||
}
|
||||
}
|
||||
|
||||
static const OFString *modenames[] = {
|
||||
@"SP",
|
||||
@"DMSP",
|
||||
@"ffa/default",
|
||||
@"coopedit",
|
||||
@"ffa/duel",
|
||||
@"teamplay",
|
||||
@"instagib",
|
||||
@"instagib team",
|
||||
@"efficiency",
|
||||
@"efficiency team",
|
||||
@"insta arena",
|
||||
@"insta clan arena",
|
||||
@"tactics arena",
|
||||
@"tactics clan arena",
|
||||
};
|
||||
|
||||
const char *modenames[] = {
|
||||
"SP",
|
||||
"DMSP",
|
||||
"ffa/default",
|
||||
"coopedit",
|
||||
"ffa/duel",
|
||||
"teamplay",
|
||||
"instagib",
|
||||
"instagib team",
|
||||
"efficiency",
|
||||
"efficiency team",
|
||||
"insta arena",
|
||||
"insta clan arena",
|
||||
"tactics arena",
|
||||
"tactics clan arena",
|
||||
};
|
||||
|
||||
const char *
|
||||
OFString *
|
||||
modestr(int n)
|
||||
{
|
||||
return (n >= -2 && n < 12) ? modenames[n + 2] : "unknown";
|
||||
};
|
||||
return (n >= -2 && n < 12) ? modenames[n + 2] : @"unknown";
|
||||
}
|
||||
|
||||
char msgsizesl[] = // size inclusive message token, 0 for variable or
|
||||
// not-checked sizes
|
||||
|
@ -94,16 +97,16 @@ msgsizelookup(int msg)
|
|||
|
||||
// sending of maps between clients
|
||||
|
||||
string copyname;
|
||||
static OFString *copyname;
|
||||
int copysize;
|
||||
uchar *copydata = NULL;
|
||||
|
||||
void
|
||||
sendmaps(int n, string mapname, int mapsize, uchar *mapdata)
|
||||
sendmaps(int n, OFString *mapname, int mapsize, uchar *mapdata)
|
||||
{
|
||||
if (mapsize <= 0 || mapsize > 256 * 256)
|
||||
return;
|
||||
strcpy_s(copyname, mapname);
|
||||
copyname = mapname;
|
||||
copysize = mapsize;
|
||||
if (copydata)
|
||||
free(copydata);
|
||||
|
@ -189,7 +192,7 @@ main(int argc, char *argv[])
|
|||
|
||||
if (enet_initialize() < 0)
|
||||
fatal(@"Unable to initialise network module");
|
||||
initserver(true, uprate, sdesc, ip, master, @(passwd), maxcl);
|
||||
initserver(true, uprate, @(sdesc), @(ip), @(master), @(passwd), maxcl);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -48,14 +48,9 @@ typedef unsigned int uint;
|
|||
#define loopk(m) loop(k, m)
|
||||
#define loopl(m) loop(l, m)
|
||||
|
||||
#ifdef WIN32
|
||||
# pragma warning(3 : 4189)
|
||||
// #pragma comment(linker,"/OPT:NOWIN98")
|
||||
# define PATHDIV '\\'
|
||||
#else
|
||||
#ifndef OF_WINDOWS
|
||||
# define __cdecl
|
||||
# define _vsnprintf vsnprintf
|
||||
# define PATHDIV '/'
|
||||
#endif
|
||||
|
||||
// easy safe strings
|
||||
|
|
|
@ -111,7 +111,7 @@ intersect(dynent *d, OFVector3D &from,
|
|||
p->z <= d->o.z + d->aboveeye && p->z >= d->o.z - d->eyeheight);
|
||||
}
|
||||
|
||||
char *
|
||||
OFString *
|
||||
playerincrosshair()
|
||||
{
|
||||
if (demoplayback)
|
||||
|
@ -121,8 +121,11 @@ playerincrosshair()
|
|||
dynent *o = players[i];
|
||||
if (!o)
|
||||
continue;
|
||||
if (intersect(o, player1->o, worldpos))
|
||||
return o->name;
|
||||
if (intersect(o, player1->o, worldpos)) {
|
||||
@autoreleasepool {
|
||||
return @(o->name);
|
||||
}
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue