openxr plugin: tweaked - inputs should be working properly now, and are visible to csqc. subject to further breaking changes, however.

_pext_vrinputs: added cvar to enable vr inputs protocol extension allowing vr inputs to be networked to ssqc too. defaults to 0 for now, will be renamed when deemed final.
updates menu: the prompt to enable sources is now more explicit instead of expecting the user to have a clue.
updates menu: added a v3 sources format, which should be more maintainable. not final.
updates menu: try to give reasons why sources might be failing (to help blame ISPs if they try fucking over TTH dns again).
presets menu: no longer closes the instant a preset is chosen. some presets have a couple of modifiers listed. force the demo loop in the background to serve as a preview.
prompts menus: now does word wrapping.
ftemaster: support importing server lists from other master servers (requested by Eukara).
server: try to detect when non-reply inbound packets are blocked by firewalls/nats/etc (using ftemaster to do so).
qcvm: added pointcontentsmask builtin, allowing it to probe more than just world, with fte's full contentbit range instead of just q1 legacy.
qcvm: memfill8 builtin now works on createbuffer() pointers.
qcvm: add missing unsigned ops. Fixed double comparison ops. fixed bug with op_store_i64. added missing OP_LOADP_I64
qcc: added '#pragma framerate RATE' for overriding implicit nextthink durations.
qcc: fixed '#pragma DONT_COMPILE_THIS_FILE' to not screw up comments.
qcc: added __GITURL__ __GITHASH__ __GITDATE__ __GITDATETIME__ __GITDESC__ for any mods that might want to make use of that.
qcc: fix up -Fhashonly a little
setrenderer: support for vulkan gpu enumeration.
rulesets: reworked to support custom rulesets (using hashes to catch haxxors, though still nothing prevents just changing the client to ignore rulesets)
bspx: use our BIH code for the bspx BRUSHLIST lump instead of the older less efficient code.
(static)iqm+obj: these model formats can now be used for the worldmodel (with a suitable .ent file). Also using BIH for much better collision performance.
pmove: tried to optimise PM_NudgePosition, should boost fps in stress tests.
wayland: fix a crash on startup. mousegrabs now works better.
imagetool: uses sdl for previews.


git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5813 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
Spoike 2021-04-14 05:21:04 +00:00
parent cd50a54a5a
commit b9cd6ec91b
160 changed files with 13078 additions and 5542 deletions

View file

@ -41,18 +41,22 @@ struct wedict_s
#define G_PROG G_FLOAT
//the lh extension system asks for a name for the extension.
//the checkextension system asks for a name for the extension.
//the ebfs version is a function that returns a builtin number.
//thus lh's system requires various builtins to exist at specific numbers.
typedef struct lh_extension_s {
//thus this system requires various builtins to exist at specific numbers.
//this competes against checkbuiltin(funcreference).
typedef struct {
unsigned int pext1, pext2;
} extcheck_t;
typedef struct qc_extension_s {
char *name;
qboolean(*extensioncheck)(extcheck_t *info);
int numbuiltins;
qboolean *queried;
char *builtinnames[21]; //extend freely
char *description;
} lh_extension_t;
} qc_extension_t;
extern lh_extension_t QSG_Extensions[];
extern qc_extension_t QSG_Extensions[];
extern unsigned int QSG_Extensions_count;
pbool QDECL QC_WriteFile(const char *name, void *data, int len);
@ -685,6 +689,7 @@ typedef struct
void (QDECL *VectorAngles)(const float *forward, const float *up, float *result, qboolean meshpitch);
void (QDECL *AngleVectors)(const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up);
#define plugrbefuncs_name "RBE"
} rbeplugfuncs_t;
#define RBEPLUGFUNCS_VERSION 1
@ -856,7 +861,8 @@ enum lightfield_e
lfield_rgbdecay=15,
lfield_radiusdecay=16,
lfield_stylestring=17,
lfield_nearclip=18
lfield_nearclip=18,
lfield_owner=19,
};
enum csqc_input_event
{
@ -1107,13 +1113,28 @@ enum
globalfloat (input_buttons) /*float filled by getinputstate, read by runplayerphysics*/ \
globalfloat (input_impulse) /*float filled by getinputstate, read by runplayerphysics*/ \
globalfloat (input_lightlevel) /*unused float filled by getinputstate, read by runplayerphysics*/ \
globalfloat (input_weapon) /*unused float filled by getinputstate, read by runplayerphysics*/ \
globaluint (input_weapon) /*unused float filled by getinputstate, read by runplayerphysics*/ \
globalfloat (input_servertime) /*float filled by getinputstate, read by runplayerphysics*/ \
globalfloat (input_clienttime) /*float filled by getinputstate, read by runplayerphysics*/ \
globalvector(input_cursor_screen) /*float filled by getinputstate*/ \
globalvector(input_cursor_trace_start) /*float filled by getinputstate*/ \
globalvector(input_cursor_trace_endpos) /*float filled by getinputstate*/ \
globalfloat (input_cursor_entitynumber) /*float filled by getinputstate*/ \
globaluint (input_head_status) /*filled by getinputstate, for vr*/ \
globalvector(input_head_origin) /*filled by getinputstate, for vr*/ \
globalvector(input_head_angles) /*filled by getinputstate, for vr*/ \
globalvector(input_head_velocity) /*filled by getinputstate, for vr*/ \
globalvector(input_head_avelocity) /*filled by getinputstate, for vr*/ \
globaluint (input_left_status) /*filled by getinputstate, for vr*/ \
globalvector(input_left_origin) /*filled by getinputstate, for vr*/ \
globalvector(input_left_angles) /*filled by getinputstate, for vr*/ \
globalvector(input_left_velocity) /*filled by getinputstate, for vr*/ \
globalvector(input_left_avelocity) /*filled by getinputstate, for vr*/ \
globaluint (input_right_status) /*filled by getinputstate, for vr*/ \
globalvector(input_right_origin) /*filled by getinputstate, for vr*/ \
globalvector(input_right_angles) /*filled by getinputstate, for vr*/ \
globalvector(input_right_velocity) /*filled by getinputstate, for vr*/ \
globalvector(input_right_avelocity) /*filled by getinputstate, for vr*/ \
\
globalvector(global_gravitydir) /*vector used when .gravitydir is 0 0 0 */ \
globalfloat (dimension_default) /*float default value for dimension_hit+dimension_solid*/ \