Refactor 2 - Duplicate get_member_* for each set of natives for consistency
This commit is contained in:
parent
c07b269c94
commit
dc6f171f20
|
@ -269,6 +269,30 @@ static cell AMX_NATIVE_CALL set_ent_data_string(AMX *amx, cell *params)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// native get_ent_data_size(const class[], const member[]);
|
||||||
|
static cell AMX_NATIVE_CALL get_ent_data_size(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
TypeDescription data;
|
||||||
|
GET_TYPE_DESCRIPTION(1, data, BaseFieldType::None, ENTITY);
|
||||||
|
|
||||||
|
return data.fieldSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
// native find_ent_data_info(const class[], const member[], &FieldType:type = FIELD_NONE, &arraysize = 0, &bool:unsigned = false);
|
||||||
|
static cell AMX_NATIVE_CALL find_ent_data_info(AMX *amx, cell *params)
|
||||||
|
{
|
||||||
|
TypeDescription data;
|
||||||
|
GET_TYPE_DESCRIPTION(1, data, BaseFieldType::None, ENTITY);
|
||||||
|
|
||||||
|
*MF_GetAmxAddr(amx, params[3]) = static_cast<cell>(data.fieldType);
|
||||||
|
*MF_GetAmxAddr(amx, params[4]) = ke::Max<int>(0, data.fieldSize);
|
||||||
|
*MF_GetAmxAddr(amx, params[5]) = data.fieldUnsigned != 0;
|
||||||
|
|
||||||
|
return data.fieldOffset;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// native any:get_gamerules_int(const class[], const member[], element = 0);
|
// native any:get_gamerules_int(const class[], const member[], element = 0);
|
||||||
static cell AMX_NATIVE_CALL get_gamerules_int(AMX *amx, cell *params)
|
static cell AMX_NATIVE_CALL get_gamerules_int(AMX *amx, cell *params)
|
||||||
|
@ -451,25 +475,24 @@ static cell AMX_NATIVE_CALL set_gamerules_string(AMX *amx, cell *params)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// native get_gamerules_size(const class[], const member[]);
|
||||||
// native get_member_size(const class[], const member[]);
|
static cell AMX_NATIVE_CALL get_gamerules_size(AMX *amx, cell *params)
|
||||||
static cell AMX_NATIVE_CALL get_member_size(AMX *amx, cell *params)
|
|
||||||
{
|
{
|
||||||
CHECK_GAMERULES();
|
CHECK_GAMERULES();
|
||||||
|
|
||||||
TypeDescription data;
|
TypeDescription data;
|
||||||
GET_TYPE_DESCRIPTION(1, data, BaseFieldType::None, ALL);
|
GET_TYPE_DESCRIPTION(1, data, BaseFieldType::None, GAMERULES);
|
||||||
|
|
||||||
return data.fieldSize;
|
return data.fieldSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
// native find_member_info(const class[], const member[], &FieldType:type = FIELD_NONE, &arraysize = 0, &bool:unsigned = false);
|
// native find_gamerules_info(const class[], const member[], &FieldType:type = FIELD_NONE, &arraysize = 0, &bool:unsigned = false);
|
||||||
static cell AMX_NATIVE_CALL find_member_info(AMX *amx, cell *params)
|
static cell AMX_NATIVE_CALL find_gamerules_info(AMX *amx, cell *params)
|
||||||
{
|
{
|
||||||
CHECK_GAMERULES();
|
CHECK_GAMERULES();
|
||||||
|
|
||||||
TypeDescription data;
|
TypeDescription data;
|
||||||
GET_TYPE_DESCRIPTION(1, data, BaseFieldType::None, ALL);
|
GET_TYPE_DESCRIPTION(1, data, BaseFieldType::None, GAMERULES);
|
||||||
|
|
||||||
*MF_GetAmxAddr(amx, params[3]) = static_cast<cell>(data.fieldType);
|
*MF_GetAmxAddr(amx, params[3]) = static_cast<cell>(data.fieldType);
|
||||||
*MF_GetAmxAddr(amx, params[4]) = ke::Max<int>(0, data.fieldSize);
|
*MF_GetAmxAddr(amx, params[4]) = ke::Max<int>(0, data.fieldSize);
|
||||||
|
@ -491,6 +514,8 @@ AMX_NATIVE_INFO pdata_gc_natives[] =
|
||||||
{ "set_ent_data_entity" , set_ent_data_entity },
|
{ "set_ent_data_entity" , set_ent_data_entity },
|
||||||
{ "get_ent_data_string" , get_ent_data_string },
|
{ "get_ent_data_string" , get_ent_data_string },
|
||||||
{ "set_ent_data_string" , set_ent_data_string },
|
{ "set_ent_data_string" , set_ent_data_string },
|
||||||
|
{ "get_ent_data_size" , get_ent_data_size },
|
||||||
|
{ "find_ent_data_info" , find_ent_data_info },
|
||||||
|
|
||||||
{ "get_gamerules_int" , get_gamerules_int },
|
{ "get_gamerules_int" , get_gamerules_int },
|
||||||
{ "set_gamerules_int" , set_gamerules_int },
|
{ "set_gamerules_int" , set_gamerules_int },
|
||||||
|
@ -502,9 +527,8 @@ AMX_NATIVE_INFO pdata_gc_natives[] =
|
||||||
{ "set_gamerules_entity", set_gamerules_entity },
|
{ "set_gamerules_entity", set_gamerules_entity },
|
||||||
{ "get_gamerules_string", get_gamerules_string },
|
{ "get_gamerules_string", get_gamerules_string },
|
||||||
{ "set_gamerules_string", set_gamerules_string },
|
{ "set_gamerules_string", set_gamerules_string },
|
||||||
|
{ "get_gamerules_size" , get_gamerules_size },
|
||||||
{ "get_member_size" , get_member_size },
|
{ "find_gamerules_info" , find_gamerules_info },
|
||||||
{ "find_member_info" , find_member_info },
|
|
||||||
|
|
||||||
{ nullptr , nullptr }
|
{ nullptr , nullptr }
|
||||||
};
|
};
|
||||||
|
|
|
@ -808,6 +808,34 @@ native get_ent_data_string(entity, const class[], const member[], value[], maxle
|
||||||
*/
|
*/
|
||||||
native set_ent_data_string(entity, const class[], const member[], const value[], element = 0);
|
native set_ent_data_string(entity, const class[], const member[], const value[], element = 0);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the size of array of n entity class member.
|
||||||
|
*
|
||||||
|
* @param class Class name
|
||||||
|
* @param member Member name
|
||||||
|
*
|
||||||
|
* @return Size of array (in elements), otherwise 1 if member is not an array
|
||||||
|
* @error If either class or member is empty, no offset is found or an invalid
|
||||||
|
* offset is retrieved, an error will be thrown.
|
||||||
|
*/
|
||||||
|
native get_ent_data_size(const class[], const member[]);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Finds a offset based off an entity class and member name.
|
||||||
|
*
|
||||||
|
* @param class Class name
|
||||||
|
* @param member Member name
|
||||||
|
* @param type Optional variable to store member type in (FIELD_* constants)
|
||||||
|
* @param arraysize Optional variable to store array size in, if member is an array
|
||||||
|
* @param unsigned Optional variable to store whether member is unsigned (short and char types only)
|
||||||
|
*
|
||||||
|
* @return Class member offset
|
||||||
|
* @error If either class or member is empty, no offset is found or an invalid
|
||||||
|
* offset is retrieved, an error will be thrown.
|
||||||
|
*/
|
||||||
|
native find_ent_data_info(const class[], const member[], &FieldType:type = FIELD_NONE, &arraysize = 0, &bool:unsigned = false);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves an integer value from the gamerules object based off a class
|
* Retrieves an integer value from the gamerules object based off a class
|
||||||
* and member name.
|
* and member name.
|
||||||
|
@ -986,7 +1014,7 @@ native get_gamerules_string(const class[], const member[], value[], maxlen, elem
|
||||||
native set_gamerules_string(const class[], const member[], const value[], element = 0);
|
native set_gamerules_string(const class[], const member[], const value[], element = 0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the size of array of a class member.
|
* Retrieves the size of array of a gamerules class member.
|
||||||
*
|
*
|
||||||
* @param class Class name
|
* @param class Class name
|
||||||
* @param member Member name
|
* @param member Member name
|
||||||
|
@ -995,10 +1023,10 @@ native set_gamerules_string(const class[], const member[], const value[], elemen
|
||||||
* @error If either class or member is empty, no offset is found or an invalid
|
* @error If either class or member is empty, no offset is found or an invalid
|
||||||
* offset is retrieved, an error will be thrown.
|
* offset is retrieved, an error will be thrown.
|
||||||
*/
|
*/
|
||||||
native get_member_size(const class[], const member[]);
|
native get_gamerules_size(const class[], const member[]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Finds an offset based off a class and member name.
|
* Finds a gamerules offset based off a class and member name.
|
||||||
*
|
*
|
||||||
* @param class Class name
|
* @param class Class name
|
||||||
* @param member Member name
|
* @param member Member name
|
||||||
|
@ -1010,7 +1038,7 @@ native get_member_size(const class[], const member[]);
|
||||||
* @error If either class or member is empty, no offset is found or an invalid
|
* @error If either class or member is empty, no offset is found or an invalid
|
||||||
* offset is retrieved, an error will be thrown.
|
* offset is retrieved, an error will be thrown.
|
||||||
*/
|
*/
|
||||||
native find_member_info(const class[], const member[], &FieldType:type = FIELD_NONE, &arraysize = 0, &bool:unsigned = false);
|
native find_gamerules_info(const class[], const member[], &FieldType:type = FIELD_NONE, &arraysize = 0, &bool:unsigned = false);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the data field base type based off a specific field type.
|
* Returns the data field base type based off a specific field type.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user