Update pointer logic
This commit is contained in:
parent
fb519778e7
commit
6ba34070c7
3 changed files with 32 additions and 32 deletions
|
|
@ -171,28 +171,28 @@ class CRayTraceInterface
|
||||||
public:
|
public:
|
||||||
virtual ~CRayTraceInterface() = default;
|
virtual ~CRayTraceInterface() = default;
|
||||||
|
|
||||||
virtual bool TraceShape(const Vector& vecStart,
|
virtual bool TraceShape(const Vector* pVecStart,
|
||||||
const QAngle& angAngles,
|
const QAngle* pAngAngles,
|
||||||
CEntityInstance* pIgnoreEntity,
|
CEntityInstance* pIgnoreEntity,
|
||||||
TraceOptions* pTraceOptions,
|
TraceOptions* pTraceOptions,
|
||||||
TraceResult* pTraceResult) = 0;
|
TraceResult* pTraceResult) = 0;
|
||||||
|
|
||||||
virtual bool TraceEndShape(const Vector& vecStart,
|
virtual bool TraceEndShape(const Vector* pVecStart,
|
||||||
const Vector& vecEnd,
|
const Vector* pVecEnd,
|
||||||
CEntityInstance* pIgnoreEntity,
|
CEntityInstance* pIgnoreEntity,
|
||||||
TraceOptions* pTraceOptions,
|
TraceOptions* pTraceOptions,
|
||||||
TraceResult* pTraceResult) = 0;
|
TraceResult* pTraceResult) = 0;
|
||||||
|
|
||||||
virtual bool TraceHullShape(const Vector& vecStart,
|
virtual bool TraceHullShape(const Vector* pVecStart,
|
||||||
const Vector& vecEnd,
|
const Vector* pVecEnd,
|
||||||
const Vector& vecMins,
|
const Vector* pVecMins,
|
||||||
const Vector& vecMaxs,
|
const Vector* pVecMaxs,
|
||||||
CEntityInstance* pIgnoreEntity,
|
CEntityInstance* pIgnoreEntity,
|
||||||
TraceOptions* pTraceOptions,
|
TraceOptions* pTraceOptions,
|
||||||
TraceResult* pTraceResult) = 0;
|
TraceResult* pTraceResult) = 0;
|
||||||
|
|
||||||
virtual bool TraceShapeEx(const Vector& vecStart,
|
virtual bool TraceShapeEx(const Vector* pVecStart,
|
||||||
const Vector& vecEnd,
|
const Vector* pVecEnd,
|
||||||
CTraceFilter* pTraceFilter,
|
CTraceFilter* pTraceFilter,
|
||||||
Ray_t* pRay,
|
Ray_t* pRay,
|
||||||
TraceResult* pTraceResult) = 0;
|
TraceResult* pTraceResult) = 0;
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ namespace RayTracePlugin::RayTrace
|
||||||
beam->DispatchSpawn();
|
beam->DispatchSpawn();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CRayTrace::TraceShape(const Vector& vecStart, const QAngle& angAngles, CEntityInstance* pIgnoreEntity, TraceOptions* pTraceOptions, TraceResult* pTraceResult)
|
bool CRayTrace::TraceShape(const Vector* pVecStart, const QAngle* pAngAngles, CEntityInstance* pIgnoreEntity, TraceOptions* pTraceOptions, TraceResult* pTraceResult)
|
||||||
{
|
{
|
||||||
CTraceFilterEx filter = pIgnoreEntity ? CTraceFilterEx(static_cast<CBaseEntity*>(pIgnoreEntity)) : CTraceFilterEx();
|
CTraceFilterEx filter = pIgnoreEntity ? CTraceFilterEx(static_cast<CBaseEntity*>(pIgnoreEntity)) : CTraceFilterEx();
|
||||||
|
|
||||||
|
|
@ -61,26 +61,26 @@ namespace RayTracePlugin::RayTrace
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector forward;
|
Vector forward;
|
||||||
AngleVectors(angAngles, &forward);
|
AngleVectors(pAngAngles ? *pAngAngles : VectorExtends::RotationZero, &forward);
|
||||||
Vector vecEnd{
|
Vector vecEnd{
|
||||||
vecStart.x + forward.x * 8192.f,
|
pVecStart ? pVecStart->x : 0 + forward.x * 8192.f,
|
||||||
vecStart.y + forward.y * 8192.f,
|
pVecStart ? pVecStart->y : 0 + forward.y * 8192.f,
|
||||||
vecStart.z + forward.z * 8192.f
|
pVecStart ? pVecStart->z : 0 + forward.z * 8192.f
|
||||||
};
|
};
|
||||||
|
|
||||||
Ray_t ray;
|
Ray_t ray;
|
||||||
auto res = TraceShapeEx(vecStart, vecEnd, &filter, &ray, pTraceResult);
|
auto res = TraceShapeEx(pVecStart, &vecEnd, &filter, &ray, pTraceResult);
|
||||||
|
|
||||||
if (pTraceOptions && pTraceOptions->DrawBeam)
|
if (pTraceOptions && pTraceOptions->DrawBeam)
|
||||||
{
|
{
|
||||||
Color col = res ? colors::Red().ToValveColor() : colors::Green().ToValveColor();
|
Color col = res ? colors::Red().ToValveColor() : colors::Green().ToValveColor();
|
||||||
DrawBeam(vecStart, (res && pTraceResult) ? pTraceResult->EndPos : vecEnd, col);
|
DrawBeam(pVecStart ? *pVecStart : VectorExtends::VectorZero, (res && pTraceResult) ? pTraceResult->EndPos : vecEnd, col);
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CRayTrace::TraceEndShape(const Vector& vecStart, const Vector& vecEnd, CEntityInstance* pIgnoreEntity, TraceOptions* pTraceOptions, TraceResult* pTraceResult)
|
bool CRayTrace::TraceEndShape(const Vector* pVecStart, const Vector* pVecEnd, CEntityInstance* pIgnoreEntity, TraceOptions* pTraceOptions, TraceResult* pTraceResult)
|
||||||
{
|
{
|
||||||
CTraceFilterEx filter = pIgnoreEntity ? CTraceFilterEx(static_cast<CBaseEntity*>(pIgnoreEntity)) : CTraceFilterEx();
|
CTraceFilterEx filter = pIgnoreEntity ? CTraceFilterEx(static_cast<CBaseEntity*>(pIgnoreEntity)) : CTraceFilterEx();
|
||||||
|
|
||||||
|
|
@ -98,19 +98,19 @@ namespace RayTracePlugin::RayTrace
|
||||||
}
|
}
|
||||||
|
|
||||||
Ray_t ray;
|
Ray_t ray;
|
||||||
auto res = TraceShapeEx(vecStart, vecEnd, &filter, &ray, pTraceResult);
|
auto res = TraceShapeEx(pVecStart, pVecEnd, &filter, &ray, pTraceResult);
|
||||||
|
|
||||||
if (pTraceOptions && pTraceOptions->DrawBeam)
|
if (pTraceOptions && pTraceOptions->DrawBeam)
|
||||||
{
|
{
|
||||||
Color col = res ? colors::Red().ToValveColor() : colors::Green().ToValveColor();
|
Color col = res ? colors::Red().ToValveColor() : colors::Green().ToValveColor();
|
||||||
DrawBeam(vecStart, (res && pTraceResult) ? pTraceResult->EndPos : vecEnd, col);
|
DrawBeam(pVecEnd ? *pVecEnd : VectorExtends::VectorZero, (res && pTraceResult) ? pTraceResult->EndPos : (pVecEnd ? *pVecEnd : VectorExtends::VectorZero), col);
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CRayTrace::TraceHullShape(const Vector& vecStart, const Vector& vecEnd, const Vector& vecMins,
|
bool CRayTrace::TraceHullShape(const Vector* pVecStart, const Vector* pVecEnd, const Vector* pVecMins,
|
||||||
const Vector& vecMaxs, CEntityInstance* pIgnoreEntity, TraceOptions* pTraceOptions, TraceResult* pTraceResult)
|
const Vector* pVecMaxs, CEntityInstance* pIgnoreEntity, TraceOptions* pTraceOptions, TraceResult* pTraceResult)
|
||||||
{
|
{
|
||||||
CTraceFilterEx filter = pIgnoreEntity ? CTraceFilterEx(static_cast<CBaseEntity*>(pIgnoreEntity)) : CTraceFilterEx();
|
CTraceFilterEx filter = pIgnoreEntity ? CTraceFilterEx(static_cast<CBaseEntity*>(pIgnoreEntity)) : CTraceFilterEx();
|
||||||
|
|
||||||
|
|
@ -128,20 +128,20 @@ namespace RayTracePlugin::RayTrace
|
||||||
}
|
}
|
||||||
|
|
||||||
Ray_t ray;
|
Ray_t ray;
|
||||||
ray.Init(vecMins, vecMaxs);
|
ray.Init(pVecMins ? *pVecMins : VectorExtends::VectorZero, pVecMaxs ? *pVecMaxs : VectorExtends::VectorZero);
|
||||||
|
|
||||||
auto res = TraceShapeEx(vecStart, vecEnd, &filter, &ray, pTraceResult);
|
auto res = TraceShapeEx(pVecStart, pVecEnd, &filter, &ray, pTraceResult);
|
||||||
|
|
||||||
if (pTraceOptions && pTraceOptions->DrawBeam)
|
if (pTraceOptions && pTraceOptions->DrawBeam)
|
||||||
{
|
{
|
||||||
Color col = res ? colors::Red().ToValveColor() : colors::Green().ToValveColor();
|
Color col = res ? colors::Red().ToValveColor() : colors::Green().ToValveColor();
|
||||||
DrawBeam(vecStart, (res && pTraceResult) ? pTraceResult->EndPos : vecEnd, col);
|
DrawBeam(pVecEnd ? *pVecEnd : VectorExtends::VectorZero, (res && pTraceResult) ? pTraceResult->EndPos : (pVecEnd ? *pVecEnd : VectorExtends::VectorZero), col);
|
||||||
}
|
}
|
||||||
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CRayTrace::TraceShapeEx(const Vector& vecStart, const Vector& vecEnd, CTraceFilter* pTraceFilter, Ray_t* pRay, TraceResult* pTraceResult)
|
bool CRayTrace::TraceShapeEx(const Vector* pVecStart, const Vector* pVecEnd, CTraceFilter* pTraceFilter, Ray_t* pRay, TraceResult* pTraceResult)
|
||||||
{
|
{
|
||||||
if (!m_pCNavPhysicsInterface_TraceShape)
|
if (!m_pCNavPhysicsInterface_TraceShape)
|
||||||
{
|
{
|
||||||
|
|
@ -149,8 +149,8 @@ namespace RayTracePlugin::RayTrace
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
Vector vecStartCopy = vecStart;
|
Vector vecStartCopy = pVecStart ? *pVecStart : VectorExtends::VectorZero;
|
||||||
Vector vecEndCopy = vecEnd;
|
Vector vecEndCopy = pVecEnd ? *pVecEnd : VectorExtends::VectorZero;
|
||||||
CGameTrace trace;
|
CGameTrace trace;
|
||||||
|
|
||||||
bool bResult = m_pCNavPhysicsInterface_TraceShape.RCast<
|
bool bResult = m_pCNavPhysicsInterface_TraceShape.RCast<
|
||||||
|
|
|
||||||
|
|
@ -31,10 +31,10 @@ namespace RayTracePlugin::RayTrace
|
||||||
public:
|
public:
|
||||||
bool Initialize();
|
bool Initialize();
|
||||||
public:
|
public:
|
||||||
bool TraceShape(const Vector& vecStart, const QAngle& angAngles, CEntityInstance* pIgnoreEntity, TraceOptions* pTraceOptions, TraceResult* pTraceResult) override;
|
bool TraceShape(const Vector* pVecStart, const QAngle* pAngAngles, CEntityInstance* pIgnoreEntity, TraceOptions* pTraceOptions, TraceResult* pTraceResult) override;
|
||||||
bool TraceEndShape(const Vector& vecStart, const Vector& vecEnd, CEntityInstance* pIgnoreEntity, TraceOptions* pTraceOptions, TraceResult* pTraceResult) override;
|
bool TraceEndShape(const Vector* pVecStart, const Vector* pVecEnd, CEntityInstance* pIgnoreEntity, TraceOptions* pTraceOptions, TraceResult* pTraceResult) override;
|
||||||
bool TraceHullShape(const Vector& vecStart, const Vector& vecEnd, const Vector& vecMins, const Vector& vecMaxs, CEntityInstance* pIgnoreEntity, TraceOptions* pTraceOptions, TraceResult* pTraceResult) override;
|
bool TraceHullShape(const Vector* pVecStart, const Vector* pVecEnd, const Vector* pVecMins, const Vector* pVecMaxs, CEntityInstance* pIgnoreEntity, TraceOptions* pTraceOptions, TraceResult* pTraceResult) override;
|
||||||
bool TraceShapeEx(const Vector& vecStart, const Vector& vecEnd, CTraceFilter* pTraceFilter, Ray_t* pRay, TraceResult* pTraceResult) override;
|
bool TraceShapeEx(const Vector* pVecStart, const Vector* pVecEnd, CTraceFilter* pTraceFilter, Ray_t* pRay, TraceResult* pTraceResult) override;
|
||||||
protected:
|
protected:
|
||||||
DynLibUtils::CMemory m_pCNavPhysicsInterface_TraceShape;
|
DynLibUtils::CMemory m_pCNavPhysicsInterface_TraceShape;
|
||||||
protected:
|
protected:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue