]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - protocol.h
Added the proper libPNG DLL name for Win64, by Willis
[xonotic/darkplaces.git] / protocol.h
index 211043b4f360feed8e9f017629e9a83b7b652292..1054a27b604f0768ead3bee486fd623c69960ae8 100644 (file)
@@ -58,6 +58,7 @@ void Protocol_Names(char *buffer, size_t buffersize);
 #define EF_NOSHADOW                            4096    // LordHavoc: does not cast a shadow
 #define EF_NODEPTHTEST                 8192    // LordHavoc: shows through walls
 #define EF_SELECTABLE                  16384   // LordHavoc: highlights when PRYDON_CLIENTCURSOR mouse is over it
+#define EF_DOUBLESIDED                 32768   //[515]: disable cull face for this entity
 
 #define EF_STEP                                        0x80000000 // internal client use only - present on MOVETYPE_STEP entities, not QC accessible (too many bits)
 
@@ -231,7 +232,7 @@ void Protocol_Names(char *buffer, size_t buffersize);
 #define        svc_spawnbaseline2      55              // short modelindex instead of byte
 #define svc_spawnstatic2       56              // short modelindex instead of byte
 #define svc_entities           57              // [int] deltaframe [int] thisframe [float vector] eye [variable length] entitydata
-#define svc_unusedlh3                  58
+#define svc_csqcentities       58              // [short] entnum [variable length] entitydata ... [short] 0x0000
 #define        svc_spawnstaticsound2   59      // [coord3] [short] samp [byte] vol [byte] aten
 
 //
@@ -315,8 +316,9 @@ void Protocol_Names(char *buffer, size_t buffersize);
 #define RENDER_SHADOW 65536 // cast shadow
 #define RENDER_LIGHT 131072 // receive light
 #define RENDER_TRANSPARENT 262144 // can't light during opaque stage
+#define RENDER_NOCULLFACE 524288 // render as double sided (disable GL_CULL_FACE)
 
-// this is 80 bytes
+// this is 88 bytes
 typedef struct entity_state_s
 {
        // ! means this is not sent to client
@@ -325,6 +327,7 @@ typedef struct entity_state_s
        float angles[3];
        int number; // entity number this state is for
        int effects;
+       unsigned int customizeentityforclient; // !
        unsigned short modelindex;
        unsigned short frame;
        unsigned short tagentity;
@@ -347,7 +350,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[2];
+       unsigned char unused[6];
 }
 entity_state_t;
 
@@ -694,7 +697,7 @@ typedef struct entityframe5_packetlog_s
        int packetnumber;
        int numstates;
        entityframe5_changestate_t states[ENTITYFRAME5_MAXSTATES];
-       qbyte statsdeltabits[(MAX_CL_STATS+7)/8];
+       unsigned char statsdeltabits[(MAX_CL_STATS+7)/8];
 }
 entityframe5_packetlog_t;
 
@@ -715,7 +718,7 @@ typedef struct entityframe5_database_s
        int *deltabits; // [maxedicts]
        // priorities of entities (updated whenever deltabits change)
        // (derived from deltabits)
-       qbyte *priorities; // [maxedicts]
+       unsigned char *priorities; // [maxedicts]
        // last frame this entity was sent on, for prioritzation
        int *updateframenum; // [maxedicts]
 
@@ -724,10 +727,10 @@ typedef struct entityframe5_database_s
        // which entities are currently active
        // (duplicate of the active bit of every state in states[])
        // (derived from states)
-       qbyte *visiblebits; // [(maxedicts+7)/8]
+       unsigned char *visiblebits; // [(maxedicts+7)/8]
 
        // delta compression of stats
-       qbyte statsdeltabits[(MAX_CL_STATS+7)/8];
+       unsigned char statsdeltabits[(MAX_CL_STATS+7)/8];
        int stats[MAX_CL_STATS];
 
        // old notes