core/sourcemod.cpp
changeset 180 fe406c5f2aeb
parent 177 d29ade52d953
child 183 78488edd8873
     1.1 --- a/core/sourcemod.cpp	Sun Nov 12 00:40:58 2006 +0000
     1.2 +++ b/core/sourcemod.cpp	Sun Nov 12 01:06:17 2006 +0000
     1.3 @@ -5,6 +5,7 @@
     1.4  #include "vm/sp_vm_engine.h"
     1.5  #include <sh_string.h>
     1.6  #include "PluginSys.h"
     1.7 +#include "ForwardSys.h"
     1.8  
     1.9  SourcePawnEngine g_SourcePawn;
    1.10  SourceModBase g_SourceMod;
    1.11 @@ -111,17 +112,21 @@
    1.12  		return false;
    1.13  	}
    1.14  
    1.15 -#if 0
    1.16  	g_SMAPI->PathFormat(file, sizeof(file), "%s/addons/sourcemod/plugins/test.smx", g_BaseDir.c_str());
    1.17  	IPlugin *pPlugin = g_PluginMngr.LoadPlugin(file, false, PluginType_Global, error, err_max);
    1.18  	IPluginFunction *func = pPlugin->GetFunctionByName("Test");
    1.19 +	IPluginFunction *func2 = pPlugin->GetFunctionByName("Test2");
    1.20  	cell_t result = 2;
    1.21  	cell_t val = 6;
    1.22 -	func->PushCell(1);
    1.23 -	func->PushCellByRef(&val, SMFUNC_COPYBACK_ONCE);
    1.24 -	func->Execute(&result, NULL);
    1.25 +	ParamType types[] = {Param_Cell, Param_CellByRef};
    1.26 +	va_list ap = va_start(ap, late);
    1.27 +	CForward *fwd = CForward::CreateForward(NULL, ET_Custom, 2, types, ap);
    1.28 +	fwd->AddFunction(func);
    1.29 +	fwd->AddFunction(func2);
    1.30 +	fwd->PushCell(1);
    1.31 +	fwd->PushCellByRef(&val, SMFUNC_COPYBACK_ALWAYS);
    1.32 +	fwd->Execute(&result, NULL);
    1.33  	g_PluginMngr.UnloadPlugin(pPlugin);
    1.34 -#endif
    1.35  
    1.36  	return true;
    1.37  }