From cc9ceab15613eb664f956fe0c2486efa0e8de222 Mon Sep 17 00:00:00 2001 From: Rudolf Polzer Date: Mon, 28 Dec 2015 22:23:04 +0100 Subject: [PATCH] Sync dpextensions.qc. --- qcsrc/dpdefs/upstream/dpextensions.qc | 48 +++++++++++++++++++++------ 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/qcsrc/dpdefs/upstream/dpextensions.qc b/qcsrc/dpdefs/upstream/dpextensions.qc index fb3dcda7c..21060c82e 100644 --- a/qcsrc/dpdefs/upstream/dpextensions.qc +++ b/qcsrc/dpdefs/upstream/dpextensions.qc @@ -1,9 +1,6 @@ //DarkPlaces supported extension list, draft version 1.04 -//things that don't have extensions yet: -.float disableclientprediction; - //definitions that id Software left out: //these are passed as the 'nomonsters' parameter to traceline/tracebox (yes really this was supported in all quake engines, nomonsters is misnamed) float MOVE_NORMAL = 0; // same as FALSE @@ -436,7 +433,7 @@ void(entity e, entity tagentity, string tagname) setattachment = #443; // attach //darkplaces implementation: Blub\0 //cvar definitions: // utf8_enable: enable utf8 encoding -//description: utf8 characters are allowed inside cvars, protocol strings, files, progs strings, etc., +//description: utf8 characters are allowed inside cvars, protocol strings, files, progs strings, etc., //and count as 1 char for string functions like strlen, substring, etc. // note: utf8_enable is run-time cvar, could be changed during execution // note: beware that str2chr() could return value bigger than 255 once utf8 is enabled @@ -498,7 +495,7 @@ void(entity e, entity tagentity, string tagname) setattachment = #443; // attach // description: allows alternative 'static' lightstyle syntax : "=value" // examples: "=0.5", "=2.0", "=2.75" // could be used to control switchable lights or making styled lights with brightness > 2 -// Warning: this extension is experimental. It safely works in CSQC, but SVQC use is limited by the fact +// Warning: this extension is experimental. It safely works in CSQC, but SVQC use is limited by the fact // that other engines (which do not support this extension) could connect to a game and misunderstand this kind of lightstyle syntax //DP_LITSPRITES @@ -1360,14 +1357,14 @@ float(string sample) soundlength = #534; // returns length of sound sample in se //syntax of .dpsubs files: each line in .dpsubs file defines 1 subtitle, there are three tokens: // "string" // start: subtitle start time in seconds -// end: subtitle time-to-show in seconds, if 0 - subtitle will be showed until next subtitle is started, +// end: subtitle time-to-show in seconds, if 0 - subtitle will be showed until next subtitle is started, // if below 0 - show until next subtitles minus this number of seconds // text: subtitle text, color codes (Q3-style and ^xRGB) are allowed //example of subtitle file: // 3 0 "Vengeance! Vengeance for my eternity of suffering!" // 9 0 "Whelp! As if you knew what eternity was!" // 13 0 "Grovel before your true master." -// 17 0 "Never!" +// 17 0 "Never!" // 18 7 "I'll hack you from crotch to gizzard and feed what's left of you to your brides..." //DP_SOLIDCORPSE @@ -1728,17 +1725,48 @@ const float FORCETYPE_TORQUE = 3; // for a force: // force vector to apply //field definitions: +//DP_SV_DISABLECLIENTPREDICTION +//idea: LordHavoc, Mario +//darkplaces implementation: LordHavoc, Mario +//field definitions: +.float disableclientprediction; +//description: +//By default, player entities are enabled for prediction by the engine if the +//engine assumes the client can sensibly predict them. As the NQ and DarkPlaces +//protocol does not network movetype, this in particular allows for client +//prediction only if movetype == MOVETYPE_WALK. +//Setting this field to 1 disables prediction in any case - this is useful when +//the client cannot sensibly predict the server's idea of how the player moves +//(common in case of pure serverside grappling hook or jetpack +//implementations). +//Setting this field to -1 forces prediction even if the server assumes the +//client cannot predict the current movetype of a player entity (obviously, +//this then requires matching client-side prediction code in CSQC, as the +//engine's own client prediction will sure not handle these cases right due to +//not knowing the serverside value of movetype). This is allowed in combination +//with the following movetypes: +// MOVETYPE_NONE (useful to have full QC control over movement) +// MOVETYPE_WALK (redundant but harmless) +// MOVETYPE_STEP +// MOVETYPE_FLY (useful for spectators) +// MOVETYPE_TOSS +// MOVETYPE_NOCLIP (useful for spectators) +// MOVETYPE_FLYMISSILE +// MOVETYPE_BOUNCE +// MOVETYPE_BOUNCEMISSILE +// MOVETYPE_FLY_WORLDONLY (useful for spectators) + .float geomtype; // see GEOMTYPE_*, a more correct way to set collision shape, allows to set SOLID_CORPSE and trimesh collisions .float maxcontacts; // maximum number of contacts to make for this object, lesser = faster (but setting it too low will could make object pass though walls), default is 16, maximum is 32 .float mass; // ODE mass, standart value is 1 .vector massofs; // offsets a mass center out of object center, if not set a center of model bounds is used .float friction; // a friction of object, get multiplied by second objects's friction on contact .float bouncefactor; -.float bouncestop; +.float bouncestop; .float jointtype; // type of joint .float forcetype; // type of force -.float erp; // error restitution parameter, makes ODE solver attempt to fix errors in contacts, - // bringing together 2 joints or fixing object being stuch in other object, +.float erp; // error restitution parameter, makes ODE solver attempt to fix errors in contacts, + // bringing together 2 joints or fixing object being stuch in other object, // a value of 0.1 will fix slightly, a value of 1.0 attempts to fix whole error in one frame // use with care as high values makes system unstable and likely to explode //builtin definitions: -- 2.39.2