fteqw/engine/server/progdefs.h

260 lines
5.4 KiB
C

/*
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 */
typedef struct globalvars_s
{
int null;
union {
vec3_t vec;
float f;
int i;
} ret;
union {
vec3_t vec;
float f;
int i;
} param[8];
} globalvars_t;
typedef struct nqglobalvars_s
{
int *self;
int *other;
int *world;
float *time;
float *frametime;
int *newmis;
float *force_retouch;
string_t *mapname;
float *deathmatch;
float *coop;
float *teamplay;
float *serverflags;
float *total_secrets;
float *total_monsters;
float *found_secrets;
float *killed_monsters;
vec3_t *V_v_forward;
vec3_t *V_v_up;
vec3_t *V_v_right;
float *trace_allsolid;
float *trace_startsolid;
float *trace_fraction;
float *trace_surfaceflags;
float *trace_endcontents;
vec3_t *V_trace_endpos;
vec3_t *V_trace_plane_normal;
float *trace_plane_dist;
int *trace_ent;
float *trace_inopen;
float *trace_inwater;
int *msg_entity;
func_t *main;
func_t *StartFrame;
func_t *PlayerPreThink;
func_t *PlayerPostThink;
func_t *ClientKill;
func_t *ClientConnect;
func_t *PutClientInServer;
func_t *ClientDisconnect;
func_t *SetNewParms;
func_t *SetChangeParms;
float *cycle_wrapped;
float *dimension_send;
float *clientcommandframe;
float *input_timelength;
vec3_t *input_angles;
vec3_t *input_movevalues;
float *input_buttons;
} nqglobalvars_t;
#define P_VEC(v) (pr_global_struct->V_##v)
typedef struct stdentvars_s //standard = standard for qw
{
float modelindex;
vec3_t absmin;
vec3_t absmax;
float ltime;
int lastruntime; //type doesn't match the qc, we use a hidden double instead. this is dead.
float movetype;
float solid;
vec3_t origin;
vec3_t oldorigin;
vec3_t velocity;
vec3_t angles;
vec3_t avelocity;
string_t classname;
string_t model;
float frame;
float skin;
float effects;
vec3_t mins;
vec3_t maxs;
vec3_t size;
func_t touch;
func_t use;
func_t think;
func_t blocked;
float nextthink;
int groundentity;
float health;
float frags;
float weapon;
string_t weaponmodel;
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; //dead field in nq mode
float button2;
float impulse;
float fixangle;
vec3_t v_angle;
string_t netname;
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;
string_t target;
string_t targetname;
float dmg_take;
float dmg_save;
int dmg_inflictor;
int owner;
vec3_t movedir;
string_t message; //WARNING: hexen2 uses a float and not a string
float sounds;
string_t noise;
string_t noise1;
string_t noise2;
string_t noise3;
#ifdef VM_Q1
} stdentvars_t;
typedef struct extentvars_s
{
#endif
//extra vars. use these if you wish.
float maxspeed; //added in quake 1.09
float gravity; //added in quake 1.09 (for hipnotic)
float items2; //added in quake 1.09 (for hipnotic)
vec3_t punchangle; //std in nq
float scale; //DP_ENT_SCALE
float alpha; //DP_ENT_ALPHA
float fatness; //FTE_PEXT_FATNESS
int view2; //FTE_PEXT_VIEW2
vec3_t movement;
float vw_index;
//dp extra fields
int nodrawtoclient; //
int drawonlytoclient;
int viewmodelforclient; //DP_ENT_VIEWMODEL
int exteriormodeltoclient;
float button3; //DP_INPUTBUTTONS (note in qw, we set 1 to equal 3, to match zquake/fuhquake/mvdsv)
float button4;
float button5;
float button6;
float button7;
float button8;
float viewzoom; //DP_VIEWZOOM
int tag_entity;
float tag_index;
float glow_size;
float glow_color;
float glow_trail;
vec3_t color;
vec3_t colormod;
float light_lev;
float style;
float pflags;
float clientcolors;
//EXT_DIMENSION_VISIBLE
float dimension_see;
float dimension_seen;
//EXT_DIMENSION_GHOST
float dimension_ghost;
float dimension_ghost_alpha;
//EXT_DIMENSION_PHYSICS
float dimension_solid;
float dimension_hit;
//hexen2 stuff
float playerclass; //hexen2 requirements
float hull;
float drawflags;
int movechain;
func_t chainmoved;
float light_level;//hexen2's grabbing light level from client
float abslight; //hexen2's force a lightlevel
float hasted; //hexen2 uses this AS WELL as maxspeed
//csqc stuph.
func_t SendEntity; //EXT_CSQC
float SendFlags; //EXT_CSQC_1 (one of the DP guys came up with it)
float Version; //EXT_CSQC (obsolete)
float pvsflags; //EXT_CSQC_1
float pmove_flags; //EXT_CSQC_1 (FIXME: is this really needed?)
//FTE_ENT_UNIQUESPAWNID
float uniquespawnid;
func_t customizeentityforclient;
#ifdef VM_Q1
} extentvars_t;
#else
} stdentvars_t;
#endif