From bff5137cb4c69b1217dab26defda7cd4ff8655c0 Mon Sep 17 00:00:00 2001 From: Jelle Raaijmakers Date: Tue, 25 Apr 2023 19:05:39 +0200 Subject: [PATCH] Ports/gltron: Exit the game when SDL_QUIT is received --- ...-to-exit-the-loop-on-receiving-SDL_Q.patch | 28 +++++++++++++++++++ Ports/gltron/patches/ReadMe.md | 11 ++++++++ 2 files changed, 39 insertions(+) create mode 100644 Ports/gltron/patches/0004-System-Make-sure-to-exit-the-loop-on-receiving-SDL_Q.patch diff --git a/Ports/gltron/patches/0004-System-Make-sure-to-exit-the-loop-on-receiving-SDL_Q.patch b/Ports/gltron/patches/0004-System-Make-sure-to-exit-the-loop-on-receiving-SDL_Q.patch new file mode 100644 index 00000000000..825c949b1cf --- /dev/null +++ b/Ports/gltron/patches/0004-System-Make-sure-to-exit-the-loop-on-receiving-SDL_Q.patch @@ -0,0 +1,28 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jelle Raaijmakers +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 */ diff --git a/Ports/gltron/patches/ReadMe.md b/Ports/gltron/patches/ReadMe.md index 0581378ad38..edbc3f2eeac 100644 --- a/Ports/gltron/patches/ReadMe.md +++ b/Ports/gltron/patches/ReadMe.md @@ -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. +