]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - cl_parse.c
no longer kicks off client if it got signon 1 twice during a reconnect (not sure...
[xonotic/darkplaces.git] / cl_parse.c
index 4f509d7cc4a4b9e015c918e98cfcd1b84b6e9e4d..9989bc3c8a5ce45ea420422171d565dd5537b58e 100644 (file)
@@ -287,6 +287,16 @@ Con_DPrintf("CL_SignonReply: %i\n", cls.signon);
                        MSG_WriteByte (&cls.message, clc_stringcmd);
                        MSG_WriteString (&cls.message, va("pmodel %i\n", cl_pmodel.integer));
                }
+               if (*cl_playermodel.string)
+               {
+                       MSG_WriteByte (&cls.message, clc_stringcmd);
+                       MSG_WriteString (&cls.message, va("playermodel %s\n", cl_playermodel.string));
+               }
+               if (*cl_playerskin.string)
+               {
+                       MSG_WriteByte (&cls.message, clc_stringcmd);
+                       MSG_WriteString (&cls.message, va("playerskin %s\n", cl_playerskin.string));
+               }
 
                MSG_WriteByte (&cls.message, clc_stringcmd);
                MSG_WriteString (&cls.message, va("rate %i\n", cl_rate.integer));
@@ -1516,7 +1526,7 @@ void CL_ParseServerMessage(void)
                                        if (i >= 1 && i < MAX_SOUNDS)
                                        {
                                                sfx_t *sfx = S_PrecacheSound (s, true, false);
-                                               if (!sfx)
+                                               if (!sfx && snd_initialized.integer)
                                                        Con_Printf("svc_precache: S_PrecacheSound(\"%s\") failed\n", s);
                                                cl.sound_precache[i] = sfx;
                                        }
@@ -1597,7 +1607,9 @@ void CL_ParseServerMessage(void)
 
                case svc_signonnum:
                        i = MSG_ReadByte ();
-                       if (i <= cls.signon)
+                       // LordHavoc: it's rude to kick off the client if they missed the
+                       // reconnect somehow, so allow signon 1 even if at signon 1
+                       if (i <= cls.signon && i != 1)
                                Host_Error ("Received signon %i when at %i", i, cls.signon);
                        cls.signon = i;
                        CL_SignonReply ();
@@ -1748,3 +1760,8 @@ void CL_Parse_Init(void)
                Cvar_SetValue("demo_nehahra", 1);
        Cvar_RegisterVariable(&developer_networkentities);
 }
+
+void CL_Parse_Shutdown(void)
+{
+       Mem_FreePool (&cl_scores_mempool);
+}