Fix #7673: [Script] Allow removal of custom town text (#7834)

This commit is contained in:
glx22 2019-11-14 21:10:03 +01:00 committed by Charles Pigott
parent b533c66f42
commit 0bdbd509be
2 changed files with 7 additions and 5 deletions

View File

@ -58,9 +58,11 @@
{
CCountedPtr<Text> counter(text);
EnforcePrecondition(false, text != nullptr);
const char *encoded_text = text->GetEncodedText();
EnforcePreconditionEncodedText(false, encoded_text);
const char *encoded_text = nullptr;
if (text != nullptr) {
encoded_text = text->GetEncodedText();
EnforcePreconditionEncodedText(false, encoded_text);
}
EnforcePrecondition(false, IsValidTown(town_id));
return ScriptObject::DoCommand(::Town::Get(town_id)->xy, town_id, 0, CMD_TOWN_SET_TEXT, encoded_text);

View File

@ -146,7 +146,7 @@ public:
/**
* Rename a town.
* @param town_id The town to rename
* @param name The new name of the town. If nullptr or an empty string is passed, the town name will be reset to the default name.
* @param name The new name of the town. If null is passed, the town name will be reset to the default name.
* @pre IsValidTown(town_id).
* @return True if the action succeeded.
* @api -ai
@ -156,7 +156,7 @@ public:
/**
* Set the custom text of a town, shown in the GUI.
* @param town_id The town to set the custom text of.
* @param text The text to set it to (can be either a raw string, or a ScriptText object).
* @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 IsValidTown(town_id).
* @return True if the action succeeded.
* @api -ai