summaryrefslogtreecommitdiff
path: root/arm9/source/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/source/main.c')
-rw-r--r--arm9/source/main.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/arm9/source/main.c b/arm9/source/main.c
index 9bf4091..24d3610 100644
--- a/arm9/source/main.c
+++ b/arm9/source/main.c
@@ -68,6 +68,7 @@ void receive_input(void) {
int main(void) {
#define ALIVE(br) (br && br->alive)
+ #define DEAD(br) (br && !br->alive)
#define AWAKE(br) (br && br->alive && br->awake)
#define ASLEEP(br) (br && br->alive && !br->awake)
@@ -96,6 +97,8 @@ int main(void) {
while (1) {
if (AWAKE(br_main)) run_br(br_main);
if (AWAKE(br_sub)) run_br(br_sub);
+ if (DEAD(br_main)) br_main = NULL;
+ if (DEAD(br_sub)) br_sub = NULL;
bool main_flip = ASLEEP(br_main) && br_main->scr.dirty;
bool sub_flip = ASLEEP(br_sub) && br_sub->scr.dirty;
@@ -123,7 +126,10 @@ int main(void) {
goto rouse;
}
- if (!br_main && !br_sub) return 0;
+ if (!br_main) {
+ systemShutDown();
+ return 0;
+ }
}
}