/*
Copyright (C) 1996-1997 Id Software, Inc.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  

See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

*/

/* file generated by qcc, do not modify */

// FIXME: temporary till we move fields like netname/model/etc from gedict_t back to entvars_t.
#define PR_ALWAYS_REFS 1

typedef struct
{	int	pad[28];
	int	self;
	int	other;
	int	world;
	float	time;
	float	frametime;
	int	newmis;
	float	force_retouch;
#if defined(idx64) || defined(PR_ALWAYS_REFS)
	stringref_t	mapname_; // Unused by mod, placeholder so server is happy.
#else
	string_t	mapname; // Unused by mod, placeholder so server is happy.
#endif
	float	serverflags;
	float	total_secrets;
	float	total_monsters;
	float	found_secrets;
	float	killed_monsters;
	float	parm1;
	float	parm2;
	float	parm3;
	float	parm4;
	float	parm5;
	float	parm6;
	float	parm7;
	float	parm8;
	float	parm9;
	float	parm10;
	float	parm11;
	float	parm12;
	float	parm13;
	float	parm14;
	float	parm15;
	float	parm16;
	vec3_t	v_forward;
	vec3_t	v_up;
	vec3_t	v_right;
	float	trace_allsolid;
	float	trace_startsolid;
	float	trace_fraction;
	vec3_t	trace_endpos;
	vec3_t	trace_plane_normal;
	float	trace_plane_dist;
	int	trace_ent;
	float	trace_inopen;
	float	trace_inwater;
	int	msg_entity;
	funcref_t	main;
	funcref_t	StartFrame;
	funcref_t	PlayerPreThink;
	funcref_t	PlayerPostThink;
	funcref_t	ClientKill;
	funcref_t	ClientConnect;
	funcref_t	PutClientInServer;
	funcref_t	ClientDisconnect;
	funcref_t	SetNewParms;
	funcref_t	SetChangeParms;
} globalvars_t;

typedef struct
{
	float	modelindex;
	vec3_t	absmin;
	vec3_t	absmax;
	float	ltime;
	float	lastruntime;
	float	movetype;
	float	solid;
	vec3_t	origin;
	vec3_t	oldorigin;
	vec3_t	velocity;
	vec3_t	angles;
	vec3_t	avelocity;
#if defined(idx64) || defined(PR_ALWAYS_REFS)
	stringref_t	classname_;
	stringref_t	model_;
#else
	string_t	classname;
	string_t	model;
#endif
	float	frame;
	float	skin;
	float	effects;
	vec3_t	mins;
	vec3_t	maxs;
	vec3_t	size;
#if defined(idx64) || defined(PR_ALWAYS_REFS)
	funcref_t	touch_;
	funcref_t	use_;
	funcref_t	think_;
	funcref_t	blocked_;
#else
	func_t	touch;
	func_t	use;
	func_t	think;
	func_t	blocked;
#endif
	float	nextthink;
	int	groundentity;
	float	health;
	float	frags;
	float	weapon;
#if defined(idx64) || defined(PR_ALWAYS_REFS)
	stringref_t	weaponmodel_;
#else
	string_t	weaponmodel;
#endif
	float	weaponframe;
	float	currentammo;
	float	ammo_shells;
	float	ammo_nails;
	float	ammo_rockets;
	float	ammo_cells;
	float	items;
	float	takedamage;
	int	chain;
	float	deadflag;
	vec3_t	view_ofs;
	float	button0;
	float	button1;
	float	button2;
	float	impulse;
	float	fixangle;
	vec3_t	v_angle;
#if defined(idx64) || defined(PR_ALWAYS_REFS)
	stringref_t	netname_;
#else
	string_t	netname;
#endif
	int	enemy;
	float	flags;
	float	colormap;
	float	team;
	float	max_health;
	float	teleport_time;
	float	armortype;
	float	armorvalue;
	float	waterlevel;
	float	watertype;
	float	ideal_yaw;
	float	yaw_speed;
	int	aiment;
	int	goalentity;
	float	spawnflags;
#if defined(idx64) || defined(PR_ALWAYS_REFS)
	stringref_t	target_;
	stringref_t	targetname_;
#else
	string_t	target;
	string_t	targetname;
#endif
	float	dmg_take;
	float	dmg_save;
	int	dmg_inflictor;
	int	owner;
	vec3_t	movedir;
#if defined(idx64) || defined(PR_ALWAYS_REFS)
	stringref_t	message_;
#else
	string_t	message;
#endif
	float	sounds;
#if defined(idx64) || defined(PR_ALWAYS_REFS)
	stringref_t	noise_;
	stringref_t	noise1_;
	stringref_t	noise2_;
	stringref_t	noise3_;
#else
	string_t	noise;
	string_t	noise1;
	string_t	noise2;
	string_t	noise3;
#endif
#if 0 // FIXME: PR_ALWAYS_REFS: this should be returned once KTX start using ent->s.v.fields again.
#ifdef idx64
//fields that used to be pointers are now byte offsets to these pointers...
	string_t    classname;
	string_t    model;
	func_t      touch;
	func_t      use;
	func_t      think;
	func_t      blocked;
	string_t    weaponmodel;
	string_t    netname;
	string_t    target;
	string_t    targetname;
	string_t    message;
	string_t    noise;
	string_t    noise1;
	string_t    noise2;
	string_t    noise3;
#endif
#endif
} entvars_t;

#define PROGHEADER_CRC 54730
