]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - protocol.h
added support for Prophecy game and new cvar for chase cam
[xonotic/darkplaces.git] / protocol.h
index b12aab92aaaf3a857ed0a7b47d950da8e1f2f33e..aeacc38849864912b7a6da58f3eec6c5f4ed760e 100644 (file)
@@ -49,7 +49,7 @@ void Protocol_Names(char *buffer, size_t buffersize);
 #define EF_ADDITIVE                            32
 #define EF_BLUE                                        64
 #define EF_RED                                 128
-#define EF_UNUSED8                             256
+#define EF_NOGUNBOB                            256                     // LordHavoc: when used with .viewmodelforclient this makes the entity attach to the view without gun bobbing and such effects, it also works on the player entity to disable gun bobbing of the engine-managed .viewmodel (without affecting any .viewmodelforclient entities attached to the player)
 #define EF_FULLBRIGHT                  512                     // LordHavoc: fullbright
 #define EF_FLAME                               1024            // LordHavoc: on fire
 #define EF_STARDUST                            2048            // LordHavoc: showering sparks
@@ -64,7 +64,7 @@ void Protocol_Names(char *buffer, size_t buffersize);
 #define EF_UNUSED20                            1048576
 #define EF_UNUSED21                            2197152
 #define EF_LOWPRECISION                        4194304         // LordHavoc: entity is low precision (integer coordinates) to save network bandwidth  (serverside only)
-#define EF_UNUSED23                            8388608
+#define EF_NOMODELFLAGS                        8388608         // indicates the model's .effects should be ignored (allows overriding them)
 #define EF_ROCKET                              16777216        // leave a trail
 #define EF_GRENADE                             33554432        // leave a trail
 #define EF_GIB                                 67108864        // leave a trail
@@ -251,7 +251,8 @@ void Protocol_Names(char *buffer, size_t buffersize);
 #define svc_csqcentities       58              // [short] entnum [variable length] entitydata ... [short] 0x0000
 #define        svc_spawnstaticsound2   59      // [coord3] [short] samp [byte] vol [byte] aten
 #define svc_trailparticles     60              // [short] entnum [short] effectnum [vector] start [vector] end
-#define svc_pointparticles     61              // [short] effectnum [vector] start [vector] end [short] count
+#define svc_pointparticles     61              // [short] effectnum [vector] start [vector] velocity [short] count
+#define svc_pointparticles1    62              // [short] effectnum [vector] start, same as svc_pointparticles except velocity is zero and count is 1
 
 //
 // client to server
@@ -336,7 +337,7 @@ void Protocol_Names(char *buffer, size_t buffersize);
 #define RENDER_NOSELFSHADOW 262144 // render lighting on this entity before its own shadow is added to the scene
 // (note: all RENDER_NOSELFSHADOW entities are grouped together and rendered in a batch before their shadows are rendered, so they can not shadow eachother either)
 
-// this is 80 bytes
+// this is 96 bytes
 typedef struct entity_state_s
 {
        // ! means this is not sent to client
@@ -345,10 +346,16 @@ typedef struct entity_state_s
        float origin[3];
        float angles[3];
        int effects;
+       unsigned int customizeentityforclient; // !
        unsigned short number; // entity number this state is for
        unsigned short modelindex;
        unsigned short frame;
        unsigned short tagentity;
+       unsigned short specialvisibilityradius; // ! larger if it has effects/light
+       unsigned short viewmodelforclient; // !
+       unsigned short exteriormodelforclient; // ! not shown if first person viewing from this entity, shown in all other cases
+       unsigned short nodrawtoclient; // !
+       unsigned short drawonlytoclient; // !
        unsigned short light[4]; // color*256 (0.00 to 255.996), and radius*1
        unsigned char active; // true if a valid state
        unsigned char lightstyle;
@@ -364,7 +371,7 @@ typedef struct entity_state_s
        unsigned char tagindex;
        unsigned char colormod[3];
        // padding to a multiple of 8 bytes (to align the double time)
-       unsigned char unused;
+       unsigned char unused[5];
 }
 entity_state_t;