Ports/gltron: Exit the game when SDL_QUIT is received

This commit is contained in:
Jelle Raaijmakers 2023-04-25 19:05:39 +02:00 committed by Sam Atkins
parent 7465362fe7
commit bff5137cb4
2 changed files with 39 additions and 0 deletions

View file

@ -0,0 +1,28 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jelle Raaijmakers <jelle@gmta.nl>
Date: Tue, 25 Apr 2023 17:53:50 +0200
Subject: [PATCH] System: Make sure to exit the loop on receiving SDL_QUIT
This is fixed in more modern adaptations, as can be seen here:
https://github.com/laanwj/gltron/blob/336dbbb75afe0aed1d9faaa5bbaa867b2b13d10b/nebu/base/system.c#L135
Since we work with the original source material, we better patch this
ourselves.
---
nebu/base/system.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/nebu/base/system.c b/nebu/base/system.c
index 07a75e7b069a73a203950a4f0d0a8a345f76518a..794848e91cb22d1099d5a61e2e01974dde69861e 100644
--- a/nebu/base/system.c
+++ b/nebu/base/system.c
@@ -37,6 +37,8 @@ int SystemMainLoop() {
break;
case SDL_QUIT:
SystemExit();
+ // status 10 is the only way to break free from main.lua
+ SystemExitLoop(10);
break;
default:
/* ignore event */

View file

@ -17,3 +17,14 @@ Build: Fix `char*` vs. `const char*` arguments
These arguments are of the wrong constness, which will trip our
compiler.
## `0004-System-Make-sure-to-exit-the-loop-on-receiving-SDL_Q.patch`
System: Make sure to exit the loop on receiving SDL_QUIT
This is fixed in more modern adaptations, as can be seen here:
https://github.com/laanwj/gltron/blob/336dbbb75afe0aed1d9faaa5bbaa867b2b13d10b/nebu/base/system.c#L135
Since we work with the original source material, we better patch this
ourselves.