Skip to content
Merged
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
26 changes: 26 additions & 0 deletions spt/features/tracing.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,32 @@ WorldHitInfo Tracing::TraceLineWithWorldInfoServer(const Ray_t& ray,
return hitInfo;
}

void Tracing::UTIL_TraceRay_client(const Ray_t& ray,
unsigned int mask,
const IHandleEntity* ignore,
int collisionGroup,
trace_t* ptr)
{
#ifdef SSDK2013
spt_tracing.ORIG_UTIL_TraceRay_client(ray, mask, ignore, collisionGroup, ptr, nullptr);
#else
spt_tracing.ORIG_UTIL_TraceRay_client(ray, mask, ignore, collisionGroup, ptr);
#endif
}

void Tracing::UTIL_TraceRay_server(const Ray_t& ray,
unsigned int mask,
const IHandleEntity* ignore,
int collisionGroup,
trace_t* ptr)
{
#ifdef SSDK2013
spt_tracing.ORIG_UTIL_TraceRay_server(ray, mask, ignore, collisionGroup, ptr, nullptr);
#else
spt_tracing.ORIG_UTIL_TraceRay_server(ray, mask, ignore, collisionGroup, ptr);
#endif
}

IMPL_HOOK_FASTCALL(Tracing,
void,
CM_ClipBoxToBrush_1,
Expand Down
32 changes: 32 additions & 0 deletions spt/features/tracing.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,25 @@ struct TraceFilterIgnorePlayer : public CTraceFilter
class Tracing : public FeatureWrapper<Tracing>
{
public:
#ifdef SSDK2013
DECL_MEMBER_CDECL(void,
UTIL_TraceRay_client,
const Ray_t& ray,
unsigned int mask,
const IHandleEntity* ignore,
int collisionGroup,
trace_t* ptr,
void* pExtraShouldHitCheckFn);

DECL_MEMBER_CDECL(void,
UTIL_TraceRay_server,
const Ray_t& ray,
unsigned int mask,
const IHandleEntity* ignore,
int collisionGroup,
trace_t* ptr,
void* pExtraShouldHitCheckFn);
#else
DECL_MEMBER_CDECL(void,
UTIL_TraceRay_client,
const Ray_t& ray,
Expand All @@ -74,6 +93,7 @@ class Tracing : public FeatureWrapper<Tracing>
const IHandleEntity* ignore,
int collisionGroup,
trace_t* ptr);
#endif

DECL_HOOK_THISCALL(CBaseCombatWeapon*, GetActiveWeapon, IServerUnknown*);

Expand Down Expand Up @@ -118,6 +138,18 @@ class Tracing : public FeatureWrapper<Tracing>
ITraceFilter* filter,
trace_t& tr);

// Wrappers for UTIL_TraceRay because 2013 got an extra argument
void UTIL_TraceRay_client(const Ray_t& ray,
unsigned int mask,
const IHandleEntity* ignore,
int collisionGroup,
trace_t* ptr);
void UTIL_TraceRay_server(const Ray_t& ray,
unsigned int mask,
const IHandleEntity* ignore,
int collisionGroup,
trace_t* ptr);

#ifdef SPT_TRACE_PORTAL_ENABLED
CBaseCombatWeapon* GetActiveWeapon();
float TraceFirePortal(trace_t& tr, const Vector& startPos, const Vector& vDirection);
Expand Down
22 changes: 11 additions & 11 deletions spt/features/visualizations/fcps/fcps_record.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ void FcpsImpl(FcpsEvent& event,
entRay.m_Start = ptEntityCenter;
entRay.m_Delta = ptEntityOriginalCenter - ptEntityCenter;

spt_tracing.ORIG_UTIL_TraceRay_server(entRay, fMask, pEntity, iEntityCollisionGroup, &traces[0]);
spt_tracing.UTIL_TraceRay_server(entRay, fMask, pEntity, iEntityCollisionGroup, &traces[0]);
detail.entTraces.emplace_back(entRay, traces[0], cache.GetIndexOfEnt(traces[0].m_pEnt));

if (traces[0].startsolid == false)
Expand Down Expand Up @@ -418,11 +418,11 @@ void FcpsImpl(FcpsEvent& event,
else
{
testRay.m_Start = ptExtents[counter];
spt_tracing.ORIG_UTIL_TraceRay_server(testRay,
fMask,
pEntity,
iEntityCollisionGroup,
&traces[0]);
spt_tracing.UTIL_TraceRay_server(testRay,
fMask,
pEntity,
iEntityCollisionGroup,
&traces[0]);
itNudge.testTraces.emplace_back(testRay,
traces[0],
cache.GetIndexOfEnt(traces[0].m_pEnt));
Expand All @@ -437,11 +437,11 @@ void FcpsImpl(FcpsEvent& event,
{
testRay.m_Start = ptExtents[counter2];
testRay.m_Delta = -testRay.m_Delta;
spt_tracing.ORIG_UTIL_TraceRay_server(testRay,
fMask,
pEntity,
iEntityCollisionGroup,
&traces[1]);
spt_tracing.UTIL_TraceRay_server(testRay,
fMask,
pEntity,
iEntityCollisionGroup,
&traces[1]);
itNudge.testTraces.emplace_back(testRay,
traces[1],
cache.GetIndexOfEnt(traces[1].m_pEnt));
Expand Down
20 changes: 10 additions & 10 deletions spt/strafe/strafestuff.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,11 @@ namespace Strafe
else
ray.Init(start, end, mins, maxs);

spt_tracing.ORIG_UTIL_TraceRay_client(ray,
MASK_PLAYERSOLID_BRUSHONLY,
utils::spt_clientEntList.GetPlayer(),
COLLISION_GROUP_PLAYER_MOVEMENT,
&trace);
spt_tracing.UTIL_TraceRay_client(ray,
MASK_PLAYERSOLID_BRUSHONLY,
utils::spt_clientEntList.GetPlayer(),
COLLISION_GROUP_PLAYER_MOVEMENT,
&trace);
}
else
{
Expand Down Expand Up @@ -154,11 +154,11 @@ namespace Strafe

Ray_t ray;
ray.Init(start, end);
spt_tracing.ORIG_UTIL_TraceRay_client(ray,
MASK_PLAYERSOLID_BRUSHONLY,
utils::spt_clientEntList.GetPlayer(),
COLLISION_GROUP_PLAYER_MOVEMENT,
&trace);
spt_tracing.UTIL_TraceRay_client(ray,
MASK_PLAYERSOLID_BRUSHONLY,
utils::spt_clientEntList.GetPlayer(),
COLLISION_GROUP_PLAYER_MOVEMENT,
&trace);
#endif
}

Expand Down