]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
wrap some more stuff, cleanup
authorMartin Taibr <taibr.martin@gmail.com>
Tue, 13 Nov 2018 21:23:03 +0000 (22:23 +0100)
committerMartin Taibr <taibr.martin@gmail.com>
Tue, 13 Nov 2018 21:23:03 +0000 (22:23 +0100)
qcsrc/common/mutators/mutator/spawn_near_teammate/sv_spawn_near_teammate.qc
qcsrc/dpdefs/csprogsdefs.qh
qcsrc/dpdefs/dpextensions.qh
qcsrc/lib/deglobalization.qh

index b7e91b79729926517449916d55f0cd19d421617c..523254770f572511e3bdcb7bad87b9fee58d429e 100644 (file)
@@ -103,9 +103,7 @@ MUTATOR_HOOKFUNCTION(spawn_near_teammate, PlayerSpawn)
                        vector horiz_vel = vec2(it.velocity);
                        // when walking slowly sideways, we assume the player wants a clear shot ahead - spawn behind him according to where he's looking
                        // when running fast, spawn behind him according to his direction of movement to prevent colliding with the newly spawned player
-                       vector forward = '0 0 0';
-                       vector right = '0 0 0';
-                       vector up = '0 0 0';
+                       NEW_VECS(forward, right, up);
                        if (vdist(horiz_vel, >, autocvar_sv_maxspeed + 50))
                        {
                                FIXED_MAKE_VECTORS(vectoangles(horiz_vel), forward, right, up);
index 7259b905d7f3a50c8c98613b4dce24e6cf08845e..0bd5c328ee2a48afea3f46a8a8834de46463bb8a 100644 (file)
 void(vector ang) _makevectors_hidden = #1;
 //#define makevectors DO_NOT_USE_GLOBALS_PREFER_MAKE_VECTORS_MACRO_INSTEAD
 
-void(vector dir) _vectorvectors_hidden = #432;
-
-#define vectorvectors DO_NOT_USE_GLOBALS_PREFER_VECTOR_VECTORS_MACRO_INSTEAD
-
 #define skel_get_bonerel DO_NOT_USE_GLOBALS // not used anywhere so not wrapped
 
 vector(float skel, float bonenum) _skel_get_boneabs_hidden = #270;
@@ -64,3 +60,12 @@ void(float skel, float bonenum, vector org) _skel_set_bone_hidden = #271;
 #define skel_mul_bone DO_NOT_USE_GLOBALS // not used anywhere so not wrapped
 
 #define skel_mul_bones DO_NOT_USE_GLOBALS // not used anywhere so not wrapped
+
+void(vector dir) _vectorvectors_hidden = #432;
+#define vectorvectors DO_NOT_USE_GLOBALS_PREFER_VECTOR_VECTORS_MACRO_INSTEAD
+
+vector(entity ent, float tagindex) _gettaginfo_hidden = #452;
+//#define gettaginfo DO_NOT_USE_GLOBALS_PREFER_GET_TAG_INFO_MACRO_INSTEAD
+
+#define getentity DO_NOT_USE_GLOBALS // not used anywhere so not wrapped
+#define getentityvec DO_NOT_USE_GLOBALS // not used anywhere so not wrapped
index 1976c3327af33675ef746cd4a9af9e8c77685d76..d6f6a072a0fea688e192219b28e21184a8c7b76b 100644 (file)
@@ -77,3 +77,6 @@ void(float skel, float bonenum, vector org) _skel_set_bone_hidden = #271;
 #define skel_mul_bone DO_NOT_USE_GLOBALS // not used anywhere so not wrapped
 
 #define skel_mul_bones DO_NOT_USE_GLOBALS // not used anywhere so not wrapped
+
+vector(entity ent, float tagindex) _gettaginfo_hidden = #452;
+//#define gettaginfo DO_NOT_USE_GLOBALS_PREFER_GET_TAG_INFO_MACRO_INSTEAD
index c4969f5fc1343ede5cae8ecfb8aa44273f15f9e6..a95f1367a2ab417a590734629cddcc05a9092727 100644 (file)
 //  - e.camera_transform / CL_VM_TransformView (in engine)
 //  - adddynamiclight
 //  - makestatic
-//  - gettaginfo
-//  - getentity
+
+#define NEW_VECS(...) EVAL(OVERLOAD(NEW_VECS, __VA_ARGS__))
+#define NEW_VECS_3(forward, right, up) vector forward = '0 0 0'; vector right = '0 0 0'; vector up = '0 0 0';
+#define NEW_VECS_4(forward, right, up, origin) NEW_VECS_3(forward, right, up); vector origin = '0 0 0';
+
+#define CLEAR_V_GLOBALS() v_forward = VEC_NAN; v_right = VEC_NAN; v_up = VEC_NAN;
+#define GET_V_GLOBALS(forward, right, up) forward = v_forward; right = v_right; up = v_up;
+#define SET_V_GLOBALS(forward, right, up) v_forward = forward; v_right = right; v_up = up;
 
 #ifdef GAMEQC
 STATIC_INIT(globals) {
@@ -31,9 +37,7 @@ STATIC_INIT(globals) {
        //LOG_INFOF("%f\n", x == x);
        //LOG_INFOF("%f\n", x != x);
 
-       v_forward = VEC_NAN;
-       v_right = VEC_NAN;
-       v_up = VEC_NAN;
+       CLEAR_V_GLOBALS();
 }
 #endif
 
@@ -41,54 +45,49 @@ STATIC_INIT(globals) {
 /// Always use this instead of raw `makevectors` to make the data flow clear.
 #define MAKE_VECTORS(angles, forward, right, up) MACRO_BEGIN { \
        _makevectors_hidden(angles); \
-       forward = v_forward; \
-       right = v_right; \
-       up = v_up; \
-       v_forward = VEC_NAN; \
-       v_right = VEC_NAN; \
-       v_up = VEC_NAN; \
+       GET_V_GLOBALS(forward, right, up); \
+       CLEAR_V_GLOBALS(); \
 } MACRO_END
 
 /// Same as `MAKE_VECTORS` but also creates the locals for convenience.
 #define MAKE_VECTORS_NEW(angles, forward, right, up) \
-       vector forward = '0 0 0'; \
-       vector right = '0 0 0'; \
-       vector up = '0 0 0'; \
+       NEW_VECS(forward, right, up); \
        MAKE_VECTORS(angles, forward, right, up);
 
+/// Returns all 4 vectors by assigning to them (instead of returning a value) for consistency (and sanity)
+#define SKEL_GET_BONE_ABS(skel, bonenum, forward, right, up, origin) MACRO_BEGIN { \
+       origin = _skel_get_boneabs_hidden(skel, bonenum) \
+       GET_V_GLOBALS(forward, right, up); \
+       CLEAR_V_GLOBALS(); \
+} MACRO_END
+
+#define SKEL_GET_BONE_ABS_NEW(skel, bonenum, forward, right, up, origin) \
+       NEW_VECS(forward, right, up, origin); \
+       SKEL_GET_BONE_ABS(skel, bonenum, forward, right, up, origin)
+
+#define SKEL_SET_BONE(skel, bonenum, org, forward, right, up) MACRO_BEGIN { \
+       SET_V_GLOBALS(forward, right, up); \
+       _skel_set_bone_hidden(skel, bonenum, org); \
+       CLEAR_V_GLOBALS(); \
+} MACRO_END
+
 #define VECTOR_VECTORS(forward_in, forward, right, up) MACRO_BEGIN { \
        _vectorvectors_hidden(forward_in); \
-       forward = v_forward; \
-       right = v_right; \
-       up = v_up; \
-       v_forward = VEC_NAN; \
-       v_right = VEC_NAN; \
-       v_up = VEC_NAN; \
+       GET_V_GLOBALS(forward, right, up); \
+       CLEAR_V_GLOBALS(); \
 } MACRO_END
 
 #define VECTOR_VECTORS_NEW(forward_in, forward, right, up) \
-       vector forward = '0 0 0'; \
-       vector right = '0 0 0'; \
-       vector up = '0 0 0'; \
+       NEW_VECS(forward, right, up); \
        VECTOR_VECTORS(forward_in, forward, right, up);
 
-/// Returns all 4 vectors by assigning to them (instead of returning a value) for consistency (and sanity)
-#define SKEL_GET_BONE_ABS(skel, bonenum, forward, right, up, origin) MACRO_BEGIN { \
-       origin = _skel_get_boneabs_hidden(skel, bonenum) \
-       forward = v_forward; \
-       right = v_right; \
-       up = v_up; \
-       v_forward = VEC_NAN; \
-       v_right = VEC_NAN; \
-       v_up = VEC_NAN; \
+/// Note that this only avoids the v_* globals, not the gettaginfo_* ones
+#define GET_TAG_INFO(ent, tagindex, forward, right, up, origin) MACRO_BEGIN {  \
+       origin = _gettaginfo_hidden(ent, tagindex); \
+       GET_V_GLOBALS(forward, right, up); \
+       CLEAR_V_GLOBALS(); \
 } MACRO_END
 
-#define SKEL_SET_BONE(skel, bonenum, org, forward, right, up) MACRO_BEGIN { \
-       v_forward = forward; \
-       v_right = right; \
-       v_up = up; \
-       _skel_set_bone_hidden(skel, bonenum, org); \
-       v_forward = VEC_NAN; \
-       v_right = VEC_NAN; \
-       v_up = VEC_NAN; \
-} MACRO_END
+#define GET_TAG_INFO_NEW(ent, tagindex, forward, right, up, origin) \
+       NEW_VECS(forward, right, up, origin); \
+       GET_TAG_INFO(ent, tagindex, forward, right, up, origin);