diff --git a/MissionEditor/FinalSunDlg.cpp b/MissionEditor/FinalSunDlg.cpp index b08157b..7450189 100644 --- a/MissionEditor/FinalSunDlg.cpp +++ b/MissionEditor/FinalSunDlg.cpp @@ -2179,39 +2179,35 @@ void CFinalSunDlg::OnHelpTipoftheday() void CFinalSunDlg::UnloadAll() { int iQuit = MessageBox(GetLanguageStringACP("MainDialogExitQuestion"), GetLanguageStringACP("MainDialogExitQuestionCap"), MB_ICONQUESTION | MB_YESNO | MB_DEFBUTTON2); - if (iQuit == IDNO) return; - else { - try { - - CShutDownDlg dlg(this); - dlg.ShowWindow(SW_SHOW); - dlg.UpdateWindow(); - - tiledata = 0; - - theApp.m_loading->FreeAll(); - - rules.Clear(); - ai.Clear(); - art.Clear(); - tiles_t.Clear(); - tiles_s.Clear(); - tiles_u.Clear(); - Map->GetIniFile().Clear(); - sound.Clear(); - tutorial.Clear(); - g_data.Clear(); - language.Clear(); - - - - DestroyWindow(); - } catch (...) { - DestroyWindow(); - } + if (iQuit == IDNO) { + return; } + try { + CShutDownDlg dlg(this); + dlg.ShowWindow(SW_SHOW); + dlg.UpdateWindow(); + tiledata = nullptr; + + theApp.m_loading->FreeAll(); + + rules.Clear(); + ai.Clear(); + art.Clear(); + tiles_t.Clear(); + tiles_s.Clear(); + tiles_u.Clear(); + Map->GetIniFile().Clear(); + sound.Clear(); + tutorial.Clear(); + g_data.Clear(); + language.Clear(); + + DestroyWindow(); + } catch (...) { + DestroyWindow(); + } } void CFinalSunDlg::OnOptionsSimpleview() diff --git a/MissionEditor/Loading.cpp b/MissionEditor/Loading.cpp index b86afaa..afe0b36 100644 --- a/MissionEditor/Loading.cpp +++ b/MissionEditor/Loading.cpp @@ -3626,12 +3626,24 @@ void CLoading::FreeAll() // MW fix: We need to set tiledata and tiledata_count to the old pointers again int t = 0; - if (tiledata == &t_tiledata) t = 0; - if (tiledata == &s_tiledata) t = 1; - if (tiledata == &u_tiledata) t = 2; - if (tiledata == &un_tiledata) t = 3; - if (tiledata == &l_tiledata) t = 4; - if (tiledata == &d_tiledata) t = 4; + if (tiledata == &t_tiledata) { + t = 0; + } + if (tiledata == &s_tiledata) { + t = 1; + } + if (tiledata == &u_tiledata) { + t = 2; + } + if (tiledata == &un_tiledata) { + t = 3; + } + if (tiledata == &l_tiledata) { + t = 4; + } + if (tiledata == &d_tiledata) { + t = 4; + } //try{ tiledata = &t_tiledata; @@ -3661,12 +3673,30 @@ void CLoading::FreeAll() }*/ // MW Reset tiledata & tiledata_count - if (t == 0) { tiledata = &t_tiledata; tiledata_count = &t_tiledata_count; } - if (t == 1) { tiledata = &s_tiledata; tiledata_count = &s_tiledata_count; } - if (t == 2) { tiledata = &u_tiledata; tiledata_count = &u_tiledata_count; } - if (t == 3) { tiledata = &un_tiledata; tiledata_count = &un_tiledata_count; } - if (t == 4) { tiledata = &l_tiledata; tiledata_count = &l_tiledata_count; } - if (t == 5) { tiledata = &d_tiledata; tiledata_count = &d_tiledata_count; } + if (t == 0) { + tiledata = &t_tiledata; + tiledata_count = &t_tiledata_count; + } + if (t == 1) { + tiledata = &s_tiledata; + tiledata_count = &s_tiledata_count; + } + if (t == 2) { + tiledata = &u_tiledata; + tiledata_count = &u_tiledata_count; + } + if (t == 3) { + tiledata = &un_tiledata; + tiledata_count = &un_tiledata_count; + } + if (t == 4) { + tiledata = &l_tiledata; + tiledata_count = &l_tiledata_count; + } + if (t == 5) { + tiledata = &d_tiledata; + tiledata_count = &d_tiledata_count; + } map::iterator i = pics.begin(); for (int e = 0; e < pics.size(); e++) {