-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlevel-chooser.cpp
58 lines (52 loc) · 1.9 KB
/
level-chooser.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <string>
#include <SceneLoader.hpp>
#include <MainLoop.hpp>
#include <iostream>
#include <plog/Log.h>
#include <plog/Appenders/ColorConsoleAppender.h>
#include <plog/Formatters/TxtFormatter.h>
#include <plog/Init.h>
#ifdef __linux
#include <X11/Xlib.h>
#endif //__linux
int main(int argc, char** argv) {
// Uncomment to see logs. Know that it slows execution time
// static plog::ConsoleAppender<plog::TxtFormatter> consoleAppender;
// plog::init(plog::debug, &consoleAppender);
if (argc > 2) {
std::cerr << "Provide 1 arg to load exact scene or no args to interact" << std::endl;
exit(424242);
}
if (argc == 2) {
std::cout << "You chose " << argv[1] << std::endl;
std::string levelToLoad = argv[1];
try {
null::SceneLoader::loadSceneFromFile(levelToLoad);
} catch (const null::UnknownSceneException& ignored) {
std::cerr << "Unknown scene, try again" << std::endl;
exit(30);
}
return null::MainLoop::run();
}
// try /menu or /network-demo-(client|connector|server) or /demo
std::string levelToLoad;
bool sceneIsLoaded = false;
const std::string defaultLevel = "/network-demo-client";
std::cout << "Type level uri to load.\n"
"Empty string for default /network-demo-client.\n"
// "/network-demo-server to create headless server\n"
"Try /demo for single player." << std::endl;
while (!sceneIsLoaded) {
std::getline(std::cin, levelToLoad);
if (levelToLoad.empty()) {
levelToLoad = defaultLevel;
}
try {
null::SceneLoader::loadSceneFromFile(levelToLoad);
sceneIsLoaded = true;
} catch (const null::UnknownSceneException& ignored) {
std::cerr << "Unknown scene, try again" << std::endl;
}
}
null::MainLoop::run();
}