Cogs.Core
ResourceManifest.cpp
1#include "ResourceManifest.h"
2
3#include "Context.h"
4
5#include "Services/Variables.h"
6
7std::vector<std::string> Cogs::Core::getResourceManifest(Context * context)
8{
9 static std::string defaultConfigSetting = context->variables->get("variables.defaultConfig", "Default.config");
10 static std::string resourcesSetting = context->variables->get("resources.zipPath", "Cogs.Resources.zip");
11
12 auto inputSetting = context->variables->get("input.config");
13
14 std::vector<std::string> manifest = {
15#ifdef EMSCRIPTEN
16 { defaultConfigSetting.data() },
17 { resourcesSetting.data() },
18#endif
19 };
20
21#ifdef EMSCRIPTEN
22 std::string resourceExtras = context->variables->get("resources.preload", "");
23 size_t curr = 0;
24 size_t next = resourceExtras.find(';');
25 while (next != std::string::npos) {
26 manifest.push_back(resourceExtras.substr(curr, next-curr));
27 curr = next + 1;
28 next = resourceExtras.find(';', curr);
29 }
30 if (curr < resourceExtras.size()) {
31 manifest.push_back(resourceExtras.substr(curr));
32 }
33#endif
34
35 if (*inputSetting) {
36 manifest.emplace_back(inputSetting->getValue().to_string());
37 }
38
39 return manifest;
40}