]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_parse.c
sys: Initialize the memory subsystem in main()
[xonotic/darkplaces.git] / cl_parse.c
index 6dc196be10509a3cd85082315ef12e53b20ea8c0..e35e43c2fffd26c57cc98c0eb9cb795dc1e9b136 100644 (file)
@@ -270,8 +270,6 @@ static void CL_ParseStartSoundPacket(int largesoundindex)
                        sound_num = MSG_ReadByte(&cl_message);
        }
 
-       channel = CHAN_NET2ENGINE(channel);
-
        MSG_ReadVector(&cl_message, pos, cls.protocol);
 
        if (sound_num < 0 || sound_num >= MAX_SOUNDS)
@@ -1118,9 +1116,9 @@ static void CL_BeginDownloads(qboolean aborteddownload)
                {
                        Con_Printf("Downloading new CSQC code to dlcache/%s.%i.%i\n", csqc_progname.string, csqc_progsize.integer, csqc_progcrc.integer);
                        if(cl_serverextension_download.integer == 2 && FS_HasZlib())
-                               Cmd_ForwardStringToServer(va(vabuf, sizeof(vabuf), "download %s deflate", csqc_progname.string));
+                               CL_ForwardToServer(va(vabuf, sizeof(vabuf), "download %s deflate", csqc_progname.string));
                        else
-                               Cmd_ForwardStringToServer(va(vabuf, sizeof(vabuf), "download %s", csqc_progname.string));
+                               CL_ForwardToServer(va(vabuf, sizeof(vabuf), "download %s", csqc_progname.string));
                        return;
                }
        }
@@ -1199,7 +1197,7 @@ static void CL_BeginDownloads(qboolean aborteddownload)
                                        cl.loadfinished = true;
                                        // now issue the spawn to move on to signon 2 like normal
                                        if (cls.netcon)
-                                               Cmd_ForwardStringToServer("prespawn");
+                                               CL_ForwardToServer("prespawn");
                                }
                        }
                }
@@ -1269,7 +1267,7 @@ static void CL_BeginDownloads(qboolean aborteddownload)
                                                cl.loadfinished = true;
                                                // now issue the spawn to move on to signon 2 like normal
                                                if (cls.netcon)
-                                                       Cmd_ForwardStringToServer("prespawn");
+                                                       CL_ForwardToServer("prespawn");
                                        }
                                }
                                aborteddownload = false;
@@ -1287,7 +1285,7 @@ static void CL_BeginDownloads(qboolean aborteddownload)
                                // regarding the * check: don't try to download submodels
                                if (cl_serverextension_download.integer && cls.netcon && cl.model_name[cl.downloadmodel_current][0] != '*' && !sv.active)
                                {
-                                       Cmd_ForwardStringToServer(va(vabuf, sizeof(vabuf), "download %s", cl.model_name[cl.downloadmodel_current]));
+                                       CL_ForwardToServer(va(vabuf, sizeof(vabuf), "download %s", cl.model_name[cl.downloadmodel_current]));
                                        // we'll try loading again when the download finishes
                                        return;
                                }
@@ -1311,7 +1309,7 @@ static void CL_BeginDownloads(qboolean aborteddownload)
                                        cl.loadfinished = true;
                                        // now issue the spawn to move on to signon 2 like normal
                                        if (cls.netcon)
-                                               Cmd_ForwardStringToServer("prespawn");
+                                               CL_ForwardToServer("prespawn");
                                }
                        }
                }
@@ -1337,10 +1335,9 @@ static void CL_BeginDownloads(qboolean aborteddownload)
                        dpsnprintf(soundname, sizeof(soundname), "sound/%s", cl.sound_name[cl.downloadsound_current]);
                        if (!FS_FileExists(soundname) && !FS_FileExists(cl.sound_name[cl.downloadsound_current]))
                        {
-                               Con_Printf("Sound %s not found\n", soundname);
                                if (cl_serverextension_download.integer && cls.netcon && !sv.active)
                                {
-                                       Cmd_ForwardStringToServer(va(vabuf, sizeof(vabuf), "download %s", soundname));
+                                       CL_ForwardToServer(va(vabuf, sizeof(vabuf), "download %s", soundname));
                                        // we'll try loading again when the download finishes
                                        return;
                                }
@@ -1362,7 +1359,7 @@ static void CL_BeginDownloads(qboolean aborteddownload)
 
                // now issue the spawn to move on to signon 2 like normal
                if (cls.netcon)
-                       Cmd_ForwardStringToServer("prespawn");
+                       CL_ForwardToServer("prespawn");
        }
 }
 
@@ -1539,7 +1536,7 @@ static void CL_DownloadBegin_f(cmd_state_t *cmd)
                // check further encodings here
        }
 
-       Cmd_ForwardStringToServer("sv_startdownload");
+       CL_ForwardToServer("sv_startdownload");
 }
 
 static void CL_StopDownload_f(cmd_state_t *cmd)
@@ -1564,6 +1561,8 @@ static void CL_DownloadFinished_f(cmd_state_t *cmd)
        CL_BeginDownloads(false);
 }
 
+extern cvar_t cl_topcolor;
+extern cvar_t cl_bottomcolor;
 static void CL_SendPlayerInfo(void)
 {
        char vabuf[1024];
@@ -1571,7 +1570,7 @@ static void CL_SendPlayerInfo(void)
        MSG_WriteString (&cls.netcon->message, va(vabuf, sizeof(vabuf), "name \"%s\"", cl_name.string));
 
        MSG_WriteByte (&cls.netcon->message, clc_stringcmd);
-       MSG_WriteString (&cls.netcon->message, va(vabuf, sizeof(vabuf), "color %i %i", cl_color.integer >> 4, cl_color.integer & 15));
+       MSG_WriteString (&cls.netcon->message, va(vabuf, sizeof(vabuf), "color %i %i", cl_topcolor.integer, cl_bottomcolor.integer));
 
        MSG_WriteByte (&cls.netcon->message, clc_stringcmd);
        MSG_WriteString (&cls.netcon->message, va(vabuf, sizeof(vabuf), "rate %i", cl_rate.integer));
@@ -1715,7 +1714,7 @@ static void CL_ParseServerInfo (void)
        if (protocol == PROTOCOL_QUAKEDP && cls.demoplayback && gamemode == GAME_NEHAHRA)
                protocol = PROTOCOL_NEHAHRAMOVIE;
        cls.protocol = protocol;
-       Con_DPrintf("Server protocol is %s\n", Protocol_NameForEnum(cls.protocol));
+       Con_Printf("Server protocol is %s\n", Protocol_NameForEnum(cls.protocol));
 
        cl.num_entities = 1;
 
@@ -1946,7 +1945,7 @@ static void CL_ParseServerInfo (void)
                                cls.demo_lastcsprogscrc = -1;
                        }
                        else
-                               Con_Error ("ERROR: couldn't open.\n");
+                               Con_Print(CON_ERROR "ERROR: couldn't open.\n");
                }
        }
        cl.islocalgame = NetConn_IsLocalGame();
@@ -2068,11 +2067,7 @@ void CL_MoveLerpEntityStates(entity_t *ent)
        {
                // not a monster
                ent->persistent.lerpstarttime = ent->state_previous.time;
-               // no lerp if it's singleplayer
-               if (cl.islocalgame && !sv_fixedframeratesingleplayer.integer)
-                       ent->persistent.lerpdeltatime = 0;
-               else
-                       ent->persistent.lerpdeltatime = bound(0, ent->state_current.time - ent->state_previous.time, 0.1);
+               ent->persistent.lerpdeltatime = bound(0, ent->state_current.time - ent->state_previous.time, 0.1);
                VectorCopy(ent->persistent.neworigin, ent->persistent.oldorigin);
                VectorCopy(ent->persistent.newangles, ent->persistent.oldangles);
                VectorCopy(ent->state_current.origin, ent->persistent.neworigin);
@@ -2333,7 +2328,7 @@ static void CL_ParseEffect (void)
        framecount = MSG_ReadByte(&cl_message);
        framerate = MSG_ReadByte(&cl_message);
 
-       CL_Effect(org, modelindex, startframe, framecount, framerate);
+       CL_Effect(org, CL_GetModelByIndex(modelindex), startframe, framecount, framerate);
 }
 
 static void CL_ParseEffect2 (void)
@@ -2347,7 +2342,7 @@ static void CL_ParseEffect2 (void)
        framecount = MSG_ReadByte(&cl_message);
        framerate = MSG_ReadByte(&cl_message);
 
-       CL_Effect(org, modelindex, startframe, framecount, framerate);
+       CL_Effect(org, CL_GetModelByIndex(modelindex), startframe, framecount, framerate);
 }
 
 void CL_NewBeam (int ent, vec3_t start, vec3_t end, dp_model_t *m, int lightning)
@@ -2386,7 +2381,7 @@ void CL_NewBeam (int ent, vec3_t start, vec3_t end, dp_model_t *m, int lightning
                VectorCopy (end, b->end);
        }
        else
-               Con_Print("beam list overflow!\n");
+               Con_DPrint("beam list overflow!\n");
 }
 
 static void CL_ParseBeam (dp_model_t *m, int lightning)
@@ -2484,7 +2479,7 @@ static void CL_ParseTempEntity(void)
                        CL_FindNonSolidLocation(pos, pos, 10);
                        CL_ParticleEffect(EFFECT_TE_EXPLOSION, 1, pos, pos, vec3_origin, vec3_origin, NULL, 0);
                        S_StartSound(-1, 0, cl.sfx_r_exp3, pos, 1, 1);
-                       CL_Effect(pos, cl.qw_modelindex_s_explod, 0, 6, 10);
+                       CL_Effect(pos, CL_GetModelByIndex(cl.qw_modelindex_s_explod), 0, 6, 10);
                        break;
 
                case QW_TE_TAREXPLOSION:
@@ -2798,7 +2793,7 @@ static void CL_ParseTempEntity(void)
                        color[2] = MSG_ReadCoord(&cl_message, cls.protocol) * (2.0f / 1.0f);
                        CL_ParticleExplosion(pos);
                        Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-                       CL_AllocLightFlash(NULL, &tempmatrix, 350, color[0], color[1], color[2], 700, 0.5, 0, -1, true, 1, 0.25, 0.25, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
+                       CL_AllocLightFlash(NULL, &tempmatrix, 350, color[0], color[1], color[2], 700, 0.5, NULL, -1, true, 1, 0.25, 0.25, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
                        S_StartSound(-1, 0, cl.sfx_r_exp3, pos, 1, 1);
                        break;
 
@@ -2811,7 +2806,7 @@ static void CL_ParseTempEntity(void)
                        color[1] = MSG_ReadByte(&cl_message) * (2.0f / 255.0f);
                        color[2] = MSG_ReadByte(&cl_message) * (2.0f / 255.0f);
                        Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-                       CL_AllocLightFlash(NULL, &tempmatrix, 350, color[0], color[1], color[2], 700, 0.5, 0, -1, true, 1, 0.25, 0.25, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
+                       CL_AllocLightFlash(NULL, &tempmatrix, 350, color[0], color[1], color[2], 700, 0.5, NULL, -1, true, 1, 0.25, 0.25, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
                        S_StartSound(-1, 0, cl.sfx_r_exp3, pos, 1, 1);
                        break;
 
@@ -2838,7 +2833,7 @@ static void CL_ParseTempEntity(void)
                        color[1] = MSG_ReadByte(&cl_message) * (2.0f / 255.0f);
                        color[2] = MSG_ReadByte(&cl_message) * (2.0f / 255.0f);
                        Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-                       CL_AllocLightFlash(NULL, &tempmatrix, radius, color[0], color[1], color[2], radius / velspeed, velspeed, 0, -1, true, 1, 0.25, 1, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
+                       CL_AllocLightFlash(NULL, &tempmatrix, radius, color[0], color[1], color[2], radius / velspeed, velspeed, NULL, -1, true, 1, 0.25, 1, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
                        break;
 
                case TE_FLAMEJET:
@@ -2899,7 +2894,7 @@ static void CL_ParseTempEntity(void)
                        color[1] = tempcolor[1] * (2.0f / 255.0f);
                        color[2] = tempcolor[2] * (2.0f / 255.0f);
                        Matrix4x4_CreateTranslate(&tempmatrix, pos[0], pos[1], pos[2]);
-                       CL_AllocLightFlash(NULL, &tempmatrix, 350, color[0], color[1], color[2], 700, 0.5, 0, -1, true, 1, 0.25, 0.25, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
+                       CL_AllocLightFlash(NULL, &tempmatrix, 350, color[0], color[1], color[2], 700, 0.5, NULL, -1, true, 1, 0.25, 0.25, 1, 1, LIGHTFLAG_NORMALMODE | LIGHTFLAG_REALTIMEMODE);
                        S_StartSound(-1, 0, cl.sfx_r_exp3, pos, 1, 1);
                        break;
 
@@ -3286,7 +3281,7 @@ static void CL_NetworkTimeReceived(double newtime)
        double timehigh;
        cl.mtime[1] = cl.mtime[0];
        cl.mtime[0] = newtime;
-       if (cl_nolerp.integer || cls.timedemo || (cl.islocalgame && !sv_fixedframeratesingleplayer.integer) || cl.mtime[1] == cl.mtime[0] || cls.signon < SIGNONS)
+       if (cl_nolerp.integer || cls.timedemo || cl.mtime[1] == cl.mtime[0] || cls.signon < SIGNONS)
                cl.time = cl.mtime[1] = newtime;
        else if (cls.demoplayback)
        {
@@ -3405,7 +3400,7 @@ void CL_ParseServerMessage(void)
        //if (cls.demorecording)
        //      CL_WriteDemoMessage (&cl_message);
 
-       cl.last_received_message = realtime;
+       cl.last_received_message = host.realtime;
 
        CL_KeepaliveMessage(false);
 
@@ -3413,7 +3408,7 @@ void CL_ParseServerMessage(void)
 // if recording demos, copy the message out
 //
        if (cl_shownet.integer == 1)
-               Con_Printf("%f %i\n", realtime, cl_message.cursize);
+               Con_Printf("%f %i\n", host.realtime, cl_message.cursize);
        else if (cl_shownet.integer == 2)
                Con_Print("------------------\n");
 
@@ -3426,7 +3421,7 @@ void CL_ParseServerMessage(void)
 
        if (cls.protocol == PROTOCOL_QUAKEWORLD)
        {
-               CL_NetworkTimeReceived(realtime); // qw has no clock
+               CL_NetworkTimeReceived(host.realtime); // qw has no clock
 
                // kill all qw nails
                cl.qw_num_nails = 0;