From 56eb43df32064cfbb5f8433e573ac2dd2929f7c1 Mon Sep 17 00:00:00 2001 From: terencehill Date: Mon, 6 Aug 2018 08:57:39 +0200 Subject: [PATCH] Implement detection of items (%x) in formatmessage making use of an existing function but slightly modified to work through warpzones --- qcsrc/server/miscfunctions.qc | 28 +++++++++++++++------------- qcsrc/server/miscfunctions.qh | 2 ++ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/qcsrc/server/miscfunctions.qc b/qcsrc/server/miscfunctions.qc index 11d7a8b5c..444427784 100644 --- a/qcsrc/server/miscfunctions.qc +++ b/qcsrc/server/miscfunctions.qc @@ -42,6 +42,16 @@ void crosshair_trace(entity pl) } void crosshair_trace_plusvisibletriggers(entity pl) +{ + crosshair_trace_plusvisibletriggers__is_wz(pl, false); +} + +void WarpZone_crosshair_trace_plusvisibletriggers(entity pl) +{ + crosshair_trace_plusvisibletriggers__is_wz(pl, true); +} + +void crosshair_trace_plusvisibletriggers__is_wz(entity pl, bool is_wz) { FOREACH_ENTITY_FLOAT(solid, SOLID_TRIGGER, { @@ -52,7 +62,10 @@ void crosshair_trace_plusvisibletriggers(entity pl) } }); - crosshair_trace(pl); + if (is_wz) + WarpZone_crosshair_trace(pl); + else + crosshair_trace(pl); IL_EACH(g_ctrace_changed, true, { it.solid = SOLID_TRIGGER; }); @@ -215,7 +228,6 @@ string AmmoNameFromWeaponentity(Weapon wep) return ammoitems; } -.int solid_prev; string formatmessage(entity this, string msg) { float p, p1, p2; @@ -252,17 +264,7 @@ string formatmessage(entity this, string msg) if(!traced) { - IL_EACH(g_items, true, - { - it.solid_prev = it.solid; - it.solid = SOLID_BSP; - }); - WarpZone_crosshair_trace(this); - IL_EACH(g_items, true, - { - it.solid = it.solid_prev; - it.solid_prev = 0; - }); + WarpZone_crosshair_trace_plusvisibletriggers(this); cursor = trace_endpos; cursor_ent = trace_ent; traced = true; diff --git a/qcsrc/server/miscfunctions.qh b/qcsrc/server/miscfunctions.qh index 1455054d2..fc1fd5bd1 100644 --- a/qcsrc/server/miscfunctions.qh +++ b/qcsrc/server/miscfunctions.qh @@ -62,6 +62,8 @@ void attach_sameorigin(entity e, entity to, string tag); void crosshair_trace(entity pl); void crosshair_trace_plusvisibletriggers(entity pl); +void WarpZone_crosshair_trace_plusvisibletriggers(entity pl); +void crosshair_trace_plusvisibletriggers__is_wz(entity pl, bool is_wz); void detach_sameorigin(entity e); -- 2.39.2