From 1a385c2000abed59bebd41e99935a5a16e089110 Mon Sep 17 00:00:00 2001 From: TimePath Date: Sun, 19 Jun 2016 16:55:15 +1000 Subject: [PATCH] Document trace functions --- qcsrc/dpdefs/doc.md | 83 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/qcsrc/dpdefs/doc.md b/qcsrc/dpdefs/doc.md index d279ced47..240eec0c1 100644 --- a/qcsrc/dpdefs/doc.md +++ b/qcsrc/dpdefs/doc.md @@ -18,6 +18,7 @@ bool CSQC_InputEvent(int eventtype, int x, int y); void CSQC_UpdateView(int width, int height); +// catch commands registered with registercommand bool CSQC_ConsoleCommand(string cmd); bool CSQC_Parse_TempEntity(); bool CSQC_Parse_StuffCmd(string msg); @@ -229,3 +230,85 @@ void URI_Get_Callback(int id, int status, string data); void GameCommand(string cmd); ``` + +# Misc + +## Trace + +### tracebox + + void tracebox(vector v1, vector min, vector max, vector v2, int tryents, entity ignoreentity); + +attempt to move an object from v1 to v2 of given size + +tryents: + * MOVE_NORMAL (0) + * MOVE_NOMONSTERS (1): ignore monsters + * MOVE_MISSILE (2): +15 to every extent + * MOVE_WORLDONLY (3): ignore everything except bsp + * MOVE_HITMODEL (4): hit model, not bbox + +### traceline + + void traceline(vector v1, vector v2, int tryents, entity ignoreentity); + +degenerate case of tracebox when min and max are equal + +### result globals + + bool trace_allsolid; + +trace never left solid + + bool trace_startsolid; + +trace started inside solid + + float trace_fraction; + +distance before collision: 0..1, 1 if no collision + + vector trace_endpos; + +v1 + (v2 - v1) * trace_fraction + + vector trace_plane_normal; + +normalized plane normal, '0 0 0' if no collision. +May be present if edges touch without clipping, use `trace_fraction < 1` as a determinant instead + + float trace_plane_dist; + + + + entity trace_ent; + +entity hit, if any + + bool trace_inopen; + + + + bool trace_inwater; + + + + int trace_dpstartcontents; + +DPCONTENTS_ value at start position of trace + + int trace_dphitcontents; + +DPCONTENTS_ value of impacted surface (not contents at impact point, just contents of the surface that was hit) + + int trace_dphitq3surfaceflags; + +Q3SURFACEFLAG_ value of impacted surface + + string trace_dphittexturename; + +texture name of impacted surface + + int trace_networkentity; + + -- 2.39.2