extensions/sdktools/vnatives.cpp
changeset 1504 312c2e8934b1
parent 1428 1ceceba15864
child 1515 3e112467aacd
     1.1 --- a/extensions/sdktools/vnatives.cpp	Sat Sep 29 22:11:21 2007 +0000
     1.2 +++ b/extensions/sdktools/vnatives.cpp	Sat Sep 29 22:26:36 2007 +0000
     1.3 @@ -699,6 +699,87 @@
     1.4  	return (ret == -1) ? 0 : 1;
     1.5  }
     1.6  
     1.7 +static cell_t DispatchKeyValue(IPluginContext *pContext, const cell_t *params)
     1.8 +{
     1.9 +	static ValveCall *pCall = NULL;
    1.10 +	if (!pCall)
    1.11 +	{
    1.12 +		ValvePassInfo pass[3];
    1.13 +		InitPass(pass[0], Valve_String, PassType_Basic, PASSFLAG_BYVAL);
    1.14 +		InitPass(pass[1], Valve_String, PassType_Basic, PASSFLAG_BYVAL);
    1.15 +		InitPass(pass[2], Valve_Bool, PassType_Basic, PASSFLAG_BYVAL);
    1.16 +		if (!CreateBaseCall("DispatchKeyValue", ValveCall_Entity, &pass[2], pass, 2, &pCall))
    1.17 +		{
    1.18 +			return pContext->ThrowNativeError("\"DispatchKeyValue\" not supported by this mod");
    1.19 +		} else if (!pCall) {
    1.20 +			return pContext->ThrowNativeError("\"DispatchKeyValue\" wrapper failed to initialized");
    1.21 +		}
    1.22 +	}
    1.23 +
    1.24 +	bool ret;
    1.25 +	START_CALL();
    1.26 +	DECODE_VALVE_PARAM(1, thisinfo, 0);
    1.27 +	DECODE_VALVE_PARAM(2, vparams, 0);
    1.28 +	DECODE_VALVE_PARAM(3, vparams, 1);
    1.29 +	FINISH_CALL_SIMPLE(&ret);
    1.30 +
    1.31 +	return (ret) ? 1 : 0;
    1.32 +}
    1.33 +
    1.34 +static cell_t DispatchKeyValueFloat(IPluginContext *pContext, const cell_t *params)
    1.35 +{
    1.36 +	static ValveCall *pCall = NULL;
    1.37 +	if (!pCall)
    1.38 +	{
    1.39 +		ValvePassInfo pass[3];
    1.40 +		InitPass(pass[0], Valve_String, PassType_Basic, PASSFLAG_BYVAL);
    1.41 +		InitPass(pass[1], Valve_Float, PassType_Basic, PASSFLAG_BYVAL);
    1.42 +		InitPass(pass[2], Valve_Bool, PassType_Basic, PASSFLAG_BYVAL);
    1.43 +		if (!CreateBaseCall("DispatchKeyValueFloat", ValveCall_Entity, &pass[2], pass, 2, &pCall))
    1.44 +		{
    1.45 +			return pContext->ThrowNativeError("\"DispatchKeyValueFloat\" not supported by this mod");
    1.46 +		} else if (!pCall) {
    1.47 +			return pContext->ThrowNativeError("\"DispatchKeyValueFloat\" wrapper failed to initialized");
    1.48 +		}
    1.49 +	}
    1.50 +
    1.51 +	bool ret;
    1.52 +	START_CALL();
    1.53 +	DECODE_VALVE_PARAM(1, thisinfo, 0);
    1.54 +	DECODE_VALVE_PARAM(2, vparams, 0);
    1.55 +	DECODE_VALVE_PARAM(3, vparams, 1);
    1.56 +	FINISH_CALL_SIMPLE(&ret);
    1.57 +
    1.58 +	return (ret) ? 1 : 0;
    1.59 +}
    1.60 +
    1.61 +static cell_t DispatchKeyValueVector(IPluginContext *pContext, const cell_t *params)
    1.62 +{
    1.63 +	static ValveCall *pCall = NULL;
    1.64 +	if (!pCall)
    1.65 +	{
    1.66 +		ValvePassInfo pass[3];
    1.67 +		InitPass(pass[0], Valve_String, PassType_Basic, PASSFLAG_BYVAL);
    1.68 +		InitPass(pass[1], Valve_Vector, PassType_Basic, PASSFLAG_BYVAL);
    1.69 +		InitPass(pass[2], Valve_Bool, PassType_Basic, PASSFLAG_BYVAL);
    1.70 +		if (!CreateBaseCall("DispatchKeyValueVector", ValveCall_Entity, &pass[2], pass, 2, &pCall))
    1.71 +		{
    1.72 +			return pContext->ThrowNativeError("\"DispatchKeyValueVector\" not supported by this mod");
    1.73 +		} else if (!pCall) {
    1.74 +			return pContext->ThrowNativeError("\"DispatchKeyValueVector\" wrapper failed to initialized");
    1.75 +		}
    1.76 +	}
    1.77 +
    1.78 +	bool ret;
    1.79 +	START_CALL();
    1.80 +	DECODE_VALVE_PARAM(1, thisinfo, 0);
    1.81 +	DECODE_VALVE_PARAM(2, vparams, 0);
    1.82 +	DECODE_VALVE_PARAM(3, vparams, 1);
    1.83 +	FINISH_CALL_SIMPLE(&ret);
    1.84 +
    1.85 +	return (ret) ? 1 : 0;
    1.86 +}
    1.87 +
    1.88  sp_nativeinfo_t g_Natives[] = 
    1.89  {
    1.90  	{"ExtinguishPlayer",		ExtinguishEntity},
    1.91 @@ -720,5 +801,8 @@
    1.92  	{"IsPlayerAlive",			IsPlayerAlive},
    1.93  	{"CreateEntityByName",		CreateEntityByName},
    1.94  	{"DispatchSpawn",			DispatchSpawn},
    1.95 +	{"DispatchKeyValue",		DispatchKeyValue},
    1.96 +	{"DispatchKeyValueFloat",	DispatchKeyValueFloat},
    1.97 +	{"DispatchKeyValueVector",	DispatchKeyValueVector},
    1.98  	{NULL,						NULL},
    1.99  };