-#define WANT_CONST
// commonly used, but better make them macros
#define TRUE 1
#define FALSE 0
float buf_load(string filename);
void buf_save(float buf, string filename);
-// modulo function
-#ifndef MENUQC
-float mod(float a, float b) { return a - (floor(a / b) * b); }
-#endif
-
#define TIME_TO_NTHS(t,n) floor((t) * (n) + 0.4)
string format_time(float seconds);
string mmsss(float t);
vector solve_shotdirection(vector myorg, vector myvel, vector eorg, vector evel, float spd, float newton_style);
vector get_shotvelocity(vector myvel, vector mydir, float spd, float newton_style, float mi, float ma);
-void check_unacceptable_compiler_bugs();
-
float compressShotOrigin(vector v);
vector decompressShotOrigin(float f);
typedef float(entity a, entity b, entity pass) isConnectedFunction_t;
void FindConnectedComponent(entity e, .entity fld, findNextEntityNearFunction_t nxt, isConnectedFunction_t iscon, entity pass);
+#ifdef SVQC
+vector combine_to_vector(float x, float y, float z);
+vector get_corner_position(entity box, float corner);
+#endif
+
// expand multiple arguments into one argument by stripping parenthesis
#define XPD(...) __VA_ARGS__
// 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)))
+
+// Returns the correct difference between two always increasing numbers
+#define COMPARE_INCREASING(to,from) (to < from ? from + to + 2 : to - from)
\ No newline at end of file