Update readme

This commit is contained in:
SlynxCZ 2026-01-26 21:29:09 +04:00
parent 98f00073ab
commit 65a480f505
4 changed files with 299 additions and 352 deletions

View file

@ -47,7 +47,7 @@ namespace RayTracePlugin::RayTrace
beam->m_clrRender().SetColor(color.r(), color.g(), color.b(), color.a());
beam->m_fWidth() = 1.5f;
beam->m_nRenderMode() = kRenderGlow;
beam->m_nRenderMode() = kRenderNormal;
beam->m_nRenderFX() = kRenderFxNone;
beam->Teleport(&start, &VectorExtends::RotationZero, &VectorExtends::VectorZero);
@ -95,10 +95,16 @@ namespace RayTracePlugin::RayTrace
CTraceFilterEx filter = ignorePlayer ? CTraceFilterEx(ignorePlayer) : CTraceFilterEx();
filter.m_nInteractsWith = static_cast<uint64_t>(MASK_SHOT_PHYSICS);
filter.m_nInteractsExclude = 0;
if (opts)
{
if (opts->InteractsWith) filter.m_nInteractsWith = static_cast<uint64_t>(*opts->InteractsWith);
if (opts->InteractsExclude) filter.m_nInteractsExclude = static_cast<uint64_t>(*opts->InteractsExclude);
if (opts->InteractsWith != 0)
filter.m_nInteractsWith = opts->InteractsWith;
if (opts->InteractsExclude != 0)
filter.m_nInteractsExclude = opts->InteractsExclude;
}
Ray_t ray;
@ -121,10 +127,16 @@ namespace RayTracePlugin::RayTrace
{
CTraceFilterEx filter = ignorePlayer ? CTraceFilterEx(ignorePlayer) : CTraceFilterEx();
filter.m_nInteractsWith = static_cast<uint64_t>(MASK_SHOT_PHYSICS);
filter.m_nInteractsExclude = 0;
if (opts)
{
if (opts->InteractsWith) filter.m_nInteractsWith = static_cast<uint64_t>(*opts->InteractsWith);
if (opts->InteractsExclude) filter.m_nInteractsExclude = static_cast<uint64_t>(*opts->InteractsExclude);
if (opts->InteractsWith != 0)
filter.m_nInteractsWith = opts->InteractsWith;
if (opts->InteractsExclude != 0)
filter.m_nInteractsExclude = opts->InteractsExclude;
}
Ray_t ray;

View file

@ -50,31 +50,49 @@ namespace RayTracePlugin::RayTrace
class CRayTrace : public CRayTraceInterface
{
public:
std::optional<TraceResult> TraceShape(
const Vector& origin,
const QAngle& viewangles,
bool TraceShape(
const Vector* origin,
const QAngle* viewangles,
CBaseEntity* ignorePlayer,
const TraceOptions* opts) override
const TraceOptions* opts,
TraceResult* outResult) override
{
return RayTrace::TraceShape(origin, viewangles, ignorePlayer, opts);
auto result = RayTrace::TraceShape(*origin, *viewangles, ignorePlayer, opts);
if (!result.has_value())
return false;
*outResult = result.value();
return true;
}
std::optional<TraceResult> TraceEndShape(
const Vector& origin,
const Vector& endOrigin,
bool TraceEndShape(
const Vector* origin,
const Vector* endOrigin,
CBaseEntity* ignorePlayer,
const TraceOptions* opts) override
const TraceOptions* opts,
TraceResult* outResult) override
{
return RayTrace::TraceEndShape(origin, endOrigin, ignorePlayer, opts);
auto result = RayTrace::TraceEndShape(*origin, *endOrigin, ignorePlayer, opts);
if (!result.has_value())
return false;
*outResult = result.value();
return true;
}
std::optional<TraceResult> TraceShapeEx(
const Vector& vecStart,
const Vector& vecEnd,
CTraceFilter& filterInc,
Ray_t rayInc) override
bool TraceShapeEx(
const Vector* vecStart,
const Vector* vecEnd,
CTraceFilter* filterInc,
Ray_t rayInc,
TraceResult* outResult) override
{
return RayTrace::TraceShapeEx(vecStart, vecEnd, filterInc, rayInc);
auto result = RayTrace::TraceShapeEx(*vecStart, *vecEnd, *filterInc, rayInc);
if (!result.has_value())
return false;
*outResult = result.value();
return true;
}
};