@@ -47,24 +47,48 @@ extern IEngineTrace* enginetrace;
47
47
// ---------------------------------------------------------------------------------
48
48
// Forward declarations.
49
49
// ---------------------------------------------------------------------------------
50
+ void export_ray_t (scope);
50
51
void export_engine_trace (scope);
52
+ void export_base_trace (scope);
51
53
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);
53
63
54
64
// ---------------------------------------------------------------------------------
55
65
// Declare the _trace module.
56
66
// ---------------------------------------------------------------------------------
57
67
DECLARE_SP_SUBMODULE (_engines, _trace)
58
68
{
69
+ export_ray_t (_trace);
59
70
export_engine_trace (_trace);
71
+ export_base_trace (_trace);
60
72
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);
61
85
}
62
86
63
87
64
88
// ---------------------------------------------------------------------------------
65
- // Exports IEngineTrace .
89
+ // Exports Ray_t .
66
90
// ---------------------------------------------------------------------------------
67
- void export_engine_trace (scope _trace)
91
+ void export_ray_t (scope _trace)
68
92
{
69
93
// Since Ray_t has members of the type AlignedVector that uses ALIGN16, we have
70
94
// to declare this class as noncopyable.
@@ -74,7 +98,14 @@ void export_engine_trace(scope _trace)
74
98
75
99
ADD_MEM_TOOLS (Ray_t)
76
100
;
101
+ }
102
+
77
103
104
+ // ---------------------------------------------------------------------------------
105
+ // Exports IEngineTrace.
106
+ // ---------------------------------------------------------------------------------
107
+ void export_engine_trace (scope _trace)
108
+ {
78
109
class_<IEngineTrace, boost::noncopyable>(" _EngineTrace" , no_init)
79
110
.def (" get_point_contents" ,
80
111
&IEngineTraceExt::GetPointContents,
@@ -149,7 +180,14 @@ void export_engine_trace(scope _trace)
149
180
;
150
181
151
182
_trace.attr (" engine_trace" ) = object (ptr (enginetrace));
183
+ }
184
+
152
185
186
+ // -----------------------------------------------------------------------------
187
+ // Exports CBaseTrace.
188
+ // -----------------------------------------------------------------------------
189
+ void export_base_trace (scope _trace)
190
+ {
153
191
class_<CBaseTrace, boost::noncopyable>(" BaseTrace" )
154
192
.def_readwrite (" start_position" ,
155
193
&CBaseTrace::startpos
@@ -185,13 +223,53 @@ void export_engine_trace(scope _trace)
185
223
186
224
ADD_MEM_TOOLS (CBaseTrace)
187
225
;
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" );
188
259
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
+
194
267
268
+ // -----------------------------------------------------------------------------
269
+ // Exports CGameTrace
270
+ // -----------------------------------------------------------------------------
271
+ void export_game_trace (scope _trace)
272
+ {
195
273
class_<CGameTrace, bases<CBaseTrace>, boost::noncopyable>(" GameTrace" )
196
274
.def (" did_hit_world" ,
197
275
&CGameTrace::DidHitWorld,
@@ -234,7 +312,14 @@ void export_engine_trace(scope _trace)
234
312
235
313
ADD_MEM_TOOLS (CGameTrace)
236
314
;
315
+ }
316
+
237
317
318
+ // -----------------------------------------------------------------------------
319
+ // Exports csurface_t
320
+ // -----------------------------------------------------------------------------
321
+ void export_surface_t (scope _trace)
322
+ {
238
323
class_<csurface_t >(" Surface" )
239
324
.def_readwrite (" name" ,
240
325
&csurface_t ::name
@@ -250,7 +335,14 @@ void export_engine_trace(scope _trace)
250
335
251
336
ADD_MEM_TOOLS (csurface_t )
252
337
;
338
+ }
253
339
340
+
341
+ // -----------------------------------------------------------------------------
342
+ // Exports csurface_t
343
+ // -----------------------------------------------------------------------------
344
+ void export_trace_filter (scope _trace)
345
+ {
254
346
// Trace filter baseclass
255
347
class_<ITraceFilterWrap, boost::noncopyable>(" TraceFilter" )
256
348
.def (" should_hit_entity" ,
@@ -265,7 +357,14 @@ void export_engine_trace(scope _trace)
265
357
266
358
ADD_MEM_TOOLS_WRAPPER (ITraceFilterWrap, ITraceFilter)
267
359
;
360
+ }
361
+
268
362
363
+ // -----------------------------------------------------------------------------
364
+ // Exports csurface_t
365
+ // -----------------------------------------------------------------------------
366
+ void export_entity_enumerator (scope _trace)
367
+ {
269
368
// Enumerator baseclass
270
369
class_<IEntityEnumeratorWrap, boost::noncopyable>(" EntityEnumerator" )
271
370
.def (" enum_entity" ,
@@ -275,16 +374,29 @@ void export_engine_trace(scope _trace)
275
374
276
375
ADD_MEM_TOOLS_WRAPPER (IEntityEnumeratorWrap, IEntityEnumerator)
277
376
;
377
+ }
378
+
278
379
380
+ // -----------------------------------------------------------------------------
381
+ // Exports TraceType_t
382
+ // -----------------------------------------------------------------------------
383
+ void export_trace_type_t (scope _trace)
384
+ {
279
385
// Trace types
280
386
enum_<TraceType_t>(" TraceType" )
281
387
.value (" EVERYTHING" , TRACE_EVERYTHING)
282
388
.value (" WORLD_ONLY" , TRACE_WORLD_ONLY)
283
389
.value (" ENTITIES_ONLY" , TRACE_ENTITIES_ONLY)
284
390
.value (" EVERYTHING_FILTER_PROPS" , TRACE_EVERYTHING_FILTER_PROPS)
285
391
;
392
+ }
286
393
287
- // Content flags
394
+
395
+ // -----------------------------------------------------------------------------
396
+ // Exports content flags
397
+ // -----------------------------------------------------------------------------
398
+ void export_content_flags (scope _trace)
399
+ {
288
400
_trace.attr (" CONTENTS_EMPTY" ) = CONTENTS_EMPTY;
289
401
_trace.attr (" CONTENTS_SOLID" ) = CONTENTS_SOLID;
290
402
_trace.attr (" CONTENTS_WINDOW" ) = CONTENTS_WINDOW;
@@ -318,8 +430,14 @@ void export_engine_trace(scope _trace)
318
430
_trace.attr (" CONTENTS_TRANSLUCENT" ) = CONTENTS_TRANSLUCENT;
319
431
_trace.attr (" CONTENTS_LADDER" ) = CONTENTS_LADDER;
320
432
_trace.attr (" CONTENTS_HITBOX" ) = CONTENTS_HITBOX;
433
+ }
321
434
322
- // Masks
435
+
436
+ // -----------------------------------------------------------------------------
437
+ // Exports content masks
438
+ // -----------------------------------------------------------------------------
439
+ void export_content_masks (scope _trace)
440
+ {
323
441
_trace.attr (" MASK_ALL" ) = MASK_ALL;
324
442
_trace.attr (" MASK_SOLID" ) = MASK_SOLID;
325
443
_trace.attr (" MASK_PLAYERSOLID" ) = MASK_PLAYERSOLID;
@@ -340,44 +458,33 @@ void export_engine_trace(scope _trace)
340
458
_trace.attr (" MASK_SPLITAREAPORTAL" ) = MASK_SPLITAREAPORTAL;
341
459
_trace.attr (" MASK_CURRENT" ) = MASK_CURRENT;
342
460
_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;
361
461
}
362
462
363
463
464
+
364
465
// -----------------------------------------------------------------------------
365
- // Exports world size constants.
466
+ // Exports surface flags
366
467
// -----------------------------------------------------------------------------
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 {};
371
471
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