It does the same thing in Pawn, so you don't see a difference.
The module is written differently, but the byref function makes no sense to even exist.
Code:
//get a byvalue parameter
//get_param(num)
static cell AMX_NATIVE_CALL get_param(AMX *amx, cell *params)
{
if (!g_pCurNative || (g_pCurNative->amx != amx))
{
LogError(amx, AMX_ERR_NATIVE, "Not currently in a dynamic native");
return 0;
}
if (g_pCurNative->style)
{
LogError(amx, AMX_ERR_NATIVE, "Wrong style of dynamic native");
return 0;
}
//get parameter index to read from
int p = params[1];
//return value from the stored params in the function (new memory space)
return g_Params[p];
}
//get_param_byref(num)
static cell AMX_NATIVE_CALL get_param_byref(AMX *amx, cell *params)
{
if (!g_pCurNative || (g_pCurNative->amx != amx))
{
LogError(amx, AMX_ERR_NATIVE, "Not currently in a dynamic native");
return 0;
}
if (g_pCurNative->style)
{
LogError(amx, AMX_ERR_NATIVE, "Wrong style of dynamic native");
return 0;
}
//get parameter index to read from
int p = params[1];
//get the memory address of the variable
cell *addr = get_amxaddr(g_pCaller, g_Params[p]);
//return the value from the memory address
return addr[0];
}
__________________