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 };