diff options
author | truebrain <truebrain@openttd.org> | 2011-12-19 21:06:06 +0000 |
---|---|---|
committer | truebrain <truebrain@openttd.org> | 2011-12-19 21:06:06 +0000 |
commit | 102f811d0277afefe5c90762c0c4cc11ab69713c (patch) | |
tree | 1c7343e8031eab2c764cff974bd9df9a814c3dd9 /src/script/api/script_sign.cpp | |
parent | b0ac529a6ff4e087520a14d2a0169f445952e7e0 (diff) | |
download | openttd-102f811d0277afefe5c90762c0c4cc11ab69713c.tar.xz |
(svn r23636) -Add: introduce ScriptText in parameters where it can be used
Diffstat (limited to 'src/script/api/script_sign.cpp')
-rw-r--r-- | src/script/api/script_sign.cpp | 18 |
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); |