From eeec7a668c7bfd16cb4c5d5f6998982b70d51799 Mon Sep 17 00:00:00 2001 From: sireus Date: Wed, 20 Apr 2011 00:11:55 +0000 Subject: [PATCH] fixed bug where clients would end up (attempting to) load a different map path than the server, if the map-name contained slashes git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@6290 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/server.cpp | 6 +++++- source/src/serverfiles.h | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/source/src/server.cpp b/source/src/server.cpp index f1a73514..8bfb990f 100644 --- a/source/src/server.cpp +++ b/source/src/server.cpp @@ -3328,7 +3328,11 @@ void process(ENetPacket *packet, int sender, int chan) } int qmode = (mode >= GMODE_NUM ? mode - GMODE_NUM : mode); if(mode==GMODE_DEMO) vi->action = new demoplayaction(newstring(text)); - else vi->action = new mapaction(newstring(vi->text), qmode, sender, qmode!=mode); + else + { + char *vmap = newstring(vi->text ? behindpath(vi->text) : ""); + vi->action = new mapaction(vmap, qmode, sender, qmode!=mode); + } break; } case SA_KICK: diff --git a/source/src/serverfiles.h b/source/src/serverfiles.h index e9d27e61..f6b1edc7 100644 --- a/source/src/serverfiles.h +++ b/source/src/serverfiles.h @@ -141,10 +141,10 @@ static const char * const maplocstr[] = { "not found", "temporary", "custom", "l int findmappath(const char *mapname, char *filename) { + if(!mapname[0]) return MAP_NOTFOUND; string tempname; if(!filename) filename = tempname; const char *name = behindpath(mapname); - if(!mapname[0]) return MAP_NOTFOUND; formatstring(filename)(SERVERMAP_PATH_BUILTIN "%s.cgz", name); path(filename); int loc = MAP_NOTFOUND;