]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - common.c
gave names to nearly all structs and enums which should make for better C++ error...
[xonotic/darkplaces.git] / common.c
index 0eabf123441f48989e52245169f8786f0ff96783..c34ca93aef454f39ef2bacf5870d3516f085c4a7 100644 (file)
--- a/common.c
+++ b/common.c
@@ -171,7 +171,7 @@ static unsigned short crctable[256] =
        0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0
 };
 
-unsigned short CRC_Block(const qbyte *data, int size)
+unsigned short CRC_Block(const qbyte *data, size_t size)
 {
        unsigned short crc = CRC_INIT_VALUE;
        while (size--)
@@ -241,15 +241,21 @@ void MSG_WriteFloat (sizebuf_t *sb, float f)
        dat.f = f;
        dat.l = LittleLong (dat.l);
 
-       SZ_Write (sb, &dat.l, 4);
+       SZ_Write (sb, (qbyte *)&dat.l, 4);
 }
 
 void MSG_WriteString (sizebuf_t *sb, const char *s)
 {
        if (!s)
-               SZ_Write (sb, "", 1);
+               SZ_Write (sb, (qbyte *)"", 1);
        else
-               SZ_Write (sb, s, strlen(s)+1);
+               SZ_Write (sb, (qbyte *)s, (int)strlen(s)+1);
+}
+
+void MSG_WriteUnterminatedString (sizebuf_t *sb, const char *s)
+{
+       if (s)
+               SZ_Write (sb, (qbyte *)s, (int)strlen(s));
 }
 
 void MSG_WriteCoord13i (sizebuf_t *sb, float f)
@@ -283,8 +289,6 @@ void MSG_WriteCoord (sizebuf_t *sb, float f, protocolversion_t protocol)
                MSG_WriteCoord16i (sb, f);
        else
                MSG_WriteCoord32f (sb, f);
-       //else
-       //      Host_Error("MSG_WriteCoord: unknown protocol\n");
 }
 
 void MSG_WriteVector (sizebuf_t *sb, float *v, protocolversion_t protocol)
@@ -498,9 +502,9 @@ void SZ_Clear (sizebuf_t *buf)
        buf->cursize = 0;
 }
 
-void *SZ_GetSpace (sizebuf_t *buf, int length)
+qbyte *SZ_GetSpace (sizebuf_t *buf, int length)
 {
-       void *data;
+       qbyte *data;
 
        if (buf->cursize + length > buf->maxsize)
        {
@@ -521,7 +525,7 @@ void *SZ_GetSpace (sizebuf_t *buf, int length)
        return data;
 }
 
-void SZ_Write (sizebuf_t *buf, const void *data, int length)
+void SZ_Write (sizebuf_t *buf, const qbyte *data, int length)
 {
        memcpy (SZ_GetSpace(buf,length),data,length);
 }
@@ -785,7 +789,6 @@ skipwhite:
                }
                com_token[len] = 0;
                *datapointer = data+1;
-               return true;
        }
        else
        {
@@ -802,8 +805,9 @@ skipwhite:
                }
                com_token[len] = 0;
                *datapointer = data;
-               return true;
        }
+
+       return true;
 }
 
 
@@ -844,7 +848,7 @@ void COM_CheckRegistered (void)
 {
        Cvar_Set ("cmdline", com_cmdline);
 
-       if (!FS_FileExists("gfx/pop.lmp"))
+       if (gamemode == GAME_NORMAL && !FS_FileExists("gfx/pop.lmp"))
        {
                if (fs_modified)
                        Con_Print("Playing shareware version, with modification.\nwarning: most mods require full quake data.\n");
@@ -897,7 +901,7 @@ void COM_InitArgv (void)
 
 // Game mods
 
-typedef struct
+typedef struct gamemode_info_s
 {
        const char* prog_name;
        const char* cmdline;
@@ -940,7 +944,7 @@ static const gamemode_info_t gamemode_info [] =
 { "battlemech",                "-battlemech",  "Battlemech",                   "base",         NULL,                   "battlemech",   "battlemech" },
 // GAME_ZYMOTIC
 // COMMANDLINEOPTION: Game: -zymotic runs the singleplayer game Zymotic
-{ "zymotic",           "-zymotic",             "Zymotic",                              "data",         NULL,                   "zymotic",              "zymotic" },
+{ "zymotic",           "-zymotic",             "Zymotic",                              "basezym",              NULL,                   "zymotic",              "zymotic" },
 // GAME_FNIGGIUM
 // COMMANDLINEOPTION: Game: -fniggium runs the post apocalyptic melee RPG Fniggium
 { "fniggium",          "-fniggium",    "Fniggium",                             "data",         NULL,                   "fniggium",             "fniggium" },
@@ -958,16 +962,19 @@ static const gamemode_info_t gamemode_info [] =
 { "neoteric",          "-neoteric",    "Neoteric",                             "id1",          "neobase",              "neo",                  "darkplaces" },
 // GAME_OPENQUARTZ
 // COMMANDLINEOPTION: Game: -openquartz runs the game OpenQuartz, a standalone GPL replacement of the quake content
-{ "openquartz",                "-openquartz",  "OpenQuartz",                   "id1",          NULL,                   "openquartz",   "darkplaces"},
+{ "openquartz",                "-openquartz",  "OpenQuartz",                   "id1",          NULL,                   "openquartz",   "darkplaces" },
 // GAME_PRYDON
 // COMMANDLINEOPTION: Game: -prydon runs the topdown point and click action-RPG Prydon Gate
-{ "prydon",                    "-prydon",              "PrydonGate",                   "id1",          "prydon",               "prydon",               "darkplaces"},
+{ "prydon",                    "-prydon",              "PrydonGate",                   "id1",          "prydon",               "prydon",               "darkplaces" },
 // GAME_NETHERWORLD
-// COMMANDLINEOPTION: Game: -netherworld runs the game Netherworld: Dark Masters
-{ "netherworld",       "-netherworld", "Dark Masters",                 "id1",          "netherworld",  "nw",                   "darkplaces"},
+// COMMANDLINEOPTION: Game: -netherworld runs the game Netherworld: Dark Master
+{ "netherworld",       "-netherworld", "Netherworld: Dark Master",     "id1",          "netherworld",  "nw",                   "darkplaces" },
 // GAME_THEHUNTED
-// COMMANDLINEOPTION: Game: -netherworld runs the game The Hunted
-{ "thehunted",         "-thehunted",   "The Hunted",                   "thdata",       NULL,                   "th",                   "thehunted"},
+// COMMANDLINEOPTION: Game: -thehunted runs the game The Hunted
+{ "thehunted",         "-thehunted",   "The Hunted",                   "thdata",       NULL,                   "th",                   "thehunted" },
+// GAME_DEFEATINDETAIL2
+// COMMANDLINEOPTION: Game: -did2 runs the game Defeat In Detail 2
+{ "did2",                      "-did2",                "Defeat In Detail 2",   "data",         NULL,                   "did2_",                "did2" },
 };
 
 void COM_InitGameType (void)
@@ -983,7 +990,7 @@ void COM_InitGameType (void)
        for (i = 1; i < sizeof (gamemode_info) / sizeof (gamemode_info[0]); i++)
                if (strstr (name, gamemode_info[i].prog_name))
                {
-                       gamemode = i;
+                       gamemode = (gamemode_t)i;
                        break;
                }
 
@@ -991,7 +998,7 @@ void COM_InitGameType (void)
        for (i = 0; i < sizeof (gamemode_info) / sizeof (gamemode_info[0]); i++)
                if (COM_CheckParm (gamemode_info[i].cmdline))
                {
-                       gamemode = i;
+                       gamemode = (gamemode_t)i;
                        break;
                }
 
@@ -1133,7 +1140,7 @@ int COM_ReadAndTokenizeLine(const char **text, char **argv, int maxargc, char *t
        l = *text;
        commentprefixlength = 0;
        if (commentprefix)
-               commentprefixlength = strlen(commentprefix);
+               commentprefixlength = (int)strlen(commentprefix);
        while (*l && *l != '\n' && *l != '\r')
        {
                if (*l > ' ')