summaryrefslogtreecommitdiff
path: root/src/engine.c
diff options
context:
space:
mode:
author0scar <qgt268@alumni.ku.dk>2023-07-28 14:32:58 +0000
committer0scar <qgt268@alumni.ku.dk>2023-07-28 18:26:17 +0000
commit4cb29fbc2d20f20e9d605796b137b4b70363113a (patch)
tree9b5929ff4d16a7a2472bafac48196e5ddfabc7dd /src/engine.c
parent5ee7f4b4b033de403f1861eedc942c7a5a0f31b6 (diff)
Implement hotloading
* This commit implements dltools.{c,h}: _A simple wrapper around libdl / dlfcn.h_ * Reload states when done initializing engine, if hotloading is enabled. * Adds general function types for state functions.
Diffstat (limited to 'src/engine.c')
-rw-r--r--src/engine.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/engine.c b/src/engine.c
index fa528c0..36eb349 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -379,6 +379,19 @@ Platform *engine_init(
GLOBAL_PLATFORM = p;
+
+#ifdef DAW_BUILD_HOTRELOAD
+
+#define State(name) \
+if (!State_reload(STATE_##name)) { \
+ ERROR("Failed to reload shared object file for state %s", #name ); \
+};
+
+#include <states/list_of_states.h>
+#undef State
+
+#endif
+
return p;
}