From cc68d2dfb4a346226557873420d572fab5d5c896 Mon Sep 17 00:00:00 2001 From: Blixibon Date: Thu, 27 Nov 2025 00:36:43 -0600 Subject: [PATCH] Fix ExtractKeyvalue() not extracting strings correctly --- sp/src/game/server/saverestore_gamedll.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sp/src/game/server/saverestore_gamedll.cpp b/sp/src/game/server/saverestore_gamedll.cpp index a1f9505d8f7..466702eeffb 100644 --- a/sp/src/game/server/saverestore_gamedll.cpp +++ b/sp/src/game/server/saverestore_gamedll.cpp @@ -173,7 +173,13 @@ bool ExtractKeyvalue( void *pObject, typedescription_t *pFields, int iNumFields, case FIELD_MODELNAME: case FIELD_SOUNDNAME: case FIELD_STRING: +#ifdef MAPBASE + // All datadesc string values use string_t + // See analogous implementation in ParseKeyvalue() above + Q_strncpy( szValue, ((string_t *)((char *)pObject + fieldOffset))->ToCStr(), iMaxLen ); +#else Q_strncpy( szValue, ((char *)pObject + fieldOffset), iMaxLen ); +#endif return true; case FIELD_TIME: