X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Futil.qc;h=c50a3ba5350d3b1fd1bdb394bc0b3ca5852026dd;hb=8545da470d39a8a9d15e7df35cd6ea70a6e10321;hp=15863f369f4d0da86e849d93d5ee0b77b609fde8;hpb=7d99942d0e7679393391c8055a40ae9f37c8c1e9;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/util.qc b/qcsrc/common/util.qc index 15863f369..c50a3ba53 100644 --- a/qcsrc/common/util.qc +++ b/qcsrc/common/util.qc @@ -874,7 +874,7 @@ float cvar_settemp(string tmp_cvar, string tmp_value) if(!cvar_type(tmp_cvar)) { - print(sprintf("Error: cvar %s doesn't exist!\n", tmp_cvar)); + printf("Error: cvar %s doesn't exist!\n", tmp_cvar); return 0; } @@ -911,7 +911,7 @@ float cvar_settemp_restore() ++i; } else - print(sprintf("Error: cvar %s doesn't exist anymore! It can still be restored once it's manually recreated.\n", e.netname)); + printf("Error: cvar %s doesn't exist anymore! It can still be restored once it's manually recreated.\n", e.netname); } return i; @@ -2752,3 +2752,55 @@ float Announcer_PickNumber(float type, float num) return NOTIF_ABORT; // abort sending if none of these numbers were right } #endif + +#ifndef MENUQC +float Mod_Q1BSP_SuperContentsFromNativeContents(float nativecontents) +{ + switch(nativecontents) + { + case CONTENT_EMPTY: + return 0; + case CONTENT_SOLID: + return DPCONTENTS_SOLID | DPCONTENTS_OPAQUE; + case CONTENT_WATER: + return DPCONTENTS_WATER; + case CONTENT_SLIME: + return DPCONTENTS_SLIME; + case CONTENT_LAVA: + return DPCONTENTS_LAVA | DPCONTENTS_NODROP; + case CONTENT_SKY: + return DPCONTENTS_SKY | DPCONTENTS_NODROP | DPCONTENTS_OPAQUE; // to match behaviour of Q3 maps, let sky count as opaque + } + return 0; +} + +float Mod_Q1BSP_NativeContentsFromSuperContents(float supercontents) +{ + if(supercontents & (DPCONTENTS_SOLID | DPCONTENTS_BODY)) + return CONTENT_SOLID; + if(supercontents & DPCONTENTS_SKY) + return CONTENT_SKY; + if(supercontents & DPCONTENTS_LAVA) + return CONTENT_LAVA; + if(supercontents & DPCONTENTS_SLIME) + return CONTENT_SLIME; + if(supercontents & DPCONTENTS_WATER) + return CONTENT_WATER; + return CONTENT_EMPTY; +} +#endif + +vector bezier_quadratic_getpoint(vector a, vector b, vector c, float t) +{ + return + (c - 2 * b + a) * (t * t) + + (b - a) * (2 * t) + + a; +} + +vector bezier_quadratic_getderivative(vector a, vector b, vector c, float t) +{ + return + (c - 2 * b + a) * (2 * t) + + (b - a) * 2; +}