/// @addtogroup nwnx NWNX /// @brief Functions for plugin developers. /// @{ /// @file nwnx.nss /// @brief Scripting interface to NWNX. /// @param pluginName The plugin name. /// @param functionName The function name (do not include NWNX_Plugin_). void NWNX_CallFunction(string pluginName, string functionName); /// @brief Pushes the specified type to the c++ side /// @param pluginName The plugin name. /// @param functionName The function name (do not include NWNX_Plugin_). /// @param value The value of specified type to push. void NWNX_PushArgumentInt(string pluginName, string functionName, int value); /// @copydoc NWNX_PushArgumentInt() void NWNX_PushArgumentFloat(string pluginName, string functionName, float value); /// @copydoc NWNX_PushArgumentInt() void NWNX_PushArgumentObject(string pluginName, string functionName, object value); /// @copydoc NWNX_PushArgumentInt() void NWNX_PushArgumentString(string pluginName, string functionName, string value); /// @copydoc NWNX_PushArgumentInt() void NWNX_PushArgumentEffect(string pluginName, string functionName, effect value); /// @copydoc NWNX_PushArgumentInt() void NWNX_PushArgumentItemProperty(string pluginName, string functionName, itemproperty value); /// @brief Returns the specified type from the c++ side /// @param pluginName The plugin name. /// @param functionName The function name (do not include NWNX_Plugin_). /// @return The value of specified type. int NWNX_GetReturnValueInt(string pluginName, string functionName); /// @copydoc NWNX_GetReturnValueInt() float NWNX_GetReturnValueFloat(string pluginName, string functionName); /// @copydoc NWNX_GetReturnValueInt() object NWNX_GetReturnValueObject(string pluginName, string functionName); /// @copydoc NWNX_GetReturnValueInt() string NWNX_GetReturnValueString(string pluginName, string functionName); /// @copydoc NWNX_GetReturnValueInt() effect NWNX_GetReturnValueEffect(string pluginName, string functionName); /// @copydoc NWNX_GetReturnValueInt() itemproperty NWNX_GetReturnValueItemProperty(string pluginName, string functionName); /// @private string NWNX_INTERNAL_BuildString(string pluginName, string functionName, string operation) { return "NWNXEE!ABIv2!" + pluginName + "!" + functionName + "!" + operation; } /// @} void NWNX_CallFunction(string pluginName, string functionName) { PlaySound(NWNX_INTERNAL_BuildString(pluginName, functionName, "CALL")); } void NWNX_PushArgumentInt(string pluginName, string functionName, int value) { SetLocalInt(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "PUSH"), value); } void NWNX_PushArgumentFloat(string pluginName, string functionName, float value) { SetLocalFloat(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "PUSH"), value); } void NWNX_PushArgumentObject(string pluginName, string functionName, object value) { SetLocalObject(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "PUSH"), value); } void NWNX_PushArgumentString(string pluginName, string functionName, string value) { SetLocalString(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "PUSH"), value); } void NWNX_PushArgumentEffect(string pluginName, string functionName, effect value) { TagEffect(value, NWNX_INTERNAL_BuildString(pluginName, functionName, "PUSH")); } void NWNX_PushArgumentItemProperty(string pluginName, string functionName, itemproperty value) { TagItemProperty(value, NWNX_INTERNAL_BuildString(pluginName, functionName, "PUSH")); } int NWNX_GetReturnValueInt(string pluginName, string functionName) { return GetLocalInt(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "POP")); } float NWNX_GetReturnValueFloat(string pluginName, string functionName) { return GetLocalFloat(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "POP")); } object NWNX_GetReturnValueObject(string pluginName, string functionName) { return GetLocalObject(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "POP")); } string NWNX_GetReturnValueString(string pluginName, string functionName) { return GetLocalString(OBJECT_INVALID, NWNX_INTERNAL_BuildString(pluginName, functionName, "POP")); } effect NWNX_GetReturnValueEffect(string pluginName, string functionName) { effect e; return TagEffect(e, NWNX_INTERNAL_BuildString(pluginName, functionName, "POP")); } itemproperty NWNX_GetReturnValueItemProperty(string pluginName, string functionName) { itemproperty ip; return TagItemProperty(ip, NWNX_INTERNAL_BuildString(pluginName, functionName, "POP")); }