X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fdpdefs%2Fupstream%2Fdpextensions.qc;h=2f49d97bb88b184360d72b378a602d1f03f395da;hp=07142e9437317799487f3a0945f036149293488f;hb=e424ba544c41fc40b241b17bd7c1d9c2fc930705;hpb=fbb96108e5828a7557694db4469c2d0d7c582846 diff --git a/qcsrc/dpdefs/upstream/dpextensions.qc b/qcsrc/dpdefs/upstream/dpextensions.qc index 07142e943..2f49d97bb 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 @@ -1728,6 +1725,37 @@ 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 @@ -2571,3 +2599,12 @@ void coverage() = #642; // Reports a coverage event. The engine counts for each float(string url, float id, string content_type, string delim, float buf, float keyid) crypto_uri_postbuf = #513; //description: //use -1 as buffer handle to justs end delim as postdata + +//DP_USERMOVETYPES +//idea: divVerent +//darkplaces implementation: Mario +//movetype definitions: +float MOVETYPE_USER_FIRST = 128; +float MOVETYPE_USER_LAST = 191; +//description: +//user defined movetypes can be added between the start and end points, without producing unknown movetype warnings