diff options
author | dP <dp@dpointer.org> | 2021-02-02 19:14:26 +0300 |
---|---|---|
committer | Loïc Guilloux <glx22@users.noreply.github.com> | 2021-02-14 23:21:43 +0100 |
commit | 91cc414588548e7752fb707b4547f63db597aca1 (patch) | |
tree | 22d5f6e1e66286a6e26bd93302bc4fe2f0be0501 /src/goal_gui.cpp | |
parent | 751f595bb674192f22d6d091bf68ad263b120c35 (diff) | |
download | openttd-91cc414588548e7752fb707b4547f63db597aca1.tar.xz |
Feature: [GS] Allow non-question type windows to have no buttons
Diffstat (limited to 'src/goal_gui.cpp')
-rw-r--r-- | src/goal_gui.cpp | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/src/goal_gui.cpp b/src/goal_gui.cpp index b51c488a1..86f73dd0b 100644 --- a/src/goal_gui.cpp +++ b/src/goal_gui.cpp @@ -375,10 +375,16 @@ struct GoalQuestionWindow : public Window { if (n == 3) break; } this->buttons = n; - assert(this->buttons > 0 && this->buttons < 4); + assert(this->buttons < 4); this->CreateNestedTree(); - this->GetWidget<NWidgetStacked>(WID_GQ_BUTTONS)->SetDisplayedPlane(this->buttons - 1); + if (this->buttons == 0) { + this->GetWidget<NWidgetStacked>(WID_GQ_BUTTONS)->SetDisplayedPlane(SZSP_HORIZONTAL); + this->GetWidget<NWidgetStacked>(WID_GQ_BUTTON_SPACER)->SetDisplayedPlane(SZSP_HORIZONTAL); + } else { + this->GetWidget<NWidgetStacked>(WID_GQ_BUTTONS)->SetDisplayedPlane(this->buttons - 1); + this->GetWidget<NWidgetStacked>(WID_GQ_BUTTON_SPACER)->SetDisplayedPlane(0); + } this->FinishInitNested(window_number); } @@ -463,7 +469,9 @@ static const NWidgetPart _nested_goal_question_widgets_question[] = { NWidget(WWT_PUSHTXTBTN, COLOUR_LIGHT_BLUE, WID_GQ_BUTTON_3), SetDataTip(STR_BLACK_STRING, STR_NULL), SetFill(1, 0), EndContainer(), EndContainer(), - NWidget(NWID_SPACER), SetMinimalSize(0, 8), + NWidget(NWID_SELECTION, INVALID_COLOUR, WID_GQ_BUTTON_SPACER), + NWidget(NWID_SPACER), SetMinimalSize(0, 8), + EndContainer(), EndContainer(), }; @@ -488,7 +496,9 @@ static const NWidgetPart _nested_goal_question_widgets_info[] = { NWidget(WWT_PUSHTXTBTN, COLOUR_LIGHT_BLUE, WID_GQ_BUTTON_3), SetDataTip(STR_BLACK_STRING, STR_NULL), SetFill(1, 0), EndContainer(), EndContainer(), - NWidget(NWID_SPACER), SetMinimalSize(0, 8), + NWidget(NWID_SELECTION, INVALID_COLOUR, WID_GQ_BUTTON_SPACER), + NWidget(NWID_SPACER), SetMinimalSize(0, 8), + EndContainer(), EndContainer(), }; @@ -513,7 +523,9 @@ static const NWidgetPart _nested_goal_question_widgets_warning[] = { NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_GQ_BUTTON_3), SetDataTip(STR_BLACK_STRING, STR_NULL), SetFill(1, 0), EndContainer(), EndContainer(), - NWidget(NWID_SPACER), SetMinimalSize(0, 8), + NWidget(NWID_SELECTION, INVALID_COLOUR, WID_GQ_BUTTON_SPACER), + NWidget(NWID_SPACER), SetMinimalSize(0, 8), + EndContainer(), EndContainer(), }; @@ -538,7 +550,9 @@ static const NWidgetPart _nested_goal_question_widgets_error[] = { NWidget(WWT_PUSHTXTBTN, COLOUR_YELLOW, WID_GQ_BUTTON_3), SetDataTip(STR_BLACK_STRING, STR_NULL), SetFill(1, 0), EndContainer(), EndContainer(), - NWidget(NWID_SPACER), SetMinimalSize(0, 8), + NWidget(NWID_SELECTION, INVALID_COLOUR, WID_GQ_BUTTON_SPACER), + NWidget(NWID_SPACER), SetMinimalSize(0, 8), + EndContainer(), EndContainer(), }; @@ -578,6 +592,6 @@ static WindowDesc _goal_question_list_desc[] = { */ void ShowGoalQuestion(uint16 id, byte type, uint32 button_mask, const char *question) { - assert(type < GOAL_QUESTION_TYPE_COUNT); + assert(type < GQT_END); new GoalQuestionWindow(&_goal_question_list_desc[type], id, type == 3 ? TC_WHITE : TC_BLACK, button_mask, question); } |