mirror of
				https://github.com/VCMP-SqMod/SqMod.git
				synced 2025-11-04 00:07:19 +01:00 
			
		
		
		
	Make the function environment optional in global callbacks.
This commit is contained in:
		@@ -525,6 +525,28 @@ void Core::CompilerErrorHandler(HSQUIRRELVM /*vm*/, CSStr desc, CSStr src, SQInt
 | 
				
			|||||||
    LogFtl("Message: %s\n[\n=>Location: %s\n=>Line: %d\n=>Column: %d\n]", desc, src, line, column);
 | 
					    LogFtl("Message: %s\n[\n=>Location: %s\n=>Line: %d\n=>Column: %d\n]", desc, src, line, column);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// ------------------------------------------------------------------------------------------------
 | 
				
			||||||
 | 
					void Core::BindEvent(Int32 id, Object & env, Function & func)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    // Obtain the function instance called for this event
 | 
				
			||||||
 | 
					    Function & event = GetEvent(id);
 | 
				
			||||||
 | 
					    // Is the specified callback function null?
 | 
				
			||||||
 | 
					    if (func.IsNull())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        event.Release(); // Then release the current callback
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    // Does this function need a custom environment?
 | 
				
			||||||
 | 
					    else if (env.IsNull())
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        event = func;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    // Assign the specified environment and function
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        event = Function(env.GetVM(), env, func.GetFunc());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ------------------------------------------------------------------------------------------------
 | 
					// ------------------------------------------------------------------------------------------------
 | 
				
			||||||
Core::BlipInst::~BlipInst()
 | 
					Core::BlipInst::~BlipInst()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -860,23 +860,6 @@ bool Core::DelVehicle(Int32 id, Int32 header, Object & payload)
 | 
				
			|||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// ------------------------------------------------------------------------------------------------
 | 
					 | 
				
			||||||
void Core::BindEvent(Int32 id, Object & env, Function & func)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    // Obtain the function instance called for this event
 | 
					 | 
				
			||||||
    Function & event = GetEvent(id);
 | 
					 | 
				
			||||||
    // Is the specified callback function null?
 | 
					 | 
				
			||||||
    if (func.IsNull())
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        event.Release(); // Then release the current callback
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    // Assign the specified environment and function
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        event = Function(env.GetVM(), env, func.GetFunc());
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// --------------------------------------------------------------------------------------------
 | 
					// --------------------------------------------------------------------------------------------
 | 
				
			||||||
void Core::ConnectPlayer(Int32 id, Int32 header, Object & payload)
 | 
					void Core::ConnectPlayer(Int32 id, Int32 header, Object & payload)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user