Skip to content

Commit af05817

Browse files
committed
Reorganized _engines._trace
1 parent ea0035a commit af05817

File tree

2 files changed

+154
-97
lines changed

2 files changed

+154
-97
lines changed

Diff for: addons/source-python/packages/source-python/engines/trace.py

+2-52
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,10 @@
2222
from _engines._trace import Ray
2323
from _engines._trace import engine_trace
2424
from _engines._trace import BaseTrace
25-
from _engines._trace import DISPSURF_FLAG_SURFACE
26-
from _engines._trace import DISPSURF_FLAG_WALKABLE
27-
from _engines._trace import DISPSURF_FLAG_BUILDABLE
28-
from _engines._trace import DISPSURF_FLAG_SURFPROP1
29-
from _engines._trace import DISPSURF_FLAG_SURFPROP2
25+
from _engines._trace import DisplacementFlags
3026
from _engines._trace import GameTrace
3127
from _engines._trace import Surface
28+
from _engines._trace import SurfaceFlags
3229
from _engines._trace import TraceFilter
3330
from _engines._trace import EntityEnumerator
3431
from _engines._trace import TraceType
@@ -94,22 +91,6 @@
9491
from _engines._trace import MIN_COORD_INTEGER
9592
from _engines._trace import MIN_COORD_FRACTION
9693
from _engines._trace import MIN_COORD_FLOAT
97-
from _engines._trace import SURF_LIGHT
98-
from _engines._trace import SURF_SKY2D
99-
from _engines._trace import SURF_SKY
100-
from _engines._trace import SURF_WARP
101-
from _engines._trace import SURF_TRANS
102-
from _engines._trace import SURF_NOPORTAL
103-
from _engines._trace import SURF_TRIGGER
104-
from _engines._trace import SURF_NODRAW
105-
from _engines._trace import SURF_HINT
106-
from _engines._trace import SURF_SKIP
107-
from _engines._trace import SURF_NOLIGHT
108-
from _engines._trace import SURF_BUMPLIGHT
109-
from _engines._trace import SURF_NOSHADOWS
110-
from _engines._trace import SURF_NODECALS
111-
from _engines._trace import SURF_NOCHOP
112-
from _engines._trace import SURF_HITBOX
11394

11495

11596
# =============================================================================
@@ -143,16 +124,6 @@
143124
# =============================================================================
144125
# >> ENUMERATORS
145126
# =============================================================================
146-
class DisplacementFlags(IntEnum):
147-
"""Displacement flags wrapper enumerator."""
148-
149-
SURFACE = DISPSURF_FLAG_SURFACE
150-
WALKABLE = DISPSURF_FLAG_WALKABLE
151-
BUILDABLE = DISPSURF_FLAG_BUILDABLE
152-
SURFPROP1 = DISPSURF_FLAG_SURFPROP1
153-
SURFPROP2 = DISPSURF_FLAG_SURFPROP2
154-
155-
156127
class ContentFlags(IntEnum):
157128
"""Content flags wrapper enumerator."""
158129

@@ -216,27 +187,6 @@ class ContentMasks(IntEnum):
216187
DEAD_SOLID = MASK_DEADSOLID
217188

218189

219-
class SurfaceFlags(IntEnum):
220-
"""Surface flags wrapper enumerator."""
221-
222-
LIGHT = SURF_LIGHT
223-
SKY2D = SURF_SKY2D
224-
SKY = SURF_SKY
225-
WARP = SURF_WARP
226-
TRANS = SURF_TRANS
227-
NOPORTAL = SURF_NOPORTAL
228-
TRIGGER = SURF_TRIGGER
229-
NODRAW = SURF_NODRAW
230-
HINT = SURF_HINT
231-
SKIP = SURF_SKIP
232-
NOLIGHT = SURF_NOLIGHT
233-
BUMPLIGHT = SURF_BUMPLIGHT
234-
NOSHADOWS = SURF_NOSHADOWS
235-
NODECALS = SURF_NODECALS
236-
NOCHOP = SURF_NOCHOP
237-
HITBOX = SURF_HITBOX
238-
239-
240190
# =============================================================================
241191
# >> CLASSES
242192
# =============================================================================

Diff for: src/core/modules/engines/engines_trace_wrap.cpp

+152-45
Original file line numberDiff line numberDiff line change
@@ -47,24 +47,48 @@ extern IEngineTrace* enginetrace;
4747
//---------------------------------------------------------------------------------
4848
// Forward declarations.
4949
//---------------------------------------------------------------------------------
50+
void export_ray_t(scope);
5051
void export_engine_trace(scope);
52+
void export_base_trace(scope);
5153
void export_worldsize(scope);
52-
54+
void export_displacement_flags(scope);
55+
void export_game_trace(scope);
56+
void export_surface_t(scope);
57+
void export_trace_filter(scope);
58+
void export_entity_enumerator(scope);
59+
void export_trace_type_t(scope);
60+
void export_content_flags(scope);
61+
void export_content_masks(scope);
62+
void export_surface_flags(scope);
5363

5464
//---------------------------------------------------------------------------------
5565
// Declare the _trace module.
5666
//---------------------------------------------------------------------------------
5767
DECLARE_SP_SUBMODULE(_engines, _trace)
5868
{
69+
export_ray_t(_trace);
5970
export_engine_trace(_trace);
71+
export_base_trace(_trace);
6072
export_worldsize(_trace);
73+
export_displacement_flags(_trace);
74+
export_game_trace(_trace);
75+
export_surface_t(_trace);
76+
export_trace_filter(_trace);
77+
export_entity_enumerator(_trace);
78+
export_trace_type_t(_trace);
79+
80+
// Sucks that we can't use enum for content flags and masks. They are too big
81+
// and crash the server
82+
export_content_flags(_trace);
83+
export_content_masks(_trace);
84+
export_surface_flags(_trace);
6185
}
6286

6387

6488
//---------------------------------------------------------------------------------
65-
// Exports IEngineTrace.
89+
// Exports Ray_t.
6690
//---------------------------------------------------------------------------------
67-
void export_engine_trace(scope _trace)
91+
void export_ray_t(scope _trace)
6892
{
6993
// Since Ray_t has members of the type AlignedVector that uses ALIGN16, we have
7094
// to declare this class as noncopyable.
@@ -74,7 +98,14 @@ void export_engine_trace(scope _trace)
7498

7599
ADD_MEM_TOOLS(Ray_t)
76100
;
101+
}
102+
77103

104+
//---------------------------------------------------------------------------------
105+
// Exports IEngineTrace.
106+
//---------------------------------------------------------------------------------
107+
void export_engine_trace(scope _trace)
108+
{
78109
class_<IEngineTrace, boost::noncopyable>("_EngineTrace", no_init)
79110
.def("get_point_contents",
80111
&IEngineTraceExt::GetPointContents,
@@ -149,7 +180,14 @@ void export_engine_trace(scope _trace)
149180
;
150181

151182
_trace.attr("engine_trace") = object(ptr(enginetrace));
183+
}
184+
152185

186+
//-----------------------------------------------------------------------------
187+
// Exports CBaseTrace.
188+
//-----------------------------------------------------------------------------
189+
void export_base_trace(scope _trace)
190+
{
153191
class_<CBaseTrace, boost::noncopyable>("BaseTrace")
154192
.def_readwrite("start_position",
155193
&CBaseTrace::startpos
@@ -185,13 +223,53 @@ void export_engine_trace(scope _trace)
185223

186224
ADD_MEM_TOOLS(CBaseTrace)
187225
;
226+
}
227+
228+
229+
//-----------------------------------------------------------------------------
230+
// Exports world size constants.
231+
//-----------------------------------------------------------------------------
232+
void export_worldsize(scope _trace)
233+
{
234+
_trace.attr("MAX_COORD_INTEGER") = MAX_COORD_INTEGER;
235+
_trace.attr("MIN_COORD_INTEGER") = MIN_COORD_INTEGER;
236+
237+
_trace.attr("MAX_COORD_FRACTION") = MAX_COORD_FRACTION;
238+
_trace.attr("MIN_COORD_FRACTION") = MIN_COORD_FRACTION;
239+
240+
_trace.attr("MAX_COORD_FLOAT") = MAX_COORD_FLOAT;
241+
_trace.attr("MIN_COORD_FLOAT") = MIN_COORD_FLOAT;
242+
243+
_trace.attr("COORD_EXTENT") = COORD_EXTENT;
244+
245+
_trace.attr("MAX_TRACE_LENGTH") = MAX_TRACE_LENGTH;
246+
247+
_trace.attr("MAX_COORD_RANGE") = MAX_COORD_RANGE;
248+
}
249+
250+
251+
//-----------------------------------------------------------------------------
252+
// Exports displacement flags
253+
//-----------------------------------------------------------------------------
254+
void export_displacement_flags(scope _trace)
255+
{
256+
enum DisplacementFlags {};
257+
258+
enum_<DisplacementFlags> _DisplacementFlags("DisplacementFlags");
188259

189-
_trace.attr("DISPSURF_FLAG_SURFACE") = DISPSURF_FLAG_SURFACE;
190-
_trace.attr("DISPSURF_FLAG_WALKABLE") = DISPSURF_FLAG_WALKABLE;
191-
_trace.attr("DISPSURF_FLAG_BUILDABLE") = DISPSURF_FLAG_BUILDABLE;
192-
_trace.attr("DISPSURF_FLAG_SURFPROP1") = DISPSURF_FLAG_SURFPROP1;
193-
_trace.attr("DISPSURF_FLAG_SURFPROP2") = DISPSURF_FLAG_SURFPROP2;
260+
_DisplacementFlags.value("SURFACE", (DisplacementFlags) DISPSURF_FLAG_SURFACE);
261+
_DisplacementFlags.value("WALKABLE", (DisplacementFlags) DISPSURF_FLAG_WALKABLE);
262+
_DisplacementFlags.value("BUILDABLE", (DisplacementFlags) DISPSURF_FLAG_BUILDABLE);
263+
_DisplacementFlags.value("SURFPROP1", (DisplacementFlags) DISPSURF_FLAG_SURFPROP1);
264+
_DisplacementFlags.value("SURFPROP2", (DisplacementFlags) DISPSURF_FLAG_SURFPROP2);
265+
}
266+
194267

268+
//-----------------------------------------------------------------------------
269+
// Exports CGameTrace
270+
//-----------------------------------------------------------------------------
271+
void export_game_trace(scope _trace)
272+
{
195273
class_<CGameTrace, bases<CBaseTrace>, boost::noncopyable>("GameTrace")
196274
.def("did_hit_world",
197275
&CGameTrace::DidHitWorld,
@@ -234,7 +312,14 @@ void export_engine_trace(scope _trace)
234312

235313
ADD_MEM_TOOLS(CGameTrace)
236314
;
315+
}
316+
237317

318+
//-----------------------------------------------------------------------------
319+
// Exports csurface_t
320+
//-----------------------------------------------------------------------------
321+
void export_surface_t(scope _trace)
322+
{
238323
class_<csurface_t>("Surface")
239324
.def_readwrite("name",
240325
&csurface_t::name
@@ -250,7 +335,14 @@ void export_engine_trace(scope _trace)
250335

251336
ADD_MEM_TOOLS(csurface_t)
252337
;
338+
}
253339

340+
341+
//-----------------------------------------------------------------------------
342+
// Exports csurface_t
343+
//-----------------------------------------------------------------------------
344+
void export_trace_filter(scope _trace)
345+
{
254346
// Trace filter baseclass
255347
class_<ITraceFilterWrap, boost::noncopyable>("TraceFilter")
256348
.def("should_hit_entity",
@@ -265,7 +357,14 @@ void export_engine_trace(scope _trace)
265357

266358
ADD_MEM_TOOLS_WRAPPER(ITraceFilterWrap, ITraceFilter)
267359
;
360+
}
361+
268362

363+
//-----------------------------------------------------------------------------
364+
// Exports csurface_t
365+
//-----------------------------------------------------------------------------
366+
void export_entity_enumerator(scope _trace)
367+
{
269368
// Enumerator baseclass
270369
class_<IEntityEnumeratorWrap, boost::noncopyable>("EntityEnumerator")
271370
.def("enum_entity",
@@ -275,16 +374,29 @@ void export_engine_trace(scope _trace)
275374

276375
ADD_MEM_TOOLS_WRAPPER(IEntityEnumeratorWrap, IEntityEnumerator)
277376
;
377+
}
378+
278379

380+
//-----------------------------------------------------------------------------
381+
// Exports TraceType_t
382+
//-----------------------------------------------------------------------------
383+
void export_trace_type_t(scope _trace)
384+
{
279385
// Trace types
280386
enum_<TraceType_t>("TraceType")
281387
.value("EVERYTHING", TRACE_EVERYTHING)
282388
.value("WORLD_ONLY", TRACE_WORLD_ONLY)
283389
.value("ENTITIES_ONLY", TRACE_ENTITIES_ONLY)
284390
.value("EVERYTHING_FILTER_PROPS", TRACE_EVERYTHING_FILTER_PROPS)
285391
;
392+
}
286393

287-
// Content flags
394+
395+
//-----------------------------------------------------------------------------
396+
// Exports content flags
397+
//-----------------------------------------------------------------------------
398+
void export_content_flags(scope _trace)
399+
{
288400
_trace.attr("CONTENTS_EMPTY") = CONTENTS_EMPTY;
289401
_trace.attr("CONTENTS_SOLID") = CONTENTS_SOLID;
290402
_trace.attr("CONTENTS_WINDOW") = CONTENTS_WINDOW;
@@ -318,8 +430,14 @@ void export_engine_trace(scope _trace)
318430
_trace.attr("CONTENTS_TRANSLUCENT") = CONTENTS_TRANSLUCENT;
319431
_trace.attr("CONTENTS_LADDER") = CONTENTS_LADDER;
320432
_trace.attr("CONTENTS_HITBOX") = CONTENTS_HITBOX;
433+
}
321434

322-
// Masks
435+
436+
//-----------------------------------------------------------------------------
437+
// Exports content masks
438+
//-----------------------------------------------------------------------------
439+
void export_content_masks(scope _trace)
440+
{
323441
_trace.attr("MASK_ALL") = MASK_ALL;
324442
_trace.attr("MASK_SOLID") = MASK_SOLID;
325443
_trace.attr("MASK_PLAYERSOLID") = MASK_PLAYERSOLID;
@@ -340,44 +458,33 @@ void export_engine_trace(scope _trace)
340458
_trace.attr("MASK_SPLITAREAPORTAL") = MASK_SPLITAREAPORTAL;
341459
_trace.attr("MASK_CURRENT") = MASK_CURRENT;
342460
_trace.attr("MASK_DEADSOLID") = MASK_DEADSOLID;
343-
344-
// Surface flags
345-
_trace.attr("SURF_LIGHT") = SURF_LIGHT;
346-
_trace.attr("SURF_SKY2D") = SURF_SKY2D;
347-
_trace.attr("SURF_SKY") = SURF_SKY;
348-
_trace.attr("SURF_WARP") = SURF_WARP;
349-
_trace.attr("SURF_TRANS") = SURF_TRANS;
350-
_trace.attr("SURF_NOPORTAL") = SURF_NOPORTAL;
351-
_trace.attr("SURF_TRIGGER") = SURF_TRIGGER;
352-
_trace.attr("SURF_NODRAW") = SURF_NODRAW;
353-
_trace.attr("SURF_HINT") = SURF_HINT;
354-
_trace.attr("SURF_SKIP") = SURF_SKIP;
355-
_trace.attr("SURF_NOLIGHT") = SURF_NOLIGHT;
356-
_trace.attr("SURF_BUMPLIGHT") = SURF_BUMPLIGHT;
357-
_trace.attr("SURF_NOSHADOWS") = SURF_NOSHADOWS;
358-
_trace.attr("SURF_NODECALS") = SURF_NODECALS;
359-
_trace.attr("SURF_NOCHOP") = SURF_NOCHOP;
360-
_trace.attr("SURF_HITBOX") = SURF_HITBOX;
361461
}
362462

363463

464+
364465
//-----------------------------------------------------------------------------
365-
// Exports world size constants.
466+
// Exports surface flags
366467
//-----------------------------------------------------------------------------
367-
void export_worldsize(scope _trace)
368-
{
369-
_trace.attr("MAX_COORD_INTEGER") = MAX_COORD_INTEGER;
370-
_trace.attr("MIN_COORD_INTEGER") = MIN_COORD_INTEGER;
468+
void export_surface_flags(scope _trace)
469+
{
470+
enum SurfaceFlags {};
371471

372-
_trace.attr("MAX_COORD_FRACTION") = MAX_COORD_FRACTION;
373-
_trace.attr("MIN_COORD_FRACTION") = MIN_COORD_FRACTION;
374-
375-
_trace.attr("MAX_COORD_FLOAT") = MAX_COORD_FLOAT;
376-
_trace.attr("MIN_COORD_FLOAT") = MIN_COORD_FLOAT;
377-
378-
_trace.attr("COORD_EXTENT") = COORD_EXTENT;
379-
380-
_trace.attr("MAX_TRACE_LENGTH") = MAX_TRACE_LENGTH;
381-
382-
_trace.attr("MAX_COORD_RANGE") = MAX_COORD_RANGE;
383-
}
472+
enum_<SurfaceFlags> _SurfaceFlags("SurfaceFlags");
473+
474+
_SurfaceFlags.value("LIGHT", (SurfaceFlags) SURF_LIGHT);
475+
_SurfaceFlags.value("SKY2D", (SurfaceFlags) SURF_SKY2D);
476+
_SurfaceFlags.value("SKY", (SurfaceFlags) SURF_SKY);
477+
_SurfaceFlags.value("WARP", (SurfaceFlags) SURF_WARP);
478+
_SurfaceFlags.value("TRANS", (SurfaceFlags) SURF_TRANS);
479+
_SurfaceFlags.value("NOPORTAL", (SurfaceFlags) SURF_NOPORTAL);
480+
_SurfaceFlags.value("TRIGGER", (SurfaceFlags) SURF_TRIGGER);
481+
_SurfaceFlags.value("NODRAW", (SurfaceFlags) SURF_NODRAW);
482+
_SurfaceFlags.value("HINT", (SurfaceFlags) SURF_HINT);
483+
_SurfaceFlags.value("SKIP", (SurfaceFlags) SURF_SKIP);
484+
_SurfaceFlags.value("NOLIGHT", (SurfaceFlags) SURF_NOLIGHT);
485+
_SurfaceFlags.value("BUMPLIGHT", (SurfaceFlags) SURF_BUMPLIGHT);
486+
_SurfaceFlags.value("NOSHADOWS", (SurfaceFlags) SURF_NOSHADOWS);
487+
_SurfaceFlags.value("NODECALS", (SurfaceFlags) SURF_NODECALS);
488+
_SurfaceFlags.value("NOCHOP", (SurfaceFlags) SURF_NOCHOP);
489+
_SurfaceFlags.value("HITBOX", (SurfaceFlags) SURF_HITBOX);
490+
}

0 commit comments

Comments
 (0)