Skip to content

Commit

Permalink
Fixes the TD process hanging when pressing 'exit game'
Browse files Browse the repository at this point in the history
  • Loading branch information
tore29 authored and OmniBlade committed Dec 23, 2023
1 parent 59efc89 commit 83c8956
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions tiberiandawn/startup.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -467,16 +467,27 @@ int main(int argc, char** argv)
Memory_Error_Exit = Print_Error_Exit;

CCDebugString("C&C95 - About to exit.\n");
ReadyToQuit = 1;

#if defined(SDL_BUILD)
Reset_Video_Mode();
#endif

Sound_End();

#if defined(_WIN32)
PostMessageA(MainWindow, WM_DESTROY, 0, 0);
/*
** Flag that this is a clean shutdown (not killed with Ctrl-Alt-Del)
*/
ReadyToQuit = 1;

/*
** Post a message to our message handler to tell it to clean up.
*/
#if defined(_WIN32) && !defined(SDL_BUILD)
PostMessage(MainWindow, WM_DESTROY, 0, 0);

/*
** Wait until the message handler has dealt with the message
*/
do {
Keyboard->Check();
} while (ReadyToQuit == 1);
Expand Down Expand Up @@ -598,4 +609,4 @@ void Read_Setup_Options(RawFileClass* config_file)
*/
VideoBackBufferAllowed = ini.Get_Bool("Options", "VideoBackBuffer", true);
AllowHardwareBlitFills = ini.Get_Bool("Options", "HardwareFills", true);
}
}

0 comments on commit 83c8956

Please sign in to comment.