From b97f73eacef7f776847f001769d9913b0de5b2da Mon Sep 17 00:00:00 2001 From: flowtron Date: Fri, 30 Jul 2010 19:59:43 +0000 Subject: [PATCH] added arg2 to "getdemo" to allow D/L to subpath of "demos/" - e.g. "getdemo 3 bans". git-svn-id: svn://svn.code.sf.net/p/actiongame/code/trunk/ac@5488 e016b1c5-ed68-44aa-a2f7-31cac88cffde --- source/src/client.cpp | 8 ++++++-- source/src/clients2c.cpp | 4 +++- source/src/protos.h | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/source/src/client.cpp b/source/src/client.cpp index f987bff2..e2b9c077 100644 --- a/source/src/client.cpp +++ b/source/src/client.cpp @@ -624,8 +624,12 @@ void deleteservermap(char *mapname) addmsg(SV_REMOVEMAP, "rs", name); } -void getdemo(int i) +string demosubpath; +void getdemo(char *idx, char *dsp) { + int i = atoi(idx); + if(dsp && dsp[0]) formatstring(demosubpath)("%s/", dsp); + else copystring(demosubpath, ""); if(i<=0) conoutf(_("getting demo...")); else conoutf(_("getting demo %d..."), i); addmsg(SV_GETDEMO, "ri", i); @@ -642,5 +646,5 @@ COMMAND(getmap, ARG_NONE); COMMAND(deleteservermap, ARG_1STR); COMMAND(resetsecuremaps, ARG_NONE); COMMAND(securemap, ARG_1STR); -COMMAND(getdemo, ARG_1INT); +COMMAND(getdemo, ARG_2STR); COMMAND(listdemos, ARG_NONE); diff --git a/source/src/clients2c.cpp b/source/src/clients2c.cpp index ee79b0f7..d9e691b7 100644 --- a/source/src/clients2c.cpp +++ b/source/src/clients2c.cpp @@ -1199,7 +1199,9 @@ void receivefile(uchar *data, int len) case SV_SENDDEMO: { getstring(text, p); - defformatstring(fname)("demos/%s.dmo", text); + extern string demosubpath; + defformatstring(fname)("demos/%s%s.dmo", demosubpath, text); + copystring(demosubpath, ""); data += strlen(text); int demosize = getint(p); if(p.remaining() < demosize) diff --git a/source/src/protos.h b/source/src/protos.h index e43ad3b0..4c9f1157 100644 --- a/source/src/protos.h +++ b/source/src/protos.h @@ -327,7 +327,7 @@ extern void getmap(); extern void newteam(char *name); extern bool securemapcheck(const char *map, bool msg = true); extern void sendintro(); -extern void getdemo(int i); +extern void getdemo(char *idx, char *dsp); extern void listdemos(); // clientgame