From 86c033a9223cde184e17b8b06965bd1b0d2d6537 Mon Sep 17 00:00:00 2001 From: David Anderson Date: Fri, 6 Jan 2006 14:47:59 +0000 Subject: [PATCH] gab gab --- amxmodx/amxmodx.cpp | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/amxmodx/amxmodx.cpp b/amxmodx/amxmodx.cpp index 472e078b..749362dc 100755 --- a/amxmodx/amxmodx.cpp +++ b/amxmodx/amxmodx.cpp @@ -3661,7 +3661,7 @@ static cell AMX_NATIVE_CALL set_fail_state(AMX *amx, cell *params) return 0; } -static cell AMX_NATIVE_CALL amx_var_addr(AMX *amx, cell *params) +static cell AMX_NATIVE_CALL get_var_addr(AMX *amx, cell *params) { if (params[0] / sizeof(cell) > 0) { @@ -3671,7 +3671,7 @@ static cell AMX_NATIVE_CALL amx_var_addr(AMX *amx, cell *params) return 0; } -static cell AMX_NATIVE_CALL amx_addr_val(AMX *amx, cell *params) +static cell AMX_NATIVE_CALL get_addr_val(AMX *amx, cell *params) { cell *addr; int err; @@ -3685,11 +3685,29 @@ static cell AMX_NATIVE_CALL amx_addr_val(AMX *amx, cell *params) return addr ? *addr : 0; } +static cell AMX_NATIVE_CALL set_addr_val(AMX *amx, cell *params) +{ + cell *addr; + int err; + + if ( (err=amx_GetAddr(amx, params[1], &addr)) != AMX_ERR_NONE ) + { + LogError(amx, err, "Bad reference %d supplied", params[1]); + return 0; + } + + if (addr) + *addr = params[2]; + + return 1; +} + AMX_NATIVE_INFO amxmodx_Natives[] = { {"abort", amx_abort}, - {"amx_addr_val", amx_addr_val}, - {"amx_var_addr", amx_var_addr}, + {"get_addr_val", get_addr_val}, + {"get_var_addr", get_var_addr}, + {"set_addr_val", set_addr_val}, {"callfunc_begin", callfunc_begin}, {"callfunc_begin_i", callfunc_begin_i}, {"callfunc_end", callfunc_end},