#pragma once

#undef ChangeYaw
#undef checkclient
#undef droptofloor
#undef error
#undef movetogoal
#undef objerror
#undef remove
#undef walkmove
#undef setcolor

#ifdef MENUQC
	#define NULL (RVALUE, null_entity)
	#define world NULL
#else
	#define NULL (RVALUE, world)
#endif

// Shadow functions which use globals - see deglobalization.qh for details.
#define makevectors DO_NOT_USE_GLOBALS_PREFER_MAKE_VECTORS_MACRO_INSTEAD
#define aim DO_NOT_USE_GLOBALS
#define makestatic DO_NOT_USE_GLOBALS
#define skel_get_bonerel DO_NOT_USE_GLOBALS
#define skel_get_boneabs DO_NOT_USE_GLOBALS_PREFER_SKEL_GET_BONE_ABS_MACRO_INSTEAD
#define skel_set_bone DO_NOT_USE_GLOBALS_PREFER_SKEL_SET_BONE_MACRO_INSTEAD
#define skel_mul_bone DO_NOT_USE_GLOBALS
#define skel_mul_bones DO_NOT_USE_GLOBALS
#define adddynamiclight DO_NOT_USE_GLOBALS_PREFER_ADD_DYNAMIC_LIGHT_MACRO_INSTEAD
#define adddynamiclight2 DO_NOT_USE_GLOBALS_PREFER_ADD_DYNAMIC_LIGHT2_MACRO_INSTEAD
#define vectorvectors DO_NOT_USE_GLOBALS_PREFER_VECTOR_VECTORS_MACRO_INSTEAD
#define gettaginfo DO_NOT_USE_GLOBALS_PREFER_GET_TAG_INFO_MACRO_INSTEAD
#define getentity DO_NOT_USE_GLOBALS
#define getentityvec DO_NOT_USE_GLOBALS
