foxygit / doom Log in
commit 1a20757516d576dec50d01fe3d75091453cf766b
Author:     Simon Howard <fraggle@gmail.com>
AuthorDate: Sun Jan 7 01:58:16 2007 +0000
Commit:     Simon Howard <fraggle@gmail.com>
CommitDate: Sun Jan 7 01:58:16 2007 +0000

    Display a message on the console with details when WAD/DEH checksums do
    not match.

    Subversion-branch: /trunk/chocolate-doom
    Subversion-revision: 825
---
 src/net_gui.c | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/src/net_gui.c b/src/net_gui.c
index c1610caf..9ebec568 100644
--- a/src/net_gui.c
+++ b/src/net_gui.c
@@ -153,6 +153,20 @@ static void UpdateGUI(void)
     TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, startgame);
 }

+static void PrintMD5Digest(char *s, byte *digest)
+{
+    int i;
+
+    printf("%s: ", s);
+
+    for (i=0; i<sizeof(md5_digest_t); ++i)
+    {
+        printf("%02x", digest[i]);
+    }
+
+    printf("\n");
+}
+
 static void CheckMD5Sums(void)
 {
     boolean correct_wad, correct_deh;
@@ -175,6 +189,28 @@ static void CheckMD5Sums(void)
         return;
     }

+    if (!correct_wad)
+    {
+        printf("Warning: WAD MD5 does not match server:\n");
+        PrintMD5Digest("Local", net_local_wad_md5sum);
+        PrintMD5Digest("Server", net_server_wad_md5sum);
+    }
+
+    if (!same_freedoom)
+    {
+        printf("Warning: Mixing Freedoom with non-Freedoom\n");
+        printf("Local: %i  Server: %i\n",
+               net_local_is_freedoom,
+               net_server_is_freedoom);
+    }
+
+    if (!correct_deh)
+    {
+        printf("Warning: Dehacked MD5 does not match server:\n");
+        PrintMD5Digest("Local", net_local_deh_md5sum);
+        PrintMD5Digest("Server", net_server_deh_md5sum);
+    }
+
     window = TXT_NewWindow("WARNING");

     TXT_SetWindowAction(window, TXT_HORIZ_RIGHT, NULL);