Skip to content
This repository was archived by the owner on Jan 6, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion src/engine/worldio.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -874,13 +874,16 @@ void loadvslots(stream *f, int numvslots)
delete[] prev;
}

VARP(allowsavebasemap, 0, 0, 1);

bool save_world(const char *mname, bool nolms)
{
if(!*mname) mname = game::getclientmap();
setmapfilenames(mname);
if(savebak) backup(ogzname, bakname);
stream *f = opengzfile(ogzname, "wb");
if(!f) { conoutf(CON_WARN, "could not write map to %s", ogzname); return false; }
ident *id = readident("allmaps");
if(!f || (!allowsavebasemap && listincludes(id->getstr(), mname, strlen(mname)) != -1)) { conoutf(CON_WARN, "could not write map to %s", ogzname); return false; }

int numvslots = vslots.length();
if(!nolms && !multiplayer(false))
Expand Down
3 changes: 2 additions & 1 deletion src/shared/iengine.h
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,7 @@ extern bool validateblock(const char *s);
extern void explodelist(const char *s, vector<char *> &elems, int limit = -1);
extern char *indexlist(const char *s, int pos);
extern int listlen(const char *s);
extern int listincludes(const char *list, const char *needle, int needlelen);
extern void printvar(ident *id);
extern void printvar(ident *id, int i);
extern void printfvar(ident *id, float f);
Expand Down Expand Up @@ -226,7 +227,7 @@ static inline bool insideworld(const ivec &o)
}

// world
extern char* mapid;
extern char *mapid;
extern bool emptymap(int factor, bool force, const char *mname = "", bool usecfg = true);
extern bool enlargemap(bool force);
extern int findentity(int type, int index = 0, int attr1 = -1, int attr2 = -1);
Expand Down