Feature: Allow GameScripts to add additional text to Industry view window

This commit is contained in:
dP
2021-01-15 17:38:14 +03:00
committed by Charles Pigott
parent 4b42ecb0f6
commit bab7de6cf2
9 changed files with 60 additions and 11 deletions

View File

@@ -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

View File

@@ -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<Text> 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<uint32>(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;

View File

@@ -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.