mirror of
https://github.com/rehlds/reapi.git
synced 2024-12-28 15:45:31 +03:00
Avoid unnecessary copying in rg_fire_bullets3
This commit is contained in:
parent
12b0573aa5
commit
e0fb129f4d
@ -24,6 +24,7 @@ task publishPrepareFiles << {
|
||||
//project.file('publish/publishRoot/reapi/addons/amxmodx/scripting/include').mkdirs()
|
||||
|
||||
_copyFileToDir('publish/reapi_amxx.dll', 'publish/publishRoot/reapi/addons/amxmodx/modules/')
|
||||
_copyFileToDir('publish/reapi_amxx.pdb', 'publish/publishRoot/reapi/addons/amxmodx/modules/')
|
||||
_copyFile('publish/libreapi_amxx_i386.so', 'publish/publishRoot/reapi/addons/amxmodx/modules/reapi_amxx_i386.so')
|
||||
|
||||
copy {
|
||||
|
@ -7,7 +7,7 @@ class CAmxArg
|
||||
{
|
||||
public:
|
||||
CAmxArg(AMX* amx, cell value) : m_amx(amx), m_value(value) {}
|
||||
operator float() const
|
||||
operator float&() const
|
||||
{
|
||||
return *(float *)m_value;
|
||||
}
|
||||
@ -17,9 +17,8 @@ public:
|
||||
}
|
||||
operator entvars_s*() const
|
||||
{
|
||||
if (m_value < 0)
|
||||
return nullptr;
|
||||
return PEV(m_value);
|
||||
auto pev = PEV(m_value);
|
||||
return m_value < 0 ? nullptr : pev;
|
||||
}
|
||||
operator int() const
|
||||
{
|
||||
@ -35,12 +34,17 @@ public:
|
||||
}
|
||||
operator CBaseEntity*() const
|
||||
{
|
||||
return g_ReGameFuncs->UTIL_PlayerByIndex(m_value);
|
||||
auto player = g_ReGameFuncs->UTIL_PlayerByIndex(m_value);
|
||||
return m_value < 0 ? nullptr : player;
|
||||
}
|
||||
operator PLAYER_ANIM() const
|
||||
{
|
||||
return static_cast<PLAYER_ANIM>(m_value);
|
||||
}
|
||||
operator ICSEntity*() const
|
||||
{
|
||||
return g_ReGameFuncs->INDEX_TO_CSENTITY(m_value);
|
||||
}
|
||||
|
||||
Vector& vector() const
|
||||
{
|
||||
|
@ -214,14 +214,14 @@ cell AMX_NATIVE_CALL rg_multidmg_add(AMX *amx, cell *params)
|
||||
CHECK_ISENTITY(params[arg_inflictor]);
|
||||
CHECK_ISENTITY(params[arg_victim]);
|
||||
|
||||
CAmxArgs args(amx, params);
|
||||
|
||||
if (params[arg_victim] < 0) { // null
|
||||
MF_LogError(amx, AMX_ERR_NATIVE, "rg_multidmg_add: victim == null");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
CAmxArgs args(amx, params);
|
||||
g_ReGameFuncs->AddMultiDamage(args[arg_inflictor], args[arg_victim], args[arg_damage], args[arg_dmg_type]);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -251,7 +251,7 @@ cell AMX_NATIVE_CALL rg_fire_bullets(AMX *amx, cell *params)
|
||||
CHECK_ISENTITY(params[arg_attacker]);
|
||||
|
||||
CAmxArgs args(amx, params);
|
||||
ICSEntity *pInflictor = g_ReGameFuncs->INDEX_TO_CSENTITY(params[arg_inflictor]);
|
||||
ICSEntity *pInflictor = args[arg_inflictor];
|
||||
|
||||
pInflictor->FireBullets
|
||||
(
|
||||
@ -297,7 +297,8 @@ cell AMX_NATIVE_CALL rg_fire_bullets3(AMX *amx, cell *params)
|
||||
CHECK_ISENTITY(params[arg_attacker]);
|
||||
|
||||
CAmxArgs args(amx, params);
|
||||
ICSEntity *pInflictor = g_ReGameFuncs->INDEX_TO_CSENTITY(params[arg_inflictor]);
|
||||
ICSEntity *pInflictor = args[arg_inflictor];
|
||||
entvars_t *pAttacker = args[arg_attacker];
|
||||
|
||||
args[arg_out].vector() = pInflictor->FireBullets3
|
||||
(
|
||||
@ -309,7 +310,7 @@ cell AMX_NATIVE_CALL rg_fire_bullets3(AMX *amx, cell *params)
|
||||
args[arg_bullet_type],
|
||||
args[arg_dmg],
|
||||
args[arg_range_mod],
|
||||
args[arg_attacker],
|
||||
pAttacker,
|
||||
args[arg_pistol],
|
||||
args[arg_rand]
|
||||
);
|
||||
|
Loading…
Reference in New Issue
Block a user