]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - sv_send.c
cmd: Check for empty cbuf when inserting too
[xonotic/darkplaces.git] / sv_send.c
index d0205f9835dab5dd36a0f91589b24f475ce2ae87..a1ee1050ab3cb69b14251c0be1bdc3b7ef165e27 100644 (file)
--- a/sv_send.c
+++ b/sv_send.c
@@ -291,7 +291,7 @@ void SV_StartSound (prvm_edict_t *entity, int channel, const char *sample, int n
        }
        else
                MSG_WriteShort (dest, (ent<<3) | channel);
-       if ((field_mask & SND_LARGESOUND) || sv.protocol == PROTOCOL_NEHAHRABJP2)
+       if ((field_mask & SND_LARGESOUND) || sv.protocol == PROTOCOL_NEHAHRABJP2 || sv.protocol == PROTOCOL_NEHAHRABJP3)
                MSG_WriteShort (dest, sound_num);
        else
                MSG_WriteByte (dest, sound_num);
@@ -402,7 +402,7 @@ static qbool SV_PrepareEntityForSending (prvm_edict_t *ent, entity_state_t *cs,
        float f;
        prvm_vec_t *v;
        vec3_t cullmins, cullmaxs;
-       dp_model_t *model;
+       model_t *model;
 
        // fast path for games that do not use legacy entity networking
        // note: still networks clients even if they are legacy
@@ -709,7 +709,7 @@ static void SV_PrepareEntitiesForSending(void)
        memset(sv.sendentitiesindex, 0, prog->num_edicts * sizeof(*sv.sendentitiesindex));
        for (e = 1, ent = PRVM_NEXT_EDICT(prog->edicts);e < prog->num_edicts;e++, ent = PRVM_NEXT_EDICT(ent))
        {
-               if (!ent->priv.server->free && SV_PrepareEntityForSending(ent, sv.sendentities + sv.numsendentities, e))
+               if (!ent->free && SV_PrepareEntityForSending(ent, sv.sendentities + sv.numsendentities, e))
                {
                        sv.sendentitiesindex[e] = sv.sendentities + sv.numsendentities;
                        sv.numsendentities++;
@@ -733,7 +733,7 @@ qbool SV_CanSeeBox(int numtraces, vec_t eyejitter, vec_t enlarge, vec_t entboxex
        int numtouchedicts = 0;
        int touchindex;
        matrix4x4_t matrix, imatrix;
-       dp_model_t *model;
+       model_t *model;
        prvm_edict_t *touch;
        static prvm_edict_t *touchedicts[MAX_EDICTS];
        vec3_t eyemins, eyemaxs, start;
@@ -863,7 +863,7 @@ void SV_MarkWriteEntityStateToClient(entity_state_t *s)
 {
        prvm_prog_t *prog = SVVM_prog;
        int isbmodel;
-       dp_model_t *model;
+       model_t *model;
        prvm_edict_t *ed;
        if (sv.sententitiesconsideration[s->number] == sv.sententitiesmark)
                return;
@@ -1006,7 +1006,7 @@ void SV_AddCameraEyes(void)
        // check line of sight to portal entities and add them to PVS
        for (e = 1, ed = PRVM_NEXT_EDICT(prog->edicts);e < prog->num_edicts;e++, ed = PRVM_NEXT_EDICT(ed))
        {
-               if (!ed->priv.server->free)
+               if (!ed->free)
                {
                        if(PRVM_serveredictfunction(ed, camera_transform))
                        {
@@ -1651,7 +1651,7 @@ static void SV_UpdateToReliableMessages (void)
                if (clientcamera > 0)
                {
                        int oldclientcamera = host_client->clientcamera;
-                       if (clientcamera >= prog->max_edicts || PRVM_EDICT_NUM(clientcamera)->priv.required->free)
+                       if (clientcamera >= prog->max_edicts || PRVM_EDICT_NUM(clientcamera)->free)
                                clientcamera = PRVM_NUM_FOR_EDICT(host_client->edict);
                        host_client->clientcamera = clientcamera;
 
@@ -1712,7 +1712,7 @@ void SV_SendClientMessages(void)
 
                if (host_client->netconnection->message.overflowed)
                {
-                       SV_DropClient (true);   // if the message couldn't send, kick off
+                       SV_DropClient (true, "Buffer overflow in net message"); // if the message couldn't send, kick off
                        continue;
                }