@@ -3416,6 +3416,60 @@ cell AMX_NATIVE_CALL rg_player_takedamage_impulse(AMX *amx, cell *params)
34163416 return TRUE ;
34173417}
34183418
3419+ /*
3420+ * Fires a trace line between two origins, retrieving the end point and entity hit.
3421+ *
3422+ * @param vecStart Start position
3423+ * @param vecEnd End position
3424+ * @param ignoreMonsters Entity ignore type
3425+ * @param ignoreEntity Entity index that trace will ignore, NULLENT if trace should not ignore any entities
3426+ * @param ptr Traceresult pointer, use Fakemeta's create_tr2 to instantiate one
3427+ * @param traceFlags Additional trace flags, see FTRACE_* constants on cssdk_const.inc
3428+ *
3429+ * @noreturn
3430+ */
3431+ cell AMX_NATIVE_CALL rg_trace_line (AMX *amx, cell *params)
3432+ {
3433+ enum args_e { arg_count, arg_vec_start, arg_vec_end, arg_ignore_monsters, arg_ignore_entity, arg_trace, arg_trace_flags };
3434+
3435+ edict_t * pEntityIgnore = edictByIndexAmx (params[arg_ignore_entity]);
3436+
3437+ CAmxArgs args (amx, params);
3438+
3439+ gpGlobals->trace_flags = args[arg_trace_flags];
3440+ g_pengfuncsTable->pfnTraceLine (args[arg_vec_start], args[arg_vec_end], args[arg_ignore_monsters], pEntityIgnore, args[arg_trace]);
3441+
3442+ return TRUE ;
3443+ }
3444+
3445+ /*
3446+ * Fires a trace hull on a specified origin or between two origins.
3447+ *
3448+ * @param vecStart Start position
3449+ * @param vecEnd End position
3450+ * @param ignoreMonsters Entity ignore type
3451+ * @param hullNumber Hull type
3452+ * @param ignoreEntity Entity index that trace will ignore, NULLENT if trace should not ignore any entities
3453+ * @param ptr Traceresult pointer, use Fakemeta's create_tr2 to instantiate one
3454+ * @param traceFlags Additional trace flags, see FTRACE_* constants on cssdk_const.inc
3455+ *
3456+ * @noreturn
3457+ */
3458+ cell AMX_NATIVE_CALL rg_trace_hull (AMX *amx, cell *params)
3459+ {
3460+ 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 };
3461+
3462+ edict_t * pEntityIgnore = edictByIndexAmx (params[arg_ignore_entity]);
3463+
3464+ CAmxArgs args (amx, params);
3465+
3466+ gpGlobals->trace_flags = args[arg_trace_flags];
3467+ g_pengfuncsTable->pfnTraceHull (args[arg_vec_start], args[arg_vec_end], args[arg_ignore_monsters], args[arg_hull_number], pEntityIgnore, args[arg_trace]);
3468+ gpGlobals->trace_flags = 0 ;
3469+
3470+ return TRUE ;
3471+ }
3472+
34193473AMX_NATIVE_INFO Misc_Natives_RG[] =
34203474{
34213475 { " rg_set_animation" , rg_set_animation },
@@ -3532,6 +3586,8 @@ AMX_NATIVE_INFO Misc_Natives_RG[] =
35323586
35333587 { " rg_send_death_message" , rg_send_death_message },
35343588 { " rg_player_takedamage_impulse" , rg_player_takedamage_impulse },
3589+ { " rg_trace_line" , rg_trace_line },
3590+ { " rg_trace_hull" , rg_trace_hull },
35353591
35363592 { nullptr , nullptr }
35373593};
0 commit comments