-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.cpp
More file actions
70 lines (60 loc) · 1.87 KB
/
Copy pathmain.cpp
File metadata and controls
70 lines (60 loc) · 1.87 KB
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
59
60
61
62
63
64
65
66
67
68
69
70
#include "Core.hpp"
#include "SocketExceptions.hpp"
int displayUsage(void)
{
std::cerr << "USAGE: ./zappy_gui -p port -h machine" << std::endl;
return (84);
}
// Custom logging funtion
void LogColored(int msgType, const char *text, va_list args)
{
switch (msgType)
{
case LOG_INFO: printf("[\e[1;32mINFO\e[0m] : "); break;
case LOG_ERROR: printf("[\e[1;31mERROR\e[0m]: "); break;
case LOG_WARNING: printf("[\e[1;33mWARN\e[0m] : "); break;
case LOG_DEBUG: printf("[DEBUG]: "); break;
default: break;
}
vprintf(text, args);
printf("\n");
}
int main(int ac, char **av)
{
if (ac == 2 && strcmp(av[1], "-help") == 0)
return displayUsage();
SetTraceLogCallback(LogColored);
SetTraceLogLevel(LOG_WARNING);
// Must run before the window exists: raylib ignores SetConfigFlags afterwards.
SetConfigFlags(FLAG_MSAA_4X_HINT | FLAG_WINDOW_RESIZABLE);
std::string assetsRoot;
if (std::filesystem::exists("assets")) {
assetsRoot = "assets/";
} else if (std::filesystem::exists("gui/assets")) {
assetsRoot = "gui/assets/";
} else {
std::cerr << "Folder assets not found, please put this binary and assets in the same folder" << std::endl;
return (84);
}
Zappy::Core core(assetsRoot);
try {
core.getOptions(ac, av);
} catch (Zappy::Core::DoubleOptionException &e) {
std::cerr << e.what() << std::endl;
return displayUsage();
} catch (Zappy::Core::MissingOptionException &e) {
std::cerr << e.what() << std::endl;
return displayUsage();
}
catch (Zappy::Core::InvalidOptionException &e) {
return displayUsage();
}
try {
core.getSocket().connectSocket(core.getPort(), core.getMachine());
} catch (const std::exception &e) {
std::cerr << e.what() << std::endl;
return (84);
}
core.loop();
return (0);
}