#define bool float
#endif
+#ifndef QCC_SUPPORT_ACCUMULATE
+ #warning "QCC does not support accumulate, may not compile correctly"
+ #define ACCUMULATE
+#else
+ #define ACCUMULATE [[accumulate]]
+#endif
+
#ifndef QCC_SUPPORT_ERASEABLE
#define ERASEABLE
#else
#define ERASEABLE [[eraseable]]
#endif
+#ifndef QCC_SUPPORT_ALIAS
+ #warning "QCC does not support alias, may not compile correctly"
+ #define ALIAS(var)
+#else
+ #define ALIAS(var) [[alias(var)]]
+#endif
+
#include <dpdefs/pre.qh>
#if defined(CSQC)
#include <dpdefs/post.qh>
+#ifndef QCC_SUPPORT_POW
+ #define pow(a, b) pow(a, b)
+#else
+ #define pow(a, b) ((a) ** (b))
+#endif
+
#include "self.qh"
#define USING(name, T) typedef T name
#include "oo.qh"
#include "p2mathlib.qc"
#include "progname.qh"
+#include "promise.qc"
#include "random.qc"
#include "registry.qh"
#include "registry_net.qh"
#define objerror_safe(e) make_safe_for_remove(e)
#endif
-#define objerror(this, msg) MACRO_BEGIN { \
+#define objerror(this, msg) MACRO_BEGIN \
LOG_WARN("======OBJECT ERROR======"); \
entity _e = (this); \
eprint(_e); \
objerror_safe(_e); \
delete(_e); \
LOG_WARNF("%s OBJECT ERROR in %s:\n%s\nTip: read above for entity information", PROGNAME, __FUNC__, msg); \
-} MACRO_END
+MACRO_END
#ifdef MENUQC
void _m_init();