aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/manager/SystemManager.cpp
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-12-22 16:12:31 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2024-12-22 16:12:31 +0100
commit7e12ebdf945d40d6f11872cf5852c9bb54d1864f (patch)
treed81f4661e2fd47f487cf0c9627baa1e21dc45b37 /src/crepe/manager/SystemManager.cpp
parent61148c757a1f742ff09e40e5347e74e638c7371c (diff)
big WIP
Diffstat (limited to 'src/crepe/manager/SystemManager.cpp')
-rw-r--r--src/crepe/manager/SystemManager.cpp24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/crepe/manager/SystemManager.cpp b/src/crepe/manager/SystemManager.cpp
index eabc022..c8f4f3d 100644
--- a/src/crepe/manager/SystemManager.cpp
+++ b/src/crepe/manager/SystemManager.cpp
@@ -31,17 +31,25 @@ SystemManager::SystemManager(Mediator & mediator) : Manager(mediator) {
this->mediator.system_manager = *this;
}
-void SystemManager::fixed_update() {
- for (System & system : this->system_order) {
- if (!system.active) continue;
- system.fixed_update();
+void SystemManager::fixed_update() noexcept {
+ for (SystemEntry & entry : this->system_order) {
+ if (!entry.system.active) continue;
+ try {
+ entry.system.fixed_update();
+ } catch (const exception & e) {
+ Log::logf(Log::Level::WARNING, "Uncaught exception in {} fixed update: {}", entry.name, e.what());
+ }
}
}
-void SystemManager::frame_update() {
- for (System & system : this->system_order) {
- if (!system.active) continue;
- system.frame_update();
+void SystemManager::frame_update() noexcept {
+ for (SystemEntry & entry : this->system_order) {
+ if (!entry.system.active) continue;
+ try {
+ entry.system.frame_update();
+ } catch (const exception & e) {
+ Log::logf(Log::Level::WARNING, "Uncaught exception in {} frame update: {}", entry.name, e.what());
+ }
}
}