1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-08-26 18:21:04 +00:00

Sanitize world directory names on create. Keep original name separate (#9432)

Blacklisted characters are replaced by '_' in the path. The display name is stored in world.mt, and duplicate file names are resolved by adding an incrementing suffix (_1, _2, _3, etc).
This commit is contained in:
Hugues Ross 2020-07-28 13:16:57 -04:00 committed by GitHub
parent f948e2c585
commit 3ce03d1c2a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 136 additions and 17 deletions

View file

@ -63,6 +63,8 @@ std::set<std::string> getAvailableGameIds();
std::vector<SubgameSpec> getAvailableGames();
bool getWorldExists(const std::string &world_path);
//! Try to get the displayed name of a world
std::string getWorldName(const std::string &world_path, const std::string &default_name);
std::string getWorldGameId(const std::string &world_path, bool can_be_legacy = false);
struct WorldSpec
@ -88,4 +90,5 @@ std::vector<WorldSpec> getAvailableWorlds();
// loads the subgame's config and creates world directory
// and world.mt if they don't exist
bool loadGameConfAndInitWorld(const std::string &path, const SubgameSpec &gamespec);
void loadGameConfAndInitWorld(const std::string &path, const std::string &name,
const SubgameSpec &gamespec, bool create_world);