mirror of
				https://github.com/VCMP-SqMod/SqMod.git
				synced 2025-11-04 08:17:19 +01:00 
			
		
		
		
	Implement function to retrieve all active textdraws.
This commit is contained in:
		@@ -430,6 +430,7 @@ static const Object & Textdraw_FindByID(Int32 id)
 | 
			
		||||
    return NullObject();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ------------------------------------------------------------------------------------------------
 | 
			
		||||
static const Object & Textdraw_FindByTag(CSStr tag)
 | 
			
		||||
{
 | 
			
		||||
    // Perform a validity check on the specified tag
 | 
			
		||||
@@ -453,6 +454,35 @@ static const Object & Textdraw_FindByTag(CSStr tag)
 | 
			
		||||
    return NullObject();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ------------------------------------------------------------------------------------------------
 | 
			
		||||
static Array Textdraw_FindActive()
 | 
			
		||||
{
 | 
			
		||||
    // Remember the initial stack size
 | 
			
		||||
    StackGuard sg;
 | 
			
		||||
    // Obtain the ends of the entity pool
 | 
			
		||||
    Core::Textdraws::const_iterator itr = _Core->GetTextdraws().cbegin();
 | 
			
		||||
    Core::Textdraws::const_iterator end = _Core->GetTextdraws().cend();
 | 
			
		||||
    // Allocate an empty array on the stack
 | 
			
		||||
    sq_newarray(DefaultVM::Get(), 0);
 | 
			
		||||
    // Process each entity in the pool
 | 
			
		||||
    for (; itr != end; ++itr)
 | 
			
		||||
    {
 | 
			
		||||
        // Is this entity instance active?
 | 
			
		||||
        if (VALID_ENTITY(itr->mID))
 | 
			
		||||
        {
 | 
			
		||||
            // Push the script object on the stack
 | 
			
		||||
            sq_pushobject(DefaultVM::Get(), (HSQOBJECT &)((*itr).mObj));
 | 
			
		||||
            // Append the object at the back of the array
 | 
			
		||||
            if (SQ_FAILED(sq_arrayappend(DefaultVM::Get(), -1)))
 | 
			
		||||
            {
 | 
			
		||||
                STHROWF("Unable to append entity instance to the list");
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    // Return the array at the top of the stack
 | 
			
		||||
    return Var< Array >(DefaultVM::Get(), -1).value;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// ================================================================================================
 | 
			
		||||
void Register_CTextdraw(HSQUIRRELVM vm)
 | 
			
		||||
{
 | 
			
		||||
@@ -508,6 +538,7 @@ void Register_CTextdraw(HSQUIRRELVM vm)
 | 
			
		||||
        // Static Functions
 | 
			
		||||
        .StaticFunc(_SC("FindByID"), &Textdraw_FindByID)
 | 
			
		||||
        .StaticFunc(_SC("FindByTag"), &Textdraw_FindByTag)
 | 
			
		||||
        .StaticFunc(_SC("FindActive"), &Textdraw_FindActive)
 | 
			
		||||
        // Static Overloads
 | 
			
		||||
        .StaticOverload< Object & (*)(CSStr, Int32, Int32, Uint8, Uint8, Uint8, Uint8, bool) >
 | 
			
		||||
            (_SC("CreateEx"), &Textdraw_CreateEx)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user