summaryrefslogtreecommitdiff
path: root/src/game.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2023-11-30 11:31:45 -0500
committerJonathan Bradley <jcb@pikum.xyz>2023-11-30 11:31:45 -0500
commit6e498a3781f5ccbbaa6cf5e407cf67722624760f (patch)
tree8a4e95e4d962b3102d8d348a0f292f8ef8ee30df /src/game.cpp
parent9830bc2425385de6e666251fa9df6318605c639c (diff)
prefer explicit callback system over events
Diffstat (limited to 'src/game.cpp')
-rw-r--r--src/game.cpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 511003a..72228bf 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -439,7 +439,7 @@ const uint64_t consoleBufferCount = 30;
const uint64_t consoleLineLength = 128;
char consoleBuffer[consoleBufferCount][consoleLineLength];
long consoleBufferIndex = 0;
-void RecordImGuiConsole() {
+void Game_RecordImGui() {
static bool scrollToBottom = true;
if (!ImGui::Begin("Console", &pkeSettings.editorSettings.isShowingConsole)) {
ImGui::End();
@@ -484,13 +484,15 @@ void Game_Tick(double delta) {
PkeInput_Tick(delta);
// TODO invoke external ticks here
- Event_Dispatch<TickEvent, double>("GAME_TICK", delta);
+ if (pkeGameCallbacks.OnTick) {
+ pkeGameCallbacks.OnTick(delta);
+ }
EntityType_Tick_Late(delta);
ECS_Tick_Late(delta);
}
-void Game_Main(PKEWindowProperties *windowProps) {
+void Game_Main(PKEWindowProperties windowProps) {
fprintf(stdout, "Game_Main Entering\n");
try {
AM_Init();
@@ -500,7 +502,9 @@ void Game_Main(PKEWindowProperties *windowProps) {
CreateWindow(windowProps);
PkeInput_Init();
EntityType_Init();
- Event_Dispatch<EventHandler>("GAME_INIT");
+ if (pkeGameCallbacks.OnInit) {
+ pkeGameCallbacks.OnInit();
+ }
GameTimePoint lastTimePoint = pkeSettings.steadyClock.now();
double deltaTillNextRender = pkeSettings.deltaPerFrame;
@@ -589,7 +593,9 @@ void Game_Main(PKEWindowProperties *windowProps) {
#ifndef NDEBUG
Pke_DebugPrint();
#endif
- Event_Dispatch<EventHandler>("GAME_TEARDOWN");
+ if (pkeGameCallbacks.OnTeardown) {
+ pkeGameCallbacks.OnTeardown();
+ }
Game_Teardown();
Event_Teardown();
EntityType_Teardown();
@@ -609,7 +615,9 @@ void Game_Init() {
for (long i = 0; i < consoleBufferCount; ++i) {
memset(consoleBuffer[i], '\0', consoleLineLength);
}
- Event_RegisterCallback("RenderImGui", RecordImGuiConsole);
+ if (!pkeGameCallbacks.OnImGuiRender) {
+ pkeGameCallbacks.OnImGuiRender = Game_RecordImGui;
+ }
}
void Game_Teardown() { }