From 0324707fb80181d2989c68d02497f658e0ce66ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Kera=CC=88nen?= Date: Sun, 28 Oct 2018 19:43:21 +0200 Subject: [PATCH] Scripting|FS: Added a file system binding `FS.refreshPackageFolders()` re-initializes the /local/wads and /local/packs folders according to the configuration. --- doomsday/apps/libdoomsday/src/doomsdayapp.cpp | 2 ++ .../apps/libdoomsday/src/doomsdayapp_bindings.cpp | 14 ++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/doomsday/apps/libdoomsday/src/doomsdayapp.cpp b/doomsday/apps/libdoomsday/src/doomsdayapp.cpp index 7c0c5efcce..a81dce40c2 100644 --- a/doomsday/apps/libdoomsday/src/doomsdayapp.cpp +++ b/doomsday/apps/libdoomsday/src/doomsdayapp.cpp @@ -551,11 +551,13 @@ void DoomsdayApp::initialize() void DoomsdayApp::initWadFolders() { + d->dataBundles.waitForEverythingIdentified(); d->initWadFolders(); } void DoomsdayApp::initPackageFolders() { + d->dataBundles.waitForEverythingIdentified(); DENG2_FOR_AUDIENCE2(FileRefresh, i) i->aboutToRefreshFiles(); d->initPackageFolders(); } diff --git a/doomsday/apps/libdoomsday/src/doomsdayapp_bindings.cpp b/doomsday/apps/libdoomsday/src/doomsdayapp_bindings.cpp index 433ab7332d..5d85a91c3b 100644 --- a/doomsday/apps/libdoomsday/src/doomsdayapp_bindings.cpp +++ b/doomsday/apps/libdoomsday/src/doomsdayapp_bindings.cpp @@ -18,6 +18,7 @@ #include "doomsday/DoomsdayApp" +#include #include using namespace de; @@ -36,8 +37,21 @@ static Value *Function_App_Download(Context &, Function::ArgumentValues const &a return nullptr; } +static Value *Function_FS_RefreshPackageFolders(Context &, const Function::ArgumentValues &) +{ + LOG_SCR_MSG("Initializing package folders..."); + Folder::afterPopulation([]() { + DoomsdayApp::app().initWadFolders(); + DoomsdayApp::app().initPackageFolders(); + }); + return nullptr; +} + void DoomsdayApp::initBindings(Binder &binder) { binder.init(ScriptSystem::get().nativeModule("App")) << DENG2_FUNC(App_Download, "download", "packageId"); + + binder.init(ScriptSystem::get().nativeModule("FS")) + << DENG2_FUNC_NOARG(FS_RefreshPackageFolders, "refreshPackageFolders"); }