From bab7de6cf23dce124ef8b1e284d0d1f3996dc8b8 Mon Sep 17 00:00:00 2001 From: dP Date: Fri, 15 Jan 2021 17:38:14 +0300 Subject: Feature: Allow GameScripts to add additional text to Industry view window --- src/script/api/game_changelog.hpp | 1 + src/script/api/script_industry.cpp | 15 +++++++++++++++ src/script/api/script_industry.hpp | 10 ++++++++++ 3 files changed, 26 insertions(+) (limited to 'src/script/api') diff --git a/src/script/api/game_changelog.hpp b/src/script/api/game_changelog.hpp index 82f0c0523..edc588407 100644 --- a/src/script/api/game_changelog.hpp +++ b/src/script/api/game_changelog.hpp @@ -30,6 +30,7 @@ * \li GSIndustry::SetControlFlags * \li GSIndustry::SetExclusiveConsumer * \li GSIndustry::SetExclusiveSupplier + * \li GSIndustry::SetText * \li GSStoryPage::MakePushButtonReference * \li GSStoryPage::MakeTileButtonReference * \li GSStoryPage::MakeVehicleButtonReference diff --git a/src/script/api/script_industry.cpp b/src/script/api/script_industry.cpp index 14ba8e402..0a5ca98d3 100644 --- a/src/script/api/script_industry.cpp +++ b/src/script/api/script_industry.cpp @@ -15,6 +15,7 @@ #include "script_map.hpp" #include "../../company_base.h" #include "../../industry.h" +#include "../../string_func.h" #include "../../strings_func.h" #include "../../station_base.h" #include "../../newgrf_industries.h" @@ -47,6 +48,20 @@ return GetString(STR_INDUSTRY_NAME); } +/* static */ bool ScriptIndustry::SetText(IndustryID industry_id, Text *text) +{ + CCountedPtr counter(text); + + const char *encoded_text = nullptr; + if (text != nullptr) { + encoded_text = text->GetEncodedText(); + EnforcePreconditionEncodedText(false, encoded_text); + } + EnforcePrecondition(false, IsValidIndustry(industry_id)); + + return ScriptObject::DoCommand(0, industry_id, static_cast(IndustryAction::SetText), CMD_INDUSTRY_CTRL, encoded_text); +} + /* static */ ScriptIndustry::CargoAcceptState ScriptIndustry::IsCargoAccepted(IndustryID industry_id, CargoID cargo_id) { if (!IsValidIndustry(industry_id)) return CAS_NOT_ACCEPTED; diff --git a/src/script/api/script_industry.hpp b/src/script/api/script_industry.hpp index dac3d32fd..95133da0e 100644 --- a/src/script/api/script_industry.hpp +++ b/src/script/api/script_industry.hpp @@ -81,6 +81,16 @@ public: */ static char *GetName(IndustryID industry_id); + /** + * Set the custom text of an industry, shown in the GUI. + * @param industry_id The industry to set the custom text of. + * @param text The text to set it to (can be either a raw string, or a ScriptText object). If null is passed, the text will be removed. + * @pre IsValidIndustry(industry_id). + * @return True if the action succeeded. + * @api -ai + */ + static bool SetText(IndustryID industry_id, Text *text); + /** * See whether an industry currently accepts a certain cargo. * @param industry_id The index of the industry. -- cgit v1.2.3-70-g09d2