mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-15 11:03:00 +01:00
Refactor title editor window
This commit is contained in:
@@ -274,83 +274,75 @@ void window_title_editor_open(int tab)
|
||||
|
||||
static void window_title_editor_close(rct_window *w)
|
||||
{
|
||||
rct_window *command_editor_w, *load_save_w;
|
||||
|
||||
// Close the related windows
|
||||
command_editor_w = window_find_by_class(WC_TITLE_COMMAND_EDITOR);
|
||||
load_save_w = window_find_by_class(WC_LOADSAVE);
|
||||
if (command_editor_w)
|
||||
window_close(command_editor_w);
|
||||
if (load_save_w && gLoadSaveTitleSequenceSave)
|
||||
window_close(load_save_w);
|
||||
window_close_by_class(WC_TITLE_COMMAND_EDITOR);
|
||||
if (gLoadSaveTitleSequenceSave) {
|
||||
window_close_by_class(WC_LOADSAVE);
|
||||
}
|
||||
}
|
||||
|
||||
static void window_title_editor_mouseup(rct_window *w, int widgetIndex)
|
||||
{
|
||||
char path[MAX_PATH];
|
||||
int defaultPreset, playing, inTitle, i, commandEditorOpen;
|
||||
|
||||
defaultPreset = (gCurrentTitleSequence < TITLE_SEQUENCE_DEFAULT_PRESETS);
|
||||
playing = (gCurrentTitleSequence == gCurrentPreviewTitleSequence) && ((gScreenFlags & SCREEN_FLAGS_TITLE_DEMO) == SCREEN_FLAGS_TITLE_DEMO);
|
||||
inTitle = ((gScreenFlags & SCREEN_FLAGS_TITLE_DEMO) == SCREEN_FLAGS_TITLE_DEMO);
|
||||
commandEditorOpen = (window_find_by_class(WC_TITLE_COMMAND_EDITOR) != NULL);
|
||||
bool readOnly = (gCurrentTitleSequence < TITLE_SEQUENCE_DEFAULT_PRESETS);
|
||||
bool playing = (gCurrentTitleSequence == gCurrentPreviewTitleSequence) && ((gScreenFlags & SCREEN_FLAGS_TITLE_DEMO) == SCREEN_FLAGS_TITLE_DEMO);
|
||||
bool inTitle = ((gScreenFlags & SCREEN_FLAGS_TITLE_DEMO) == SCREEN_FLAGS_TITLE_DEMO);
|
||||
bool commandEditorOpen = (window_find_by_class(WC_TITLE_COMMAND_EDITOR) != NULL);
|
||||
switch (widgetIndex) {
|
||||
case WIDX_TITLE_EDITOR_CLOSE:
|
||||
window_close(w);
|
||||
break;
|
||||
case WIDX_TITLE_EDITOR_NEW_BUTTON:
|
||||
commandEditorOpen *= 2;
|
||||
if (!commandEditorOpen)
|
||||
if (!commandEditorOpen) {
|
||||
// TODO: This should probably be 'NEW'
|
||||
window_text_input_open(w, widgetIndex, STR_TITLE_EDITOR_ACTION_DUPLICATE, STR_TITLE_EDITOR_ENTER_NAME_FOR_SEQUENCE, STR_NONE, 0, 64);
|
||||
}
|
||||
break;
|
||||
case WIDX_TITLE_EDITOR_DUPLICATE_BUTTON:
|
||||
commandEditorOpen *= 2;
|
||||
if (!commandEditorOpen)
|
||||
if (!commandEditorOpen) {
|
||||
window_text_input_open(w, widgetIndex, STR_TITLE_EDITOR_ACTION_DUPLICATE, STR_TITLE_EDITOR_ENTER_NAME_FOR_SEQUENCE, STR_STRING, (uintptr_t)_loadedTitleSequence->Name, 64);
|
||||
}
|
||||
break;
|
||||
case WIDX_TITLE_EDITOR_DELETE_BUTTON:
|
||||
defaultPreset *= 2; commandEditorOpen *= 2;
|
||||
if (!defaultPreset && !commandEditorOpen)
|
||||
if (!readOnly && !commandEditorOpen) {
|
||||
title_sequence_delete_preset(gCurrentTitleSequence);
|
||||
}
|
||||
break;
|
||||
case WIDX_TITLE_EDITOR_RENAME_BUTTON:
|
||||
defaultPreset *= 2; commandEditorOpen *= 2;
|
||||
if (!defaultPreset && !commandEditorOpen)
|
||||
if (!readOnly && !commandEditorOpen) {
|
||||
window_text_input_open(w, widgetIndex, STR_TRACK_MANAGE_RENAME, STR_TITLE_EDITOR_ENTER_NAME_FOR_SEQUENCE, STR_STRING, (uintptr_t)_loadedTitleSequence->Name, 64);
|
||||
}
|
||||
break;
|
||||
case WIDX_TITLE_EDITOR_ADD:
|
||||
defaultPreset *= 2; playing *= 2; commandEditorOpen *= 2;
|
||||
if (!defaultPreset && !playing && !commandEditorOpen) {
|
||||
if (!readOnly && !playing && !commandEditorOpen) {
|
||||
window_loadsave_open(LOADSAVETYPE_LOAD | LOADSAVETYPE_GAME, NULL);
|
||||
gLoadSaveTitleSequenceSave = true;
|
||||
}
|
||||
break;
|
||||
case WIDX_TITLE_EDITOR_REMOVE:
|
||||
defaultPreset *= 2; playing *= 2; commandEditorOpen *= 2;
|
||||
if (!defaultPreset && !playing && !commandEditorOpen) {
|
||||
if (!readOnly && !playing && !commandEditorOpen) {
|
||||
if (w->selected_list_item != -1) {
|
||||
title_sequence_remove_save(gCurrentTitleSequence, w->selected_list_item);
|
||||
if (w->selected_list_item > 0)
|
||||
if (w->selected_list_item > 0) {
|
||||
w->selected_list_item--;
|
||||
else if (w->selected_list_item > (sint16)_loadedTitleSequence->NumSaves)
|
||||
} else if (w->selected_list_item > (sint16)_loadedTitleSequence->NumSaves) {
|
||||
w->selected_list_item = (sint16)(_loadedTitleSequence->NumSaves - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case WIDX_TITLE_EDITOR_RENAME:
|
||||
defaultPreset *= 2; playing *= 2; commandEditorOpen *= 2;
|
||||
if (!defaultPreset && !playing && !commandEditorOpen) {
|
||||
if (w->selected_list_item != -1)
|
||||
if (!readOnly && !playing && !commandEditorOpen) {
|
||||
if (w->selected_list_item != -1) {
|
||||
window_text_input_open(w, widgetIndex, STR_FILEBROWSER_RENAME_SAVE_TITLE, STR_TITLE_EDITOR_ENTER_NAME_FOR_SAVE, STR_STRING, (uintptr_t)_loadedTitleSequence->Saves[w->selected_list_item], 52 - 1);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case WIDX_TITLE_EDITOR_LOAD:
|
||||
if (w->selected_list_item != -1) {
|
||||
utf8 path[MAX_PATH];
|
||||
if (str_is_null_or_empty(_loadedTitleSequence->Path)) {
|
||||
safe_strcpy(path, _loadedTitleSequence->Path, sizeof(path));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
// TODO: This should probably use a constant
|
||||
platform_get_user_directory(path, "title sequences", sizeof(path));
|
||||
safe_strcat_path(path, _loadedTitleSequence->Name, sizeof(path));
|
||||
@@ -362,35 +354,34 @@ static void window_title_editor_mouseup(rct_window *w, int widgetIndex)
|
||||
}
|
||||
break;
|
||||
case WIDX_TITLE_EDITOR_INSERT:
|
||||
defaultPreset *= 2; playing *= 2; commandEditorOpen *= 2;
|
||||
if (!defaultPreset && !playing && !commandEditorOpen) {
|
||||
if (w->selected_list_item != -1)
|
||||
if (!readOnly && !playing && !commandEditorOpen) {
|
||||
if (w->selected_list_item != -1) {
|
||||
window_title_command_editor_open(w->selected_list_item + 1, true);
|
||||
else
|
||||
} else {
|
||||
window_title_command_editor_open((int)_loadedTitleSequence->NumCommands, true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case WIDX_TITLE_EDITOR_EDIT:
|
||||
defaultPreset *= 2; playing *= 2; commandEditorOpen *= 2;
|
||||
if (!defaultPreset && !playing && !commandEditorOpen) {
|
||||
if (w->selected_list_item != -1 && w->selected_list_item < (sint16)_loadedTitleSequence->NumCommands)
|
||||
if (!readOnly && !playing && !commandEditorOpen) {
|
||||
if (w->selected_list_item != -1 && w->selected_list_item < (sint16)_loadedTitleSequence->NumCommands) {
|
||||
window_title_command_editor_open(w->selected_list_item, false);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case WIDX_TITLE_EDITOR_DELETE:
|
||||
defaultPreset *= 2; playing *= 2; commandEditorOpen *= 2;
|
||||
if (!defaultPreset && !playing && !commandEditorOpen) {
|
||||
if (!readOnly && !playing && !commandEditorOpen) {
|
||||
if (w->selected_list_item != -1 && w->selected_list_item < (sint16)_loadedTitleSequence->NumCommands) {
|
||||
title_sequence_delete_command(gCurrentTitleSequence, w->selected_list_item);
|
||||
if (w->selected_list_item > 0)
|
||||
if (w->selected_list_item > 0) {
|
||||
w->selected_list_item--;
|
||||
else if (w->selected_list_item >= (sint16)_loadedTitleSequence->NumCommands)
|
||||
} else if (w->selected_list_item >= (sint16)_loadedTitleSequence->NumCommands) {
|
||||
w->selected_list_item = (sint16)(_loadedTitleSequence->NumCommands - 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
/*case WIDX_TITLE_EDITOR_RELOAD:
|
||||
playing *= 2; commandEditorOpen *= 2;
|
||||
if (!playing && !commandEditorOpen) {
|
||||
//title_sequence_open
|
||||
}
|
||||
@@ -401,7 +392,7 @@ static void window_title_editor_mouseup(rct_window *w, int widgetIndex)
|
||||
gTitleScriptCommand = 0;
|
||||
}
|
||||
if (gTitleScriptCommand != w->selected_list_item) {
|
||||
for (i = gTitleScriptCommand + 1; i < (int)_loadedTitleSequence->NumCommands; i++) {
|
||||
for (int i = gTitleScriptCommand + 1; i < (int)_loadedTitleSequence->NumCommands; i++) {
|
||||
if (_loadedTitleSequence->Commands[i].Type == TITLE_SCRIPT_LOAD ||
|
||||
_loadedTitleSequence->Commands[i].Type == TITLE_SCRIPT_LOADMM) {
|
||||
gTitleScriptSkipLoad = i;
|
||||
@@ -415,8 +406,7 @@ static void window_title_editor_mouseup(rct_window *w, int widgetIndex)
|
||||
}
|
||||
break;
|
||||
case WIDX_TITLE_EDITOR_MOVE_DOWN:
|
||||
defaultPreset *= 2; playing *= 2; commandEditorOpen *= 2;
|
||||
if (!defaultPreset && !playing && !commandEditorOpen) {
|
||||
if (!readOnly && !playing && !commandEditorOpen) {
|
||||
if (w->selected_list_item != -1 && w->selected_list_item < (sint16)_loadedTitleSequence->NumCommands - 1) {
|
||||
title_sequence_move_down_command(gCurrentTitleSequence, w->selected_list_item);
|
||||
w->selected_list_item++;
|
||||
@@ -424,8 +414,7 @@ static void window_title_editor_mouseup(rct_window *w, int widgetIndex)
|
||||
}
|
||||
break;
|
||||
case WIDX_TITLE_EDITOR_MOVE_UP:
|
||||
defaultPreset *= 2; playing *= 2; commandEditorOpen *= 2;
|
||||
if (!defaultPreset && !playing && !commandEditorOpen) {
|
||||
if (!readOnly && !playing && !commandEditorOpen) {
|
||||
if (w->selected_list_item != -1 && w->selected_list_item > 0) {
|
||||
title_sequence_move_up_command(gCurrentTitleSequence, w->selected_list_item);
|
||||
w->selected_list_item--;
|
||||
@@ -446,6 +435,7 @@ static void window_title_editor_mouseup(rct_window *w, int widgetIndex)
|
||||
break;
|
||||
case WIDX_TITLE_EDITOR_SKIP:
|
||||
if (playing) {
|
||||
int i;
|
||||
for (i = gTitleScriptCommand; i < (int)_loadedTitleSequence->NumCommands; i++) {
|
||||
if (_loadedTitleSequence->Commands[i].Type == TITLE_SCRIPT_LOAD ||
|
||||
_loadedTitleSequence->Commands[i].Type == TITLE_SCRIPT_LOADMM
|
||||
@@ -469,107 +459,62 @@ static void window_title_editor_mouseup(rct_window *w, int widgetIndex)
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (defaultPreset == 2)
|
||||
if (readOnly == 2) {
|
||||
window_error_open(STR_ERROR_CANT_CHANGE_TITLE_SEQUENCE, STR_NONE);
|
||||
else if (commandEditorOpen == 2)
|
||||
} else if (commandEditorOpen == 2) {
|
||||
window_error_open(STR_TITLE_EDITOR_ERR_CANT_CHANGE_WHILE_EDITOR_IS_OPEN, STR_NONE);
|
||||
else if (playing == 2)
|
||||
} else if (playing == 2) {
|
||||
window_error_open(STR_TITLE_EDITOR_ERR_CANT_EDIT_WHILE_PLAYING, STR_TITLE_EDITOR_PRESS_STOP_TO_CONTINUE_EDITING);
|
||||
}
|
||||
}
|
||||
|
||||
static void window_title_editor_resize(rct_window *w)
|
||||
{
|
||||
if (w->selected_tab == WINDOW_TITLE_EDITOR_TAB_PRESETS) {
|
||||
w->min_width = WW;
|
||||
w->min_height = WH2;
|
||||
w->max_width = WW;
|
||||
w->max_height = WH2;
|
||||
|
||||
if (w->width < w->min_width) {
|
||||
w->width = w->min_width;
|
||||
gfx_invalidate_screen();
|
||||
}
|
||||
if (w->height < w->min_height) {
|
||||
w->height = w->min_height;
|
||||
gfx_invalidate_screen();
|
||||
}
|
||||
if (w->width > w->max_width) {
|
||||
w->width = w->max_width;
|
||||
gfx_invalidate_screen();
|
||||
}
|
||||
if (w->height > w->max_height) {
|
||||
w->height = w->max_height;
|
||||
gfx_invalidate_screen();
|
||||
}
|
||||
}
|
||||
else {
|
||||
w->min_width = WW;
|
||||
w->min_height = WH;
|
||||
w->max_width = 500;
|
||||
w->max_height = 580;
|
||||
|
||||
if (w->width < w->min_width) {
|
||||
w->width = w->min_width;
|
||||
window_invalidate(w);
|
||||
}
|
||||
if (w->height < w->min_height) {
|
||||
w->height = w->min_height;
|
||||
window_invalidate(w);
|
||||
}
|
||||
if (w->width > w->max_width) {
|
||||
w->width = w->max_width;
|
||||
window_invalidate(w);
|
||||
}
|
||||
if (w->height > w->max_height) {
|
||||
w->height = w->max_height;
|
||||
window_invalidate(w);
|
||||
}
|
||||
window_set_resize(w, WW, WH, WH2, WH2);
|
||||
} else {
|
||||
window_set_resize(w, WW, WH, 500, 580);
|
||||
}
|
||||
}
|
||||
|
||||
static void window_title_editor_mousedown(int widgetIndex, rct_window* w, rct_widget* widget)
|
||||
{
|
||||
short newSelectedTab;
|
||||
int num_items, i;
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_TITLE_EDITOR_PRESETS_TAB:
|
||||
case WIDX_TITLE_EDITOR_SAVES_TAB:
|
||||
case WIDX_TITLE_EDITOR_SCRIPT_TAB:
|
||||
newSelectedTab = widgetIndex - WIDX_TITLE_EDITOR_PRESETS_TAB;
|
||||
if (w->selected_tab == newSelectedTab)
|
||||
break;
|
||||
w->selected_tab = newSelectedTab;
|
||||
w->selected_list_item = -1;
|
||||
_window_title_editor_highlighted_index = -1;
|
||||
w->scrolls[0].v_top = 0;
|
||||
w->frame_no = 0;
|
||||
window_event_resize_call(w);
|
||||
window_invalidate(w);
|
||||
{
|
||||
int newSelectedTab = widgetIndex - WIDX_TITLE_EDITOR_PRESETS_TAB;
|
||||
if (w->selected_tab != newSelectedTab) {
|
||||
w->selected_tab = newSelectedTab;
|
||||
w->selected_list_item = -1;
|
||||
_window_title_editor_highlighted_index = -1;
|
||||
w->scrolls[0].v_top = 0;
|
||||
w->frame_no = 0;
|
||||
window_event_resize_call(w);
|
||||
window_invalidate(w);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case WIDX_TITLE_EDITOR_PRESETS_DROPDOWN:
|
||||
if (window_find_by_class(WC_TITLE_COMMAND_EDITOR) != NULL) {
|
||||
window_error_open(STR_TITLE_EDITOR_ERR_CANT_CHANGE_WHILE_EDITOR_IS_OPEN, STR_NONE);
|
||||
}
|
||||
else {
|
||||
num_items = (int)title_sequence_manager_get_count();
|
||||
|
||||
widget--;
|
||||
for (i = 0; i < num_items; i++) {
|
||||
} else {
|
||||
int numItems = (int)title_sequence_manager_get_count();
|
||||
for (int i = 0; i < numItems; i++) {
|
||||
gDropdownItemsFormat[i] = STR_OPTIONS_DROPDOWN_ITEM;
|
||||
gDropdownItemsArgs[i] = (uintptr_t)title_sequence_manager_get_name(i);
|
||||
}
|
||||
|
||||
widget--;
|
||||
window_dropdown_show_text_custom_width(
|
||||
w->x + widget->left,
|
||||
w->y + widget->top,
|
||||
widget->bottom - widget->top + 1,
|
||||
w->colours[1],
|
||||
DROPDOWN_FLAG_STAY_OPEN,
|
||||
num_items,
|
||||
widget->right - widget->left - 3
|
||||
);
|
||||
|
||||
numItems,
|
||||
widget->right - widget->left - 3);
|
||||
dropdown_set_checked(gCurrentTitleSequence, true);
|
||||
}
|
||||
break;
|
||||
@@ -593,8 +538,9 @@ static void window_title_editor_dropdown(rct_window *w, int widgetIndex, int dro
|
||||
static void window_title_editor_update(rct_window *w)
|
||||
{
|
||||
w->frame_no++;
|
||||
if (w->frame_no >= window_title_editor_tab_animation_loops[w->selected_tab])
|
||||
if (w->frame_no >= window_title_editor_tab_animation_loops[w->selected_tab]) {
|
||||
w->frame_no = 0;
|
||||
}
|
||||
|
||||
if (!widget_is_highlighted(w, WIDX_TITLE_EDITOR_LIST)) {
|
||||
_window_title_editor_highlighted_index = -1;
|
||||
@@ -607,15 +553,17 @@ static void window_title_editor_update(rct_window *w)
|
||||
static void window_title_editor_scrollgetsize(rct_window *w, int scrollIndex, int *width, int *height)
|
||||
{
|
||||
size_t lineCount = 1;
|
||||
if (w->selected_tab == WINDOW_TITLE_EDITOR_TAB_SAVES)
|
||||
if (w->selected_tab == WINDOW_TITLE_EDITOR_TAB_SAVES) {
|
||||
lineCount = _loadedTitleSequence->NumSaves;
|
||||
else if (w->selected_tab == WINDOW_TITLE_EDITOR_TAB_SCRIPT)
|
||||
} else if (w->selected_tab == WINDOW_TITLE_EDITOR_TAB_SCRIPT) {
|
||||
lineCount = _loadedTitleSequence->NumCommands;
|
||||
}
|
||||
|
||||
*height = (int)(lineCount * ROW_HEIGHT);
|
||||
int i = *height - window_title_editor_widgets[WIDX_TITLE_EDITOR_LIST].bottom + window_title_editor_widgets[WIDX_TITLE_EDITOR_LIST].top + 21;
|
||||
if (i < 0)
|
||||
if (i < 0) {
|
||||
i = 0;
|
||||
}
|
||||
if (i < w->scrolls[0].v_top) {
|
||||
w->scrolls[0].v_top = i;
|
||||
window_invalidate(w);
|
||||
@@ -626,9 +574,7 @@ static void window_title_editor_scrollgetsize(rct_window *w, int scrollIndex, in
|
||||
|
||||
static void window_title_editor_scrollmousedown(rct_window *w, int scrollIndex, int x, int y)
|
||||
{
|
||||
int index;
|
||||
|
||||
index = y / ROW_HEIGHT;
|
||||
int index = y / ROW_HEIGHT;
|
||||
w->selected_list_item = -1;
|
||||
switch (w->selected_tab) {
|
||||
case WINDOW_TITLE_EDITOR_TAB_SAVES:
|
||||
@@ -648,9 +594,7 @@ static void window_title_editor_scrollmousedown(rct_window *w, int scrollIndex,
|
||||
|
||||
static void window_title_editor_scrollmouseover(rct_window *w, int scrollIndex, int x, int y)
|
||||
{
|
||||
int index;
|
||||
|
||||
index = y / ROW_HEIGHT;
|
||||
int index = y / ROW_HEIGHT;
|
||||
switch (w->selected_tab) {
|
||||
case WINDOW_TITLE_EDITOR_TAB_SAVES:
|
||||
if (index < (int)_loadedTitleSequence->NumSaves)
|
||||
@@ -661,16 +605,14 @@ static void window_title_editor_scrollmouseover(rct_window *w, int scrollIndex,
|
||||
_window_title_editor_highlighted_index = (sint16)index;
|
||||
break;
|
||||
}
|
||||
// This check is disabled since for some reason it creates a problem with highlighting index 1
|
||||
//if (oldHighlightedIndex != _window_title_editor_highlighted_index) {
|
||||
widget_invalidate(w, WIDX_TITLE_EDITOR_LIST);
|
||||
//}
|
||||
}
|
||||
|
||||
static void window_title_editor_textinput(rct_window *w, int widgetIndex, char *text)
|
||||
{
|
||||
if (text == NULL || text[0] == 0)
|
||||
if (str_is_null_or_empty(text)) {
|
||||
return;
|
||||
}
|
||||
|
||||
switch (widgetIndex) {
|
||||
case WIDX_TITLE_EDITOR_NEW_BUTTON:
|
||||
@@ -680,21 +622,17 @@ static void window_title_editor_textinput(rct_window *w, int widgetIndex, char *
|
||||
if (!title_sequence_name_exists(text)) {
|
||||
if (widgetIndex == WIDX_TITLE_EDITOR_NEW_BUTTON) {
|
||||
title_sequence_create_preset(text);
|
||||
}
|
||||
else if (widgetIndex == WIDX_TITLE_EDITOR_DUPLICATE_BUTTON) {
|
||||
} else if (widgetIndex == WIDX_TITLE_EDITOR_DUPLICATE_BUTTON) {
|
||||
title_sequence_duplicate_preset(gCurrentTitleSequence, text);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
title_sequence_rename_preset(gCurrentTitleSequence, text);
|
||||
}
|
||||
config_save_default();
|
||||
window_invalidate(w);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
window_error_open(STR_ERROR_EXISTING_NAME, STR_NONE);
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
window_error_open(STR_ERROR_INVALID_CHARACTERS, STR_NONE);
|
||||
}
|
||||
break;
|
||||
@@ -704,12 +642,10 @@ static void window_title_editor_textinput(rct_window *w, int widgetIndex, char *
|
||||
title_sequence_rename_save(gCurrentTitleSequence, w->selected_list_item, text);
|
||||
TileSequenceSave(_loadedTitleSequence);
|
||||
window_invalidate(w);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
window_error_open(STR_ERROR_EXISTING_NAME, STR_NONE);
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
window_error_open(STR_ERROR_INVALID_CHARACTERS, STR_NONE);
|
||||
}
|
||||
break;
|
||||
@@ -811,19 +747,18 @@ static void window_title_editor_invalidate(rct_window *w)
|
||||
window_title_editor_widgets[WIDX_TITLE_EDITOR_SKIP].top = w->height - 32;
|
||||
window_title_editor_widgets[WIDX_TITLE_EDITOR_SKIP].bottom = w->height - 16;
|
||||
|
||||
int playing, inTitle;
|
||||
|
||||
playing = (gCurrentTitleSequence == gCurrentPreviewTitleSequence) && ((gScreenFlags & SCREEN_FLAGS_TITLE_DEMO) == SCREEN_FLAGS_TITLE_DEMO);
|
||||
inTitle = ((gScreenFlags & SCREEN_FLAGS_TITLE_DEMO) == SCREEN_FLAGS_TITLE_DEMO);
|
||||
|
||||
if (!inTitle)
|
||||
int playing = (gCurrentTitleSequence == gCurrentPreviewTitleSequence) && ((gScreenFlags & SCREEN_FLAGS_TITLE_DEMO) == SCREEN_FLAGS_TITLE_DEMO);
|
||||
int inTitle = ((gScreenFlags & SCREEN_FLAGS_TITLE_DEMO) == SCREEN_FLAGS_TITLE_DEMO);
|
||||
if (!inTitle) {
|
||||
w->disabled_widgets |= (1 << WIDX_TITLE_EDITOR_PLAY);
|
||||
else
|
||||
} else {
|
||||
w->disabled_widgets &= ~(1 << WIDX_TITLE_EDITOR_PLAY);
|
||||
if (!playing)
|
||||
}
|
||||
if (!playing) {
|
||||
w->disabled_widgets |= (1 << WIDX_TITLE_EDITOR_REPLAY) | (1 << WIDX_TITLE_EDITOR_STOP) | (1 << WIDX_TITLE_EDITOR_SKIP) | (1 << WIDX_TITLE_EDITOR_SKIP_TO);
|
||||
else
|
||||
} else {
|
||||
w->disabled_widgets &= ~((1 << WIDX_TITLE_EDITOR_REPLAY) | (1 << WIDX_TITLE_EDITOR_STOP) | (1 << WIDX_TITLE_EDITOR_SKIP) | (1 << WIDX_TITLE_EDITOR_SKIP_TO));
|
||||
}
|
||||
}
|
||||
|
||||
static void window_title_editor_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
@@ -835,7 +770,6 @@ static void window_title_editor_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
// Draw strings
|
||||
switch (w->selected_tab) {
|
||||
case WINDOW_TITLE_EDITOR_TAB_PRESETS:
|
||||
|
||||
set_format_arg(0, uintptr_t, _loadedTitleSequence->Name);
|
||||
gfx_draw_string_left(dpi, STR_TITLE_SEQUENCE, NULL, w->colours[1], w->x + 10, w->y + window_title_editor_widgets[WIDX_TITLE_EDITOR_PRESETS].top + 1);
|
||||
gfx_draw_string_left_clipped(
|
||||
@@ -845,15 +779,11 @@ static void window_title_editor_paint(rct_window *w, rct_drawpixelinfo *dpi)
|
||||
w->colours[1],
|
||||
w->x + window_title_editor_widgets[WIDX_TITLE_EDITOR_PRESETS].left + 1,
|
||||
w->y + window_title_editor_widgets[WIDX_TITLE_EDITOR_PRESETS].top,
|
||||
w->x + window_title_editor_widgets[WIDX_TITLE_EDITOR_PRESETS_DROPDOWN].left - window_title_editor_widgets[WIDX_TITLE_EDITOR_PRESETS].left - 4
|
||||
);
|
||||
|
||||
w->x + window_title_editor_widgets[WIDX_TITLE_EDITOR_PRESETS_DROPDOWN].left - window_title_editor_widgets[WIDX_TITLE_EDITOR_PRESETS].left - 4);
|
||||
break;
|
||||
case WINDOW_TITLE_EDITOR_TAB_SAVES:
|
||||
|
||||
break;
|
||||
case WINDOW_TITLE_EDITOR_TAB_SCRIPT:
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -991,20 +921,18 @@ static void window_title_editor_scrollpaint_commands(rct_window *w, rct_drawpixe
|
||||
|
||||
static void window_title_editor_draw_tab_images(rct_drawpixelinfo *dpi, rct_window *w)
|
||||
{
|
||||
int sprite_idx;
|
||||
int x, y;
|
||||
|
||||
for (int i = 0; i < WINDOW_TITLE_EDITOR_TAB_COUNT; i++) {
|
||||
x = 0;
|
||||
y = 0;
|
||||
sprite_idx = window_title_editor_tab_sprites[i];
|
||||
if (w->selected_tab == i)
|
||||
sprite_idx += w->frame_no / window_title_editor_tab_animation_divisor[w->selected_tab];
|
||||
int x = 0;
|
||||
int y = 0;
|
||||
int spriteId = window_title_editor_tab_sprites[i];
|
||||
if (w->selected_tab == i) {
|
||||
spriteId += w->frame_no / window_title_editor_tab_animation_divisor[w->selected_tab];
|
||||
}
|
||||
if (i == 1) {
|
||||
x = 4;
|
||||
y = 1;
|
||||
}
|
||||
gfx_draw_sprite(dpi, sprite_idx, w->x + w->widgets[WIDX_TITLE_EDITOR_PRESETS_TAB + i].left + x, w->y + w->widgets[WIDX_TITLE_EDITOR_PRESETS_TAB + i].top + y, 0);
|
||||
gfx_draw_sprite(dpi, spriteId, w->x + w->widgets[WIDX_TITLE_EDITOR_PRESETS_TAB + i].left + x, w->y + w->widgets[WIDX_TITLE_EDITOR_PRESETS_TAB + i].top + y, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user