1
0
forked from mirrors/0ad

Load map scripts as modules

Because its a function `GenerateMap` is renamed to `generateMap`.

Allows to rewrite the libraries as modules and to remove the costum
`Engine.LoadLibrary` mechanism in the future.
This commit is contained in:
phosit
2025-02-05 18:23:13 +01:00
committed by phosit
parent 086e8ec09d
commit df5cdbe8f1
96 changed files with 133 additions and 102 deletions
+8 -2
View File
@@ -1359,11 +1359,17 @@ int CMapReader::StartMapGeneration(const CStrW& scriptFile)
{
PROFILE2("Map Generation");
const CStrW scriptPath{scriptFile.empty() ? L"" : L"maps/random/" + scriptFile};
const VfsPath scriptPath{scriptFile.empty() ? L"" :
static_cast<std::wstring>(RANDOM_MAP_PREFIX) + scriptFile};
const std::shared_ptr<ScriptContext> mapgenContext{ScriptContext::CreateContext(
MAP_GENERATION_CONTEXT_SIZE)};
ScriptInterface mapgenInterface{"Engine", "MapGenerator", mapgenContext};
ScriptInterface mapgenInterface{"Engine", "MapGenerator", mapgenContext,
[](const VfsPath& path){
// Only allow to load modules inside the maps folder.
return path.string().find(RANDOM_MAP_PREFIX) == 0;
}};
return RunMapGenerationScript(stopToken, progress, mapgenInterface, scriptPath, settings);
});