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:
parent
f948e2c585
commit
3ce03d1c2a
6 changed files with 136 additions and 17 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue