diff --git a/src/error_gui.cpp b/src/error_gui.cpp index 812e04cefa..412864226c 100644 --- a/src/error_gui.cpp +++ b/src/error_gui.cpp @@ -348,7 +348,7 @@ void ShowFirstError() */ void UnshowCriticalError() { - ErrmsgWindow *w = (ErrmsgWindow*)FindWindowById(WC_ERRMSG, 0); + ErrmsgWindow *w = dynamic_cast(FindWindowById(WC_ERRMSG, 0)); if (_window_system_initialized && w != nullptr) { if (w->IsCritical()) _error_list.push_front(*w); _window_system_initialized = false; @@ -414,7 +414,7 @@ void ShowErrorMessage(StringID summary_msg, StringID detailed_msg, WarningLevel ErrorMessageData data(summary_msg, detailed_msg, is_critical, x, y, textref_stack_grffile, textref_stack_size, textref_stack, extra_msg); data.CopyOutDParams(); - ErrmsgWindow *w = (ErrmsgWindow*)FindWindowById(WC_ERRMSG, 0); + ErrmsgWindow *w = dynamic_cast(FindWindowById(WC_ERRMSG, 0)); if (w != nullptr) { if (w->IsCritical()) { /* A critical error is currently shown. */ @@ -438,7 +438,7 @@ void ShowErrorMessage(StringID summary_msg, StringID detailed_msg, WarningLevel */ bool HideActiveErrorMessage() { - ErrmsgWindow *w = (ErrmsgWindow*)FindWindowById(WC_ERRMSG, 0); + ErrmsgWindow *w = dynamic_cast(FindWindowById(WC_ERRMSG, 0)); if (w == nullptr) return false; w->Close(); return true; diff --git a/src/group_gui.cpp b/src/group_gui.cpp index 1143de9f0f..55bb30dd1e 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -1169,7 +1169,7 @@ void ShowCompanyGroupForVehicle(const Vehicle *v) */ static inline VehicleGroupWindow *FindVehicleGroupWindow(VehicleType vt, Owner owner) { - return (VehicleGroupWindow *)FindWindowById(GetWindowClassForVehicleType(vt), VehicleListIdentifier(VL_GROUP_LIST, vt, owner).Pack()); + return dynamic_cast(FindWindowById(GetWindowClassForVehicleType(vt), VehicleListIdentifier(VL_GROUP_LIST, vt, owner).Pack())); } /** diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index b659f64d21..aa9940c936 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -2234,7 +2234,7 @@ void ShowJoinStatusWindow() void ShowNetworkNeedPassword(NetworkPasswordType npt, std::shared_ptr request) { - NetworkJoinStatusWindow *w = (NetworkJoinStatusWindow *)FindWindowById(WC_NETWORK_STATUS_WINDOW, WN_NETWORK_STATUS_WINDOW_JOIN); + NetworkJoinStatusWindow *w = dynamic_cast(FindWindowById(WC_NETWORK_STATUS_WINDOW, WN_NETWORK_STATUS_WINDOW_JOIN)); if (w == nullptr) return; w->request = request; diff --git a/src/news_gui.cpp b/src/news_gui.cpp index fe7710ca8d..e90772f170 100644 --- a/src/news_gui.cpp +++ b/src/news_gui.cpp @@ -1017,7 +1017,7 @@ static void ShowNewsMessage(NewsIterator ni) */ bool HideActiveNewsMessage() { - NewsWindow *w = (NewsWindow*)FindWindowById(WC_NEWS_WINDOW, 0); + NewsWindow *w = dynamic_cast(FindWindowById(WC_NEWS_WINDOW, 0)); if (w == nullptr) return false; w->Close(); return true;