2
0
mirror of https://github.com/rehlds/reapi.git synced 2025-01-16 00:28:17 +03:00

rh_get_key_value/rh_set_key_value moving from misc to common

This commit is contained in:
s1lent 2017-09-25 07:27:49 +07:00
parent b06b1915eb
commit 1a9b80e168
No known key found for this signature in database
GPG Key ID: 0FE401DC73916B5C
5 changed files with 93 additions and 71 deletions

View File

@ -30,6 +30,31 @@ native set_ucmd(const ucmd, const UCmd:var, any:...);
*/
native any:get_ucmd(const ucmd, const UCmd:var, any:...);
/*
* Gets value for key in buffer
*
* @param pbuffer Pointer to buffer
* @param key Key string
* @param value Buffer to copy value to
* @param maxlen Maximum size of the buffer
*
* @return Number of cells written to buffer
* @error If the index is not within the range of 1 to MaxClients or
* the client is not connected, an error will be thrown.
*/
native get_key_value(const pbuffer, const key[], const value[], const maxlen);
/*
* Sets value for key in buffer
*
* @param pbuffer Pointer to buffer
* @param key Key string
* @param value Value to set
*
* @noreturn
*/
native set_key_value(const pbuffer, const key[], const value[]);
/*
* Sets the name of the map.
*
@ -88,28 +113,3 @@ native bool:rh_emit_sound2(const entity, const recipient, const channel, const s
* @noreturn
*/
native rh_update_user_info(playerEntIndex);
/*
* Gets value for key in buffer
*
* @param pbuffer Pointer to buffer
* @param key Key string
* @param value Buffer to copy value to
* @param maxlen Maximum size of the buffer
*
* @return Number of cells written to buffer
* @error If the index is not within the range of 1 to MaxClients or
* the client is not connected, an error will be thrown.
*/
native rh_get_key_value(const pbuffer, const key[], value[], maxlen)
/*
* Sets value for key in buffer
*
* @param pbuffer Pointer to buffer
* @param key Key string
* @param value Value to set
*
* @noreturn
*/
native rh_set_key_value(const pbuffer, const key[], const value[])

View File

@ -36,6 +36,7 @@
// Key + value + 2 x slash + NULL
const int MAX_INFO_STRING = 256;
const int MAX_KV_LEN = 127;
typedef struct client_frame_s
{

View File

@ -111,12 +111,63 @@ cell AMX_NATIVE_CALL amx_get_viewent(AMX *amx, cell *params)
return indexOfEdictAmx(pClient->pViewEntity);
}
/*
* Gets value for key in buffer
*
* @param pbuffer Pointer to buffer
* @param key Key string
* @param value Buffer to copy value to
* @param maxlen Maximum size of the buffer
*
* @return Number of cells written to buffer
* @error If the index is not within the range of 1 to MaxClients or
* the client is not connected, an error will be thrown.
*
* native get_key_value(const pbuffer, const key[], const value[], const maxlen);
*/
cell AMX_NATIVE_CALL amx_get_key_value(AMX *amx, cell *params)
{
enum args_e { arg_count, arg_buffer, arg_key, arg_value, arg_maxlen };
char buffer[MAX_INFO_STRING], key[MAX_KV_LEN];
Q_strlcpy(buffer, getAmxString(amx, params[arg_buffer]));
Q_strlcpy(key, getAmxString(amx, params[arg_key]));
return g_amxxapi.SetAmxString(amx, params[arg_value], g_engfuncs.pfnInfoKeyValue(buffer, key), params[arg_maxlen]);
}
/*
* Sets value for key in buffer
*
* @param pbuffer Pointer to buffer
* @param key Key string
* @param value Value to set
*
* @noreturn
*
* native set_key_value(const pbuffer, const key[], const value[]);
*/
cell AMX_NATIVE_CALL amx_set_key_value(AMX *amx, cell *params)
{
enum args_e { arg_count, arg_buffer, arg_key, arg_value };
char buffer[MAX_INFO_STRING], key[MAX_KV_LEN], value[MAX_KV_LEN];
Q_strlcpy(buffer, getAmxString(amx, params[arg_buffer]));
Q_strlcpy(key, getAmxString(amx, params[arg_key]));
Q_strlcpy(value, getAmxString(amx, params[arg_value]));
g_engfuncs.pfnSetKeyValue(buffer, key, value);
return TRUE;
}
AMX_NATIVE_INFO Natives_Common[] =
{
{ "FClassnameIs", amx_FClassnameIs },
{ "GetGrenadeType", amx_GetGrenadeType },
{ "engset_view", amx_engset_view },
{ "get_viewent", amx_get_viewent },
{ "get_key_value", amx_get_key_value },
{ "set_key_value", amx_set_key_value },
{ nullptr, nullptr }
};

View File

@ -2012,28 +2012,6 @@ cell AMX_NATIVE_CALL rh_update_user_info(AMX *amx, cell *params)
return TRUE;
}
cell AMX_NATIVE_CALL rh_get_key_value(AMX *amx, cell *params)
{
enum args_e { arg_count, arg_buffer, arg_key, arg_value, arg_maxlen };
char *buffer = getAmxString(amx, params[arg_buffer]);
const char *key = getAmxString(amx, params[arg_key]);
return g_amxxapi.SetAmxString(amx, params[arg_value], g_engfuncs.pfnInfoKeyValue(buffer, key), params[arg_maxlen]);
}
cell AMX_NATIVE_CALL rh_set_key_value(AMX *amx, cell *params)
{
enum args_e { arg_count, arg_buffer, arg_key, arg_value };
char *buffer = getAmxString(amx, params[arg_buffer]);
const char *key = getAmxString(amx, params[arg_key]);
const char *value = getAmxString(amx, params[arg_value]);
g_engfuncs.pfnSetKeyValue(buffer, key, value);
return 1;
}
AMX_NATIVE_INFO Misc_Natives_RH[] =
{
{ "rh_set_mapname", rh_set_mapname },
@ -2041,8 +2019,6 @@ AMX_NATIVE_INFO Misc_Natives_RH[] =
{ "rh_reset_mapname", rh_reset_mapname },
{ "rh_emit_sound2", rh_emit_sound2 },
{ "rh_update_user_info", rh_update_user_info },
{ "rh_get_key_value", rh_get_key_value },
{ "rh_set_key_value", rh_set_key_value },
{ nullptr, nullptr }
};

View File

@ -1,11 +1,5 @@
#pragma once
enum
{
MAX_KV_LEN = 127,
MAX_INFO_STRING = 256
};
enum WpnInfo
{
WI_ID,