// a dummy macro that prevents the "hanging ;" warning
#define ENDS_WITH_CURLY_BRACE
+// TODO make ascii art pic of xzibit
+// YO DAWG!
+// I HERD YO LIEK MACROS
+// SO I PUT A MACRO DEFINITION IN YO MACRO DEFINITION
+// SO YO CAN EXPAND MACROS WHILE YO EXPAND MACROS
#define ACCUMULATE_FUNCTION(func,otherfunc) \
#ifdef func \
void __merge__##otherfunc() { func(); otherfunc(); } \
// z = 1 if a real solution exists, 0 if not
// if no real solution exists, x contains the real part and y the imaginary part of the complex solutions x+iy and x-iy
+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);
// execute-stuff-next-frame subsystem
void execute_next_frame();
void queue_to_execute_next_frame(string s);
+
+// for marking written-to values as unused where it's a good idea to do this
+noref float unused_float;