drop cube 1 media package support
Drop support for maps outside packages/maps and for package config files. (never been used in AC anyway) also: generate all map related filenames with proper path separators
This commit is contained in:
+14
-29
@@ -381,41 +381,26 @@ struct mitemmaploadmanual : mitemmanual
|
||||
|
||||
mitemmaploadmanual(gmenu *parent, const char *filename, const char *altfontname, char *text, char *action, char *hoveraction, color *bgcolor, const char *desc = NULL) : mitemmanual(parent, text, action, NULL, NULL, NULL), filename(filename)
|
||||
{
|
||||
image = NULL;
|
||||
image = notexture;
|
||||
copystring(maptitle, filename ? filename : "-n/a-");
|
||||
silent_texture_load = true;
|
||||
if(filename)
|
||||
{
|
||||
// see worldio.cpp:setnames()
|
||||
string pakname, mapname, cgzpath;
|
||||
const char *slash = strpbrk(filename, "/\\");
|
||||
if(slash)
|
||||
{ // load map description and preview picture
|
||||
filename = behindpath(filename);
|
||||
const char *cgzpath = "packages" PATHDIVS "maps";
|
||||
char *d = getfiledesc(cgzpath, filename, "cgz"); // check for regular map
|
||||
if(!d) d = getfiledesc((cgzpath = "packages" PATHDIVS "maps" PATHDIVS "official"), filename, "cgz"); // check for official map
|
||||
if(d)
|
||||
{
|
||||
copystring(pakname, filename, slash-filename+1);
|
||||
copystring(mapname, slash+1);
|
||||
if(*d) copystring(maptitle, d);
|
||||
delstring(d);
|
||||
}
|
||||
else
|
||||
{
|
||||
copystring(pakname, "maps");
|
||||
copystring(mapname, filename);
|
||||
}
|
||||
formatstring(cgzpath)("packages/%s", pakname);
|
||||
char *d = getfiledesc(cgzpath, mapname, "cgz");
|
||||
if( d ) { formatstring(maptitle)("%s", d[0] ? d : "-n/a-"); }
|
||||
else
|
||||
{
|
||||
copystring(pakname, "maps/official");
|
||||
formatstring(cgzpath)("packages/%s", pakname);
|
||||
char *d = getfiledesc("packages/maps/official", mapname, "cgz");
|
||||
if( d ) { formatstring(maptitle)("%s", d[0] ? d : "-n/a-"); }
|
||||
else formatstring(maptitle)("-n/a-:%s", mapname);
|
||||
}
|
||||
defformatstring(p2p)("%s/preview/%s.jpg", cgzpath, mapname);
|
||||
silent_texture_load = true;
|
||||
else formatstring(maptitle)("-n/a-:%s", filename);
|
||||
defformatstring(p2p)("%s/preview/%s.jpg", cgzpath, filename);
|
||||
image = textureload(p2p, 3);
|
||||
if(image==notexture) image = textureload("packages/misc/nopreview.jpg", 3);
|
||||
silent_texture_load = false;
|
||||
}
|
||||
else { formatstring(maptitle)("-n/a-:%s", filename); image = textureload("packages/misc/nopreview.png", 3); }
|
||||
if(image == notexture) image = textureload("packages/misc/nopreview.jpg", 3);
|
||||
silent_texture_load = false;
|
||||
copystring(mapstats, "");
|
||||
}
|
||||
virtual ~mitemmaploadmanual() {}
|
||||
|
||||
+10
-29
@@ -5,34 +5,17 @@
|
||||
#define DEBUGCOND (worldiodebug==1)
|
||||
VARP(worldiodebug, 0, 0, 1);
|
||||
|
||||
static string cgzname, ocgzname, bakname, cbakname, pcfname, mcfname, omcfname, mapname;
|
||||
static string cgzname, ocgzname, bakname, cbakname, mcfname, omcfname;
|
||||
|
||||
const char *setnames(const char *name)
|
||||
{
|
||||
string pakname;
|
||||
const char *slash = strpbrk(name, "/\\");
|
||||
if(slash)
|
||||
{
|
||||
copystring(pakname, name, slash-name+1);
|
||||
copystring(mapname, slash+1);
|
||||
}
|
||||
else
|
||||
{
|
||||
copystring(pakname, "maps");
|
||||
copystring(mapname, name);
|
||||
}
|
||||
const char *nt = numtime();
|
||||
formatstring(cgzname)("packages/%s/%s.cgz", pakname, mapname);
|
||||
formatstring(ocgzname)("packages/maps/official/%s.cgz", mapname);
|
||||
formatstring(bakname)("packages/%s/%s_%s.BAK", pakname, mapname, nt);
|
||||
formatstring(cbakname)("packages/%s/%s.cfg_%s.BAK", pakname, mapname, nt);
|
||||
formatstring(pcfname)("packages/%s/package.cfg", pakname);
|
||||
formatstring(mcfname)("packages/%s/%s.cfg", pakname, mapname);
|
||||
formatstring(omcfname)("packages/maps/official/%s.cfg", mapname);
|
||||
|
||||
path(cgzname);
|
||||
path(bakname);
|
||||
path(cbakname);
|
||||
const char *mapname = behindpath(name), *nt = numtime();
|
||||
formatstring(cgzname) ("packages" PATHDIVS "maps" PATHDIVS "%s.cgz", mapname);
|
||||
formatstring(mcfname) ("packages" PATHDIVS "maps" PATHDIVS "%s.cfg", mapname);
|
||||
formatstring(ocgzname)("packages" PATHDIVS "maps" PATHDIVS "official" PATHDIVS "%s.cgz", mapname);
|
||||
formatstring(omcfname)("packages" PATHDIVS "maps" PATHDIVS "official" PATHDIVS "%s.cfg", mapname);
|
||||
formatstring(bakname) ("packages" PATHDIVS "maps" PATHDIVS "%s_%s.BAK", mapname, nt);
|
||||
formatstring(cbakname)("packages" PATHDIVS "maps" PATHDIVS "%s.cfg_%s.BAK", mapname, nt);
|
||||
return cgzname;
|
||||
}
|
||||
|
||||
@@ -362,7 +345,7 @@ bool embedconfigfile()
|
||||
if(unsavededits) { conoutf("There are unsaved edits: they need to be saved or discarded before a config file can be embedded."); return false; }
|
||||
setnames(getclientmap());
|
||||
int len;
|
||||
uchar *buf = (uchar *)loadfile(path(mcfname), &len);
|
||||
uchar *buf = (uchar *)loadfile(mcfname, &len);
|
||||
if(buf)
|
||||
{
|
||||
for(int n; (n = findheaderextra(HX_CONFIG)) >= 0; ) deleteheaderextra(n);
|
||||
@@ -709,7 +692,7 @@ bool load_world(char *mname) // still supports all map formats that have
|
||||
copystring(mcfname, omcfname);
|
||||
}
|
||||
else maploaded = getfilesize(cgzname);
|
||||
if(!validmapname(mapname))
|
||||
if(!validmapname(mname))
|
||||
{
|
||||
conoutf("\f3Invalid map name. It must only contain letters, digits, '-', '_' and be less than %d characters long", MAXMAPNAMELEN);
|
||||
return false;
|
||||
@@ -868,7 +851,6 @@ bool load_world(char *mname) // still supports all map formats that have
|
||||
else
|
||||
{ // map config from files
|
||||
execfile("config/default_map_settings.cfg");
|
||||
execfile(pcfname);
|
||||
execfile(mcfname);
|
||||
copystring(lastloadedconfigfile, mcfname);
|
||||
}
|
||||
@@ -1041,7 +1023,6 @@ struct xmap
|
||||
else
|
||||
{
|
||||
execfile("config/default_map_settings.cfg");
|
||||
execfile(pcfname);
|
||||
execfile(lastloadedconfigfile);
|
||||
}
|
||||
parseheaderextra();
|
||||
|
||||
Reference in New Issue
Block a user