diff --git a/src/menu/custom_menu.c b/src/menu/custom_menu.c index 9afb5963..987bf720 100644 --- a/src/menu/custom_menu.c +++ b/src/menu/custom_menu.c @@ -292,7 +292,11 @@ void custom_menu_init(struct CustomMenu* head) { void custom_menu_loop(void) { // we've received an event that makes us exit the menus - if (sGotoGame) { sSelectedFileNum = sGotoGame; } + if (sGotoGame) { + sSelectedFileNum = sGotoGame; + custom_menu_close_system(); + custom_menu_destroy(); + } // force-start the load when command-line server hosting if (gNetworkType == NT_SERVER && sSelectedFileNum == 0) { diff --git a/src/menu/custom_menu_system.c b/src/menu/custom_menu_system.c index ce1e14cf..d92dc0ca 100644 --- a/src/menu/custom_menu_system.c +++ b/src/menu/custom_menu_system.c @@ -96,7 +96,11 @@ void custom_menu_system_init(void) { } void custom_menu_destroy(void) { - /* TODO: we should probably clean up all of this stuff */ + // TODO: clean up all of the calloc()'d memory + sHead = NULL; + sCurrentMenu = NULL; + sLastMenu = NULL; + overlay = NULL; } void custom_menu_system_loop(void) {