]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cgamevm.c
Lots of speedups and cleanups in client code, dynamically allocated cl_entities ...
[xonotic/darkplaces.git] / cgamevm.c
index 9dd567e27ce5b27ebfc5049d81ebd91522691e2a..d921b7520184a4dce648b7b5461d4225168abe49 100644 (file)
--- a/cgamevm.c
+++ b/cgamevm.c
@@ -1,6 +1,7 @@
 
 #include "quakedef.h"
 #include "cgame_api.h"
+#include "cl_collision.h"
 
 #define CGVM_RENDERENTITIES 1024
 
@@ -11,7 +12,7 @@ static mempool_t *cgvm_mempool;
 
 static void (*cgvm_networkcode[256])(unsigned char num);
 
-static byte *cgvm_netbuffer;
+static qbyte *cgvm_netbuffer;
 static int cgvm_netbufferlength;
 static int cgvm_netbufferpos;
 
@@ -46,7 +47,7 @@ void CL_CGVM_Start(void)
        CG_Init(); // API call
 }
 
-void CL_CGVM_ParseNetwork(byte *netbuffer, int length)
+void CL_CGVM_ParseNetwork(qbyte *netbuffer, int length)
 {
        int num;
        cgvm_netbuffer = netbuffer;
@@ -56,7 +57,7 @@ void CL_CGVM_ParseNetwork(byte *netbuffer, int length)
        {
                num = CGVM_MSG_ReadByte();
                if (cgvm_networkcode[num])
-                       cgvm_networkcode[num]((byte)num);
+                       cgvm_networkcode[num]((qbyte)num);
                else
                        Host_Error("CL_CGVM_ParseNetwork: unregistered network code %i", num);
        }
@@ -129,7 +130,7 @@ void CGVM_Draw_Entity(const cgdrawentity_t *e)
                return;
 
        if (cgvm_renderentity >= CGVM_RENDERENTITIES
-        || r_refdef.numentities >= MAX_VISEDICTS)
+        || r_refdef.numentities >= r_refdef.maxentities)
                return;
 
        r = cgvm_renderentities + cgvm_renderentity;
@@ -142,14 +143,7 @@ void CGVM_Draw_Entity(const cgdrawentity_t *e)
                Con_Printf("CGVM_Draw_Entity: invalid model index %i\n", e->model);
                return;
        }
-       r->model = cgvm_model[e->model]; //Mod_ForName(e->model, false, false, false);
-       /*
-       if (!r->model)
-       {
-               Con_Printf("CGVM_Draw_Entity: unable to find model \"%s\"");
-               return;
-       }
-       */
+       r->model = cgvm_model[e->model];
 
        r->frame = e->frame2;
        // FIXME: support colormapping?
@@ -202,10 +196,8 @@ float CGVM_TracePhysics(const float *start, const float *end, const float *world
        middle[2] = (worldmins[2] + worldmaxs[2]) * 0.5f;
        VectorAdd(start, middle, start2);
        VectorAdd(end, middle, end2);
-       frac = TraceLine((float *)start2, (float *)end2, impactpos, impactnormal, 0, true);
+       frac = CL_TraceLine((float *)start2, (float *)end2, impactpos, impactnormal, 0, true);
        VectorSubtract(impactpos, middle, impactpos);
-       //VectorCopy(end, impactpos);
-       //VectorClear(impactnormal);
        *impactentnum = -1;
        return frac;
 }
@@ -270,5 +262,7 @@ int CGVM_Model(const char *name)
 
 void CGVM_Stain(const float *origin, float radius, int cr1, int cg1, int cb1, int ca1, int cr2, int cg2, int cb2, int ca2)
 {
-       R_Stain((float *)origin, radius, cr1, cg1, cb1, ca1, cr2, cg2, cb2, ca2);
+       if (cl_stainmaps.integer)
+               R_Stain((float *)origin, radius, cr1, cg1, cb1, ca1, cr2, cg2, cb2, ca2);
 }
+