diff --git a/src/d_clisrv.h b/src/d_clisrv.h index e138b3dba..24761e2cf 100644 --- a/src/d_clisrv.h +++ b/src/d_clisrv.h @@ -42,9 +42,9 @@ applications may follow different packet versions. // be transmitted. #define MAXSERVERNAME 32 -#define MAXSERVERCONTACT 320 -#define MAXSERVERDESCRIPTION 320 -#define MAXSERVERDESCRIPTIONLINE 40 +#define MAXSERVERCONTACT 350 +#define MAXSERVERDESCRIPTION 1024 +#define MAXSERVERDESCRIPTIONLINE 80 #define DEFAULTDESCSTRING "Welcome to my SRB2Kart server!\n" // Sends over info via packets to client players. diff --git a/src/g_demo.c b/src/g_demo.c index df2a65333..57a02d64d 100644 --- a/src/g_demo.c +++ b/src/g_demo.c @@ -112,7 +112,7 @@ demoghost *ghosts = NULL; // DEMO RECORDING // -#define DEMOVERSION 0x000C +#define DEMOVERSION 0x000D #define DEMOHEADER "\xF0" "BlanReplay" "\x0F" #define DF_GHOST 0x01 // This demo contains ghost data too! @@ -657,6 +657,7 @@ static headerstatus_e G_ReadDemoHeader(UINT8 *dp, demoheader_t *header) boolean kart = false, oldkart = false; boolean raflag = true; boolean serverinfo = true; + boolean oldserverinfolength = false; // these may not be present in old demo formats, so initialize them // also initialize them so the header can be free'd without issues @@ -683,9 +684,10 @@ static headerstatus_e G_ReadDemoHeader(UINT8 *dp, demoheader_t *header) case DEMOVERSION: // latest always supported break; + case 0x000C: case 0x000B: - break; case 0x000A: + oldserverinfolength = true; break; case 0x0009: @@ -755,9 +757,12 @@ static headerstatus_e G_ReadDemoHeader(UINT8 *dp, demoheader_t *header) if (serverinfo) { + size_t maxservercontact = oldserverinfolength ? 320 : MAXSERVERCONTACT; + size_t maxdescription = oldserverinfolength ? 320 : MAXSERVERDESCRIPTION; + READSTRINGN(dp, header->servername, MAXSERVERNAME); - READSTRINGN(dp, header->servercontact, MAXSERVERCONTACT); - READSTRINGN(dp, header->serverdescription, MAXSERVERDESCRIPTION); + READSTRINGN(dp, header->servercontact, maxservercontact); + READSTRINGN(dp, header->serverdescription, maxdescription); } if (oldkart) diff --git a/src/k_hud.c b/src/k_hud.c index e937867f6..b2d174021 100644 --- a/src/k_hud.c +++ b/src/k_hud.c @@ -2528,7 +2528,7 @@ static void K_DrawServerMods(INT32 x, INT32 y) void K_DrawServerDescrption(INT32 x, INT32 y) { - UINT8 i, newlinecount = 0; + INT32 i, newlinecount = 0; if (connectedservername[0] != '\0') V_DrawThinString(x, y, V_6WIDTHSPACE|V_ALLOWLOWERCASE, connectedservername);