From 91cc414588548e7752fb707b4547f63db597aca1 Mon Sep 17 00:00:00 2001 From: dP Date: Tue, 2 Feb 2021 19:14:26 +0300 Subject: Feature: [GS] Allow non-question type windows to have no buttons --- src/script/api/game_changelog.hpp | 1 + src/script/api/script_goal.cpp | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'src/script/api') diff --git a/src/script/api/game_changelog.hpp b/src/script/api/game_changelog.hpp index edc588407..737adc7fc 100644 --- a/src/script/api/game_changelog.hpp +++ b/src/script/api/game_changelog.hpp @@ -38,6 +38,7 @@ * * Other changes: * \li GSCompany::ChangeBankBalance takes one extra parameter to refer to a location to show text effect on + * \li GSGoal::Question and GSGoal::QuestionClient no longer require to have any buttons except for the window type GSGoal.QT_QUESTION * * \b 1.10.0 * diff --git a/src/script/api/script_goal.cpp b/src/script/api/script_goal.cpp index ca2b16574..f1b75b032 100644 --- a/src/script/api/script_goal.cpp +++ b/src/script/api/script_goal.cpp @@ -115,9 +115,10 @@ EnforcePrecondition(false, question != nullptr); const char *text = question->GetEncodedText(); EnforcePreconditionEncodedText(false, text); - EnforcePrecondition(false, CountBits(buttons) >= 1 && CountBits(buttons) <= 3); + uint min_buttons = (type == QT_QUESTION ? 1 : 0); + EnforcePrecondition(false, CountBits(buttons) >= min_buttons && CountBits(buttons) <= 3); EnforcePrecondition(false, buttons < (1 << ::GOAL_QUESTION_BUTTON_COUNT)); - EnforcePrecondition(false, (int)type < ::GOAL_QUESTION_TYPE_COUNT); + EnforcePrecondition(false, (int)type < ::GQT_END); return ScriptObject::DoCommand(0, uniqueid | (target << 16), buttons | (type << 29) | (is_client ? (1 << 31) : 0), CMD_GOAL_QUESTION, text); } -- cgit v1.2.3-70-g09d2