From 070f4543005f91b39bbbe902165737baeee37da4 Mon Sep 17 00:00:00 2001
From: AnonymusRaccoon
Date: Thu, 27 Feb 2020 14:33:52 +0100
Subject: [PATCH] Adding a quit button
---
include/setup.h | 3 ++-
lib/gamacon | 2 +-
prefabs/mainmenu.gcprefab | 3 ++-
src/game_loader.c | 1 +
src/main_menu.c | 9 ++++++++-
5 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/include/setup.h b/include/setup.h
index bf9fa87..e88a8c6 100644
--- a/include/setup.h
+++ b/include/setup.h
@@ -12,4 +12,5 @@
int start_game();
-void start_button(gc_engine *engine, int entity_id);
\ No newline at end of file
+bool start_button(gc_engine *engine, int entity_id);
+bool quit(gc_engine *engine, int entity_id);
\ No newline at end of file
diff --git a/lib/gamacon b/lib/gamacon
index 5ed8d1d..334073e 160000
--- a/lib/gamacon
+++ b/lib/gamacon
@@ -1 +1 @@
-Subproject commit 5ed8d1d36be6a27a5309ccae79ad269c83ee85c4
+Subproject commit 334073ea43a7d84d5f7dfb63d23d48e802e80b68
diff --git a/prefabs/mainmenu.gcprefab b/prefabs/mainmenu.gcprefab
index 130616d..4c65fbc 100644
--- a/prefabs/mainmenu.gcprefab
+++ b/prefabs/mainmenu.gcprefab
@@ -5,8 +5,9 @@
-
+
+
\ No newline at end of file
diff --git a/src/game_loader.c b/src/game_loader.c
index d2845a3..6451ec5 100644
--- a/src/game_loader.c
+++ b/src/game_loader.c
@@ -13,6 +13,7 @@ int register_customcmps(gc_engine *engine)
{
engine->finish_physics(engine);
engine->add_callback(engine, "start_button", &start_button);
+ engine->add_callback(engine, "quit", &quit);
return (0);
}
diff --git a/src/main_menu.c b/src/main_menu.c
index 3f231a7..1686918 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -6,7 +6,7 @@
#include "scene.h"
#include "my.h"
-void start_button(gc_engine *engine, int entity_id)
+bool start_button(gc_engine *engine, int entity_id)
{
gc_scene *scene = scene_create(engine, "prefabs/game.gcprefab");
if (!scene) {
@@ -14,4 +14,11 @@ void start_button(gc_engine *engine, int entity_id)
my_printf("The game scene couldn't be found.\n");
}
engine->change_scene(engine, scene);
+ return (true);
+}
+
+bool quit(gc_engine *engine, int entity_id)
+{
+ engine->should_close = true;
+ return (true);
}
\ No newline at end of file