diff --git a/source/Entity/Blip.cpp b/source/Entity/Blip.cpp index 970267ef..a679145c 100644 --- a/source/Entity/Blip.cpp +++ b/source/Entity/Blip.cpp @@ -51,9 +51,23 @@ const String & CBlip::GetTag() const } // ------------------------------------------------------------------------------------------------ -void CBlip::SetTag(CSStr tag) +void CBlip::SetTag(const StackStrF & tag) { - m_Tag.assign(tag); + if (tag.mLen > 0) + { + m_Tag.assign(tag.mPtr, tag.mLen); + } + else + { + m_Tag.clear(); + } +} + +// ------------------------------------------------------------------------------------------------ +CBlip & CBlip::ApplyTag(StackStrF & tag) +{ + SetTag(tag); + return *this; } // ------------------------------------------------------------------------------------------------ @@ -303,6 +317,7 @@ void Register_CBlip(HSQUIRRELVM vm) .Prop(_SC("Active"), &CBlip::IsActive) // Core Methods .Func(_SC("Bind"), &CBlip::BindEvent) + .FmtFunc(_SC("SetTag"), &CBlip::ApplyTag) .Func(_SC("CustomEvent"), &CBlip::CustomEvent) // Core Overloads .Overload< bool (CBlip::*)(void) >(_SC("Destroy"), &CBlip::Destroy) diff --git a/source/Entity/Blip.hpp b/source/Entity/Blip.hpp index 427d1356..ac90d1ed 100644 --- a/source/Entity/Blip.hpp +++ b/source/Entity/Blip.hpp @@ -119,7 +119,12 @@ public: /* -------------------------------------------------------------------------------------------- * Modify the associated user tag. */ - void SetTag(CSStr tag); + void SetTag(const StackStrF & tag); + + /* -------------------------------------------------------------------------------------------- + * Modify the associated user tag. + */ + CBlip & ApplyTag(StackStrF & tag); /* -------------------------------------------------------------------------------------------- * Retrieve the associated user data.