dce284811e
Q3 clients can connect to q1 gamecode (sv_listen_q3). hacked support for SendFlags. It'll work compatibly, just not efficiently. Unified shared qc builtins. fteqcc supports int |= float, more params in macros, &~= operator. Additional recent DP QC extensions. Particle system abstraction. 'r_particlesystem classic' (vs null or script) will revert to truly classic particles. Nexuiz might run again. Network address revamp (sv_port and sv_port_ipv6 can both be used to specify an ipv4 address:port and both corrently accept clients). localhost now properly favours ipv4 (use ::1 for ipv6 localhost). Download system revamp. Numerous other changes. git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3051 fc73d0e0-1445-4013-8a0c-d673dee63da5
265 lines
5.4 KiB
C
265 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;
|
|
float *input_angles;
|
|
vec3_t *input_movevalues;
|
|
float *input_buttons;
|
|
float *pmove_jump_held;
|
|
float *pmove_waterjumptime;
|
|
vec3_t *pmove_org;
|
|
vec3_t *pmove_vel;
|
|
vec3_t *pmove_mins;
|
|
vec3_t *pmove_maxs;
|
|
} 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
|
|
float fteflags;
|
|
vec3_t movement;
|
|
float vweapmodelindex;
|
|
|
|
//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;
|
|
float SendFlags;
|
|
float Version;
|
|
float pvsflags;
|
|
|
|
//FTE_ENT_UNIQUESPAWNID
|
|
float uniquespawnid;
|
|
|
|
func_t customizeentityforclient;
|
|
#ifdef VM_Q1
|
|
} extentvars_t;
|
|
#else
|
|
} stdentvars_t;
|
|
#endif
|
|
|