From 723e13cb1640b50c984ecc4e377a061b6fbb69a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Janiszewski?= Date: Sat, 28 Jan 2017 22:13:36 +0100 Subject: [PATCH] Prevent some crashes when title sequence is not present --- src/openrct2/title/TitleSequenceManager.cpp | 8 ++++++++ src/openrct2/windows/title_editor.c | 7 +++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/openrct2/title/TitleSequenceManager.cpp b/src/openrct2/title/TitleSequenceManager.cpp index 1a01354dc6..182028959f 100644 --- a/src/openrct2/title/TitleSequenceManager.cpp +++ b/src/openrct2/title/TitleSequenceManager.cpp @@ -82,6 +82,10 @@ namespace TitleSequenceManager void DeleteItem(size_t i) { auto item = GetItem(i); + if (item == nullptr) + { + return; + } const utf8 * path = item->Path.c_str(); if (item->IsZip) { @@ -295,6 +299,10 @@ extern "C" const utf8 * title_sequence_manager_get_name(size_t index) { auto item = TitleSequenceManager::GetItem(index); + if (item == nullptr) + { + return nullptr; + } const utf8 * name = item->Name.c_str(); return name; } diff --git a/src/openrct2/windows/title_editor.c b/src/openrct2/windows/title_editor.c index 29ff185bf1..fbf6124264 100644 --- a/src/openrct2/windows/title_editor.c +++ b/src/openrct2/windows/title_editor.c @@ -313,7 +313,7 @@ static void window_title_editor_mouseup(rct_window *w, sint32 widgetIndex) } break; case WIDX_TITLE_EDITOR_DUPLICATE_BUTTON: - if (!commandEditorOpen) { + if (!commandEditorOpen && _editingTitleSequence != NULL) { window_text_input_open(w, widgetIndex, STR_TITLE_EDITOR_ACTION_DUPLICATE, STR_TITLE_EDITOR_ENTER_NAME_FOR_SEQUENCE, STR_STRING, (uintptr_t)_editingTitleSequence->Name, 64); } break; @@ -324,7 +324,7 @@ static void window_title_editor_mouseup(rct_window *w, sint32 widgetIndex) } break; case WIDX_TITLE_EDITOR_RENAME_SAVE_BUTTON: - if (window_title_editor_check_can_edit()) { + if (window_title_editor_check_can_edit() && _editingTitleSequence != NULL) { window_text_input_open(w, widgetIndex, STR_TRACK_MANAGE_RENAME, STR_TITLE_EDITOR_ENTER_NAME_FOR_SEQUENCE, STR_STRING, (uintptr_t)_editingTitleSequence->Name, 64); } break; @@ -802,6 +802,9 @@ static void window_title_editor_scrollpaint_saves(rct_window *w, rct_drawpixelin sint32 x = 0; sint32 y = 0; + if (_editingTitleSequence == NULL) { + return; + } for (sint32 i = 0; i < (sint32)_editingTitleSequence->NumSaves; i++, y += ROW_HEIGHT) { bool selected = false; bool hover = false;