2
0
mirror of https://github.com/rehlds/reapi.git synced 2025-03-13 14:00:19 +03:00

Fix set_pmove/get_pmove natives. Related #119

This commit is contained in:
s1lent 2019-09-03 20:28:33 +07:00
parent bba0631fbe
commit 31cea91e40
No known key found for this signature in database
GPG Key ID: 0FE401DC73916B5C

View File

@ -297,7 +297,7 @@ cell AMX_NATIVE_CALL set_pmove(AMX *amx, cell *params)
} }
cell* value = getAmxAddr(amx, params[arg_value]); cell* value = getAmxAddr(amx, params[arg_value]);
size_t element = (PARAMS_COUNT == 4) ? *getAmxAddr(amx, params[arg_elem]) : 0; size_t element = (PARAMS_COUNT == 3) ? *getAmxAddr(amx, params[arg_elem]) : 0;
return set_member(g_pMove, member, value, element); return set_member(g_pMove, member, value, element);
} }
@ -325,18 +325,43 @@ cell AMX_NATIVE_CALL get_pmove(AMX *amx, cell *params)
size_t element; size_t element;
size_t length; size_t length;
if (PARAMS_COUNT == 3) { if (PARAMS_COUNT == 3)
if (member->type == MEMBER_STRING) { {
if (member->type == MEMBER_STRING)
{
dest = getAmxAddr(amx, params[arg_2]); dest = getAmxAddr(amx, params[arg_2]);
length = *getAmxAddr(amx, params[arg_3]); length = *getAmxAddr(amx, params[arg_3]);
element = 0; element = 0;
} else { }
else
{
dest = getAmxAddr(amx, params[arg_2]); dest = getAmxAddr(amx, params[arg_2]);
element = *getAmxAddr(amx, params[arg_3]); element = *getAmxAddr(amx, params[arg_3]);
length = 0; length = 0;
} }
} }
else if (PARAMS_COUNT == 2)
{
cell *arg2 = getAmxAddr(amx, params[arg_2]);
if (member->isTypeReturnable())
{
if (member->type == MEMBER_FLOAT) {
dest = arg2;
element = 0;
} else {
dest = nullptr;
element = *arg2;
}
}
else { else {
dest = arg2;
element = 0;
}
length = 0;
}
else
{
dest = nullptr; dest = nullptr;
element = 0; element = 0;
length = 0; length = 0;