summaryrefslogtreecommitdiff
path: root/src/script/api/script_sign.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/script/api/script_sign.cpp')
-rw-r--r--src/script/api/script_sign.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/script/api/script_sign.cpp b/src/script/api/script_sign.cpp
index b5b8dacbc..352bb185e 100644
--- a/src/script/api/script_sign.cpp
+++ b/src/script/api/script_sign.cpp
@@ -33,13 +33,17 @@
return static_cast<ScriptCompany::CompanyID>((int)::Sign::Get(sign_id)->owner);
}
-/* static */ bool ScriptSign::SetName(SignID sign_id, const char *name)
+/* static */ bool ScriptSign::SetName(SignID sign_id, Text *name)
{
+ CCountedPtr<Text> counter(name);
+
EnforcePrecondition(false, IsValidSign(sign_id));
- EnforcePrecondition(false, !::StrEmpty(name));
- EnforcePreconditionCustomError(false, ::Utf8StringLength(name) < MAX_LENGTH_SIGN_NAME_CHARS, ScriptError::ERR_PRECONDITION_STRING_TOO_LONG);
+ EnforcePrecondition(false, name != NULL);
+ const char *text = name->GetEncodedText();
+ EnforcePrecondition(false, !::StrEmpty(text));
+ EnforcePreconditionCustomError(false, ::Utf8StringLength(text) < MAX_LENGTH_SIGN_NAME_CHARS, ScriptError::ERR_PRECONDITION_STRING_TOO_LONG);
- return ScriptObject::DoCommand(0, sign_id, 0, CMD_RENAME_SIGN, name);
+ return ScriptObject::DoCommand(0, sign_id, 0, CMD_RENAME_SIGN, text);
}
/* static */ char *ScriptSign::GetName(SignID sign_id)
@@ -69,9 +73,13 @@
return ScriptObject::DoCommand(0, sign_id, 0, CMD_RENAME_SIGN, "");
}
-/* static */ SignID ScriptSign::BuildSign(TileIndex location, const char *text)
+/* static */ SignID ScriptSign::BuildSign(TileIndex location, Text *name)
{
+ CCountedPtr<Text> counter(name);
+
EnforcePrecondition(INVALID_SIGN, ::IsValidTile(location));
+ EnforcePrecondition(INVALID_SIGN, name != NULL);
+ const char *text = name->GetEncodedText();
EnforcePrecondition(INVALID_SIGN, !::StrEmpty(text));
EnforcePreconditionCustomError(INVALID_SIGN, ::Utf8StringLength(text) < MAX_LENGTH_SIGN_NAME_CHARS, ScriptError::ERR_PRECONDITION_STRING_TOO_LONG);