#ifndef QCC_SUPPORT_POW
#define pow(a, b) pow(a, b)
#else
- #define pow(a, b) (a ** b)
+ #define pow(a, b) ((a) ** (b))
#endif
#include "self.qh"
#include "warpzone/mathlib.qc"
+// needs to be included before any of the functions which use globals are called
+#include "deglobalization.qh"
+
#include "accumulate.qh"
#include "angle.qc"
#include "arraylist.qh"
#include "draw.qh"
#include "enumclass.qh"
#include "file.qh"
+#include "float.qh"
#include "functional.qh"
#include "i18n.qh"
#include "intrusivelist.qh"
#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();
#endif
#ifdef CSQC
- void _CSQC_Init();
- void CSQC_Init() { if (_CSQC_Init) _CSQC_Init(); }
+ void _CSQC_Init(float apilevel, string enginename, float engineversion);
+ void CSQC_Init(float apilevel, string enginename, float engineversion) { if (_CSQC_Init) _CSQC_Init(apilevel, enginename, engineversion); }
#define CSQC_Init _CSQC_Init
void _CSQC_Shutdown();
void CSQC_Shutdown() { if (_CSQC_Shutdown) _CSQC_Shutdown(); }
#define CSQC_Shutdown _CSQC_Shutdown
- void _CSQC_UpdateView(entity this, float w, float h);
- void CSQC_UpdateView(float w, float h) { ENGINE_EVENT(); if (_CSQC_UpdateView) _CSQC_UpdateView(this, w, h); }
+ void _CSQC_UpdateView(entity this, float w, float h, bool notmenu);
+ void CSQC_UpdateView(float w, float h, bool notmenu) { ENGINE_EVENT(); if (_CSQC_UpdateView) _CSQC_UpdateView(this, w, h, notmenu); }
#define CSQC_UpdateView _CSQC_UpdateView
bool _CSQC_InputEvent(int inputType, float nPrimary, float nSecondary);