diff options
Diffstat (limited to 'arm9')
-rw-r--r-- | arm9/source/main.c | 8 |
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; + } } } |