//NOTE: This file exists purely for generation of the genericdefs/*_api.qc files distributed in ftetools.zip.
//It is consumed by FTE's build scripts and exists to normalize DP's misnamed defs to match FTE's, and some other fixups/omissions with DP defs.
//Patches welcome...

#pragma noref 1

#ifdef TEST
#include "fteextensions.qc"
#endif

//attempt to normalize things.
#define ReadAngle readangle
#define ReadByte readbyte
#define ReadChar readchar
#define ReadCoord readcoord
#define ReadFloat readfloat
#define ReadLong readlong
#define ReadShort readshort
#define ReadString readstring
#define draw_getimagesize drawgetimagesize
#define addstat clientstat

#define skel_mul_bone skel_premul_bone
#define skel_mul_bones skel_premul_bones

#define setsensitivityscale setsensitivityscaler
#define centerprint cprint
#define cs_project project
#define cs_unproject unproject
#define ChangeYaw changeyaw

#define entitybyindex edict_num
#define adddynamiclight2 dynamiclight_add

#define FIELD_ENTITY 		EV_ENTITY
#define FIELD_FLOAT			EV_FLOAT
#define FIELD_FUNCTION		EV_FUNCTION
#define FIELD_STRING		EV_STRING
#define FIELD_VECTOR		EV_VECTOR
#define STAT_MONSTERS		STAT_KILLEDMONSTERS
#define STAT_SECRETS		STAT_FOUNDSECRETS
#define STAT_WEAPONMODEL	STAT_WEAPONMODELI

#define E_ABSMAX			GE_ABSMAX
#define E_ABSMIN			GE_ABSMIN
#define E_ACTIVE			GE_ACTIVE
#define E_ALPHA			GE_ALPHA
#define E_COLORMOD		GE_COLORMOD
#define E_FORWARD			GE_FORWARD
#define E_MAXS			GE_MAXS
#define E_MINS				GE_MINS
#define E_ORIGIN			GE_ORIGIN
#define E_ORIGINANDVECTORS	GE_ORIGINANDVECTORS
#define E_PANTSCOLOR		GE_PANTSCOLOR
#define E_RIGHT			GE_RIGHT
#define E_SCALE			GE_SCALE
#define E_SHIRTCOLOR		GE_SHIRTCOLOR
#define E_SKIN				GE_SKIN
#define E_UP				GE_UP

#define VF_FOV_X			VF_FOVX
#define VF_FOV_Y			VF_FOVX


#define PI					M_PI
#define MASK_NORMAL		MASK_ENGINE	
#define MASK_ENGINEVIEWMODELS	MASK_VIEWMODEL
#define false				FALSE
#define true				TRUE




#ifdef SSQC
	#include "dpdefs/progsdefs.qc"
	#include "dpdefs/dpextensions.qc"

	.float SendFlags;
	.float gravity;
	float MSG_ENTITY=5;
#endif
#ifdef CSQC
	#define drawstring drawrawstring
	#include "dpdefs/csprogsdefs.qc"
	#undef drawstring
	vector(vector position, string text, vector scale, vector rgb, float alpha, float flag) drawstring = #326;

	//not actually defined for some fucked up reason, but work none the less. These are the ones that I use - there'll be others. 
	const float IE_KEYDOWN = 0;
	const float IE_KEYUP = 1;
#endif
#ifdef MENU
	#define cmd localcmd
	#include "dpdefs/menudefs.qc"
	const float GGDI_GAMEDIR = GETGAMEDIRINFO_NAME;
	const float GGDI_DESCRIPTION = GETGAMEDIRINFO_DESCRIPTION;

	//not actually defined for some fucked up reason, but work none the less. These are the ones that I use - there'll be others.
	float(float s) asin = #471;
	float(float c) acos = #472;
	float(float t) atan = #473;
	float(float c, float s) atan2 = #474;
	float(float a) tan = #475;
	string(string filename) whichpack = #503;
#endif


float(__variant) checkbuiltin = #0;	//not really present in DP, but #0 is technically just an OP_DONE so returns 0 so its actually okay in the end. its important for this to not generate extra warnings.