Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions reapi/extra/amxmodx/scripting/include/reapi_gamedll.inc
Original file line number Diff line number Diff line change
Expand Up @@ -1245,3 +1245,32 @@ native rg_send_death_message(const pKiller, const pVictim, const pAssister, cons
* @noreturn
*/
native rg_player_takedamage_impulse(const player, const attacker, const Float:flKnockbackForce, const Float:flVelModifier);

/*
* Fires a trace line between two origins, retrieving the end point and entity hit.
*
* @param vecStart Start position
* @param vecEnd End position
* @param ignoreMonsters Entity ignore type
* @param ignoreEntity Entity index that trace will ignore, NULLENT if trace should not ignore any entities
* @param ptr Traceresult pointer, use Fakemeta's create_tr2 to instantiate one
* @param traceFlags Additional trace flags, see FTRACE_* constants on cssdk_const.inc
*
* @noreturn
*/
native rg_trace_line(Float:vecStart[3], Float:vecEnd[3], const ignoreMonsters, const ignoreEntity, const ptr, const traceFlags = 0);

/*
* Fires a trace hull on a specified origin or between two origins.
*
* @param vecStart Start position
* @param vecEnd End position
* @param ignoreMonsters Entity ignore type
* @param hullNumber Hull type
* @param ignoreEntity Entity index that trace will ignore, NULLENT if trace should not ignore any entities
* @param ptr Traceresult pointer, use Fakemeta's create_tr2 to instantiate one
* @param traceFlags Additional trace flags, see FTRACE_* constants on cssdk_const.inc
*
* @noreturn
*/
native rg_trace_hull(Float:vecStart[3], Float:vecEnd[3], const ignoreMonsters, const hullNumber, const ignoreEntity, const ptr, const traceFlags = 0);
56 changes: 56 additions & 0 deletions reapi/src/natives/natives_misc.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3416,6 +3416,60 @@ cell AMX_NATIVE_CALL rg_player_takedamage_impulse(AMX *amx, cell *params)
return TRUE;
}

/*
* Fires a trace line between two origins, retrieving the end point and entity hit.
*
* @param vecStart Start position
* @param vecEnd End position
* @param ignoreMonsters Entity ignore type
* @param ignoreEntity Entity index that trace will ignore, NULLENT if trace should not ignore any entities
* @param ptr Traceresult pointer, use Fakemeta's create_tr2 to instantiate one
* @param traceFlags Additional trace flags, see FTRACE_* constants on cssdk_const.inc
*
* @noreturn
*/
cell AMX_NATIVE_CALL rg_trace_line(AMX *amx, cell *params)
{
enum args_e { arg_count, arg_vec_start, arg_vec_end, arg_ignore_monsters, arg_ignore_entity, arg_trace, arg_trace_flags };

edict_t* pEntityIgnore = edictByIndexAmx(params[arg_ignore_entity]);

CAmxArgs args(amx, params);

gpGlobals->trace_flags = args[arg_trace_flags];
g_pengfuncsTable->pfnTraceLine(args[arg_vec_start], args[arg_vec_end], args[arg_ignore_monsters], pEntityIgnore, args[arg_trace]);

return TRUE;
}

/*
* Fires a trace hull on a specified origin or between two origins.
*
* @param vecStart Start position
* @param vecEnd End position
* @param ignoreMonsters Entity ignore type
* @param hullNumber Hull type
* @param ignoreEntity Entity index that trace will ignore, NULLENT if trace should not ignore any entities
* @param ptr Traceresult pointer, use Fakemeta's create_tr2 to instantiate one
* @param traceFlags Additional trace flags, see FTRACE_* constants on cssdk_const.inc
*
* @noreturn
*/
cell AMX_NATIVE_CALL rg_trace_hull(AMX *amx, cell *params)
{
enum args_e { arg_count, arg_vec_start, arg_vec_end, arg_ignore_monsters, arg_hull_number, arg_ignore_entity, arg_trace, arg_trace_flags };

edict_t* pEntityIgnore = edictByIndexAmx(params[arg_ignore_entity]);

CAmxArgs args(amx, params);

gpGlobals->trace_flags = args[arg_trace_flags];
g_pengfuncsTable->pfnTraceHull(args[arg_vec_start], args[arg_vec_end], args[arg_ignore_monsters], args[arg_hull_number], pEntityIgnore, args[arg_trace]);
gpGlobals->trace_flags = 0;

return TRUE;
}

AMX_NATIVE_INFO Misc_Natives_RG[] =
{
{ "rg_set_animation", rg_set_animation },
Expand Down Expand Up @@ -3532,6 +3586,8 @@ AMX_NATIVE_INFO Misc_Natives_RG[] =

{ "rg_send_death_message", rg_send_death_message },
{ "rg_player_takedamage_impulse", rg_player_takedamage_impulse },
{ "rg_trace_line", rg_trace_line },
{ "rg_trace_hull", rg_trace_hull },

{ nullptr, nullptr }
};
Expand Down