X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Flib%2Fwarpzone%2Fanglestransform.qh;h=b287651a10a4fb868acdfeca18d2c0dfaf77b4d0;hb=1c616300cb338a07a8533141bb9b2f885c18a7e7;hp=5c356ea7ffa889489e99fe93d4ee397736ddf5e1;hpb=437d67dbc7631d6c49e922990d96461d3ff4b7b2;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/lib/warpzone/anglestransform.qh b/qcsrc/lib/warpzone/anglestransform.qh index 5c356ea7f..b287651a1 100644 --- a/qcsrc/lib/warpzone/anglestransform.qh +++ b/qcsrc/lib/warpzone/anglestransform.qh @@ -1,16 +1,24 @@ -#ifndef LIB_WARPZONE_ANGLETRANSFORM_H -#define LIB_WARPZONE_ANGLETRANSFORM_H +#pragma once -#define POSITIVE_PITCH_IS_DOWN +#ifndef POSITIVE_PITCH_IS_DOWN +#define POSITIVE_PITCH_IS_DOWN 1 +#endif -#ifdef POSITIVE_PITCH_IS_DOWN -#define fixedmakevectors makevectors -vector fixedvectoangles(vector a); -vector fixedvectoangles2(vector a, vector b); +#if POSITIVE_PITCH_IS_DOWN + #define fixedmakevectors makevectors + noref vector _fixedvectoangles; + #define fixedvectoangles(a) (_fixedvectoangles = vectoangles(a), _fixedvectoangles.x *= -1, _fixedvectoangles) + noref vector _fixedvectoangles2; + #define fixedvectoangles2(a, b) (_fixedvectoangles2 = vectoangles2(a, b), _fixedvectoangles2.x *= -1, _fixedvectoangles2) #else -void fixedmakevectors(vector a); -#define fixedvectoangles2 vectoangles2 -#define fixedvectoangles vectoangles + void fixedmakevectors(vector a) + { + // a makevectors that actually inverts vectoangles + a.x = -a.x; + makevectors(a); + } + #define fixedvectoangles2 vectoangles2 + #define fixedvectoangles vectoangles #endif vector AnglesTransform_Apply(vector transform, vector v); @@ -33,4 +41,3 @@ vector AnglesTransform_ToVAngles(vector v); // transformed = original * transform + postshift vector AnglesTransform_Multiply_GetPostShift(vector sf0, vector st0, vector t1, vector st1); vector AnglesTransform_PrePostShift_GetPostShift(vector sf, vector t, vector st); -#endif