diff --git a/src/g_statusbar/sbarinfo.cpp b/src/g_statusbar/sbarinfo.cpp index 1846ecbc69..d048ffc0e4 100644 --- a/src/g_statusbar/sbarinfo.cpp +++ b/src/g_statusbar/sbarinfo.cpp @@ -1576,8 +1576,7 @@ DEFINE_ACTION_FUNCTION(DSBarInfo, GetProtrusion) DBaseStatusBar *CreateCustomStatusBar(int scriptno) { auto script = SBarInfoScript[scriptno]; - if (script == NULL) - I_FatalError("Tried to create a status bar with no script!"); + if (script == nullptr) return nullptr; auto sbar = (DBaseStatusBar*)PClass::FindClass("SBarInfoWrapper")->CreateNew(); auto core = new DSBarInfo(sbar, script); diff --git a/src/g_statusbar/shared_sbar.cpp b/src/g_statusbar/shared_sbar.cpp index 4b2b1e727b..2710c5156d 100644 --- a/src/g_statusbar/shared_sbar.cpp +++ b/src/g_statusbar/shared_sbar.cpp @@ -303,6 +303,15 @@ void ST_CreateStatusBar(bool bTitleLevel) { StatusBar = CreateCustomStatusBar(SCRIPT_DEFAULT); } + // SBARINFO failed so try the current statusbarclass again. + if (StatusBar == nullptr) + { + auto cls = PClass::FindClass(gameinfo.statusbarclass); + if (cls != nullptr) + { + StatusBar = (DBaseStatusBar *)cls->CreateNew(); + } + } } if (StatusBar == nullptr) {