#endif
#define TIME_TO_NTHS(t,n) floor((t) * (n) + 0.4)
+string format_time(float seconds);
string mmsss(float t);
string mmssss(float t);
string get_model_parameters_sex;
float get_model_parameters_weight;
float get_model_parameters_age;
+string get_model_parameters_description;
string get_model_parameters_bone_upperbody;
string get_model_parameters_bone_weapon;
#define MAX_AIM_BONES 4
string xencode(float f);
float xdecode(string s);
-#ifndef COMPAT_XON010_CHANNELS
+// Play all sounds via sound7, for access to the extra channels.
+// Otherwise, channels 8 to 15 would be blocked for a weird QW feature.
#define sound(e,c,s,v,a) sound7(e,c,s,v,a,0,0)
-#endif
float lowestbit(float f);
#define fprintf(file, ...) fputs(file, sprintf(__VA_ARGS__))
#define bprintf(...) bprint(sprintf(__VA_ARGS__))
-#ifndef MENUQC
+//#ifndef MENUQC
void backtrace(string msg);
-#endif
+//#endif
// color code replace, place inside of sprintf and parse the string... defaults described as constants
// foreground/normal colors
float Mod_Q1BSP_SuperContentsFromNativeContents(float nativecontents);
float Mod_Q1BSP_NativeContentsFromSuperContents(float supercontents);
#endif
+
+// Quadratic splines (bezier)
+vector bezier_quadratic_getpoint(vector a, vector p, vector b, float t);
+vector bezier_quadratic_getderivative(vector a, vector p, vector b, float t);
+
+#define APPEND_TO_STRING(list,sep,add) ((list) = (((list) != "") ? strcat(list, sep, add) : (add)))