pub unsafe fn run_wnd_proc() {
    // Note: Currently done even if forge itself is disabled and we use SCR's
    // own window. Having run/end_wnd_proc go through the Bw trait
    // and be separate for 1.16.1 and SCR would maybe be cleaner.
    let mut msg: MSG = mem::zeroed();
    while GetMessageA(&mut msg, null_mut(), 0, 0) != 0 {
        if msg.message == WM_END_WND_PROC_WORKER {
            return;
        }
        TranslateMessage(&msg);
        DispatchMessageA(&msg);
    }
    // Going to close everything since the window got closed / error happened.
    // TODO Ask async thread exit instead
    std::process::exit(0);
}
/// Starts running the windows event loop -- we'll need that to run in order to get
/// lobby properly set up. The ingame message loop is run by BW, this doesn't have to be called
/// here.
///
/// Returns once `end_wnd_proc` is called.
Starts running the windows event loop -- we'll need that to run in order to get
lobby properly set up. The ingame message loop is run by BW, this doesn't have to be called
here.

Returns once `end_wnd_proc` is called.
Starts running the windows event loop -- we ' ll need that to run in order to get lobby properly set up . The ingame message loop is run by BW this doesn ' t have to be called here . Returns once ` end_wnd_proc ` is called .
pub unsafe fn run_wnd_proc() {
    // Note: Currently done even if forge itself is disabled and we use SCR's
    // own window. Having run/end_wnd_proc go through the Bw trait
    // and be separate for 1.16.1 and SCR would maybe be cleaner.
    let mut msg: MSG = mem::zeroed();
    while GetMessageA(&mut msg, null_mut(), 0, 0) != 0 {
        if msg.message == WM_END_WND_PROC_WORKER {
            return;
        }
        TranslateMessage(&msg);
        DispatchMessageA(&msg);
    }
    // Going to close everything since the window got closed / error happened.
    // TODO Ask async thread exit instead
    std::process::exit(0);
}
pub unsafe fn run_wnd_proc ( ) { // Note: Currently done even if forge itself is disabled and we use SCR's // own window. Having run/end_wnd_proc go through the Bw trait // and be separate for 1.16.1 and SCR would maybe be cleaner. let mut msg : MSG = mem :: zeroed ( ) ; while GetMessageA ( & mut msg , null_mut ( ) , 0 , 0 ) != 0 { if msg . message == WM_END_WND_PROC_WORKER { return ; } TranslateMessage ( & msg ) ; DispatchMessageA ( & msg ) ; } // Going to close everything since the window got closed / error happened. // TODO Ask async thread exit instead std :: process :: exit ( 0 ) ; }
Starts running the windows event loop -- we'll need that to run in order to get
lobby properly set up.
Starts running the windows event loop -- we ' ll need that to run in order to get lobby properly set up .