engine: fix bsp21 loading

This commit is contained in:
nillerusr 2023-04-04 23:22:06 +03:00
parent d56e855742
commit f1de24b0b2
3 changed files with 13 additions and 2 deletions

View File

@ -396,6 +396,8 @@ static worldbrushdata_t *s_pMap = NULL;
static int s_nMapLoadRecursion = 0; static int s_nMapLoadRecursion = 0;
static CUtlBuffer s_MapBuffer; static CUtlBuffer s_MapBuffer;
int s_MapVersion = 0;
// Lump files are patches for a shipped map // Lump files are patches for a shipped map
// List of lump files found when map was loaded. Each entry is the lump file index for that lump id. // List of lump files found when map was loaded. Each entry is the lump file index for that lump id.
struct lumpfiles_t struct lumpfiles_t
@ -469,6 +471,8 @@ void CMapLoadHelper::Init( model_t *pMapModel, const char *loadname )
return; return;
} }
s_MapVersion = s_MapHeader.version;
V_strcpy_safe( s_szLoadName, loadname ); V_strcpy_safe( s_szLoadName, loadname );
// Store map version, but only do it once so that the communication between the engine and Hammer isn't broken. The map version // Store map version, but only do it once so that the communication between the engine and Hammer isn't broken. The map version

View File

@ -60,7 +60,7 @@ ConVar r_staticpropinfo( "r_staticpropinfo", "0" );
ConVar r_drawmodeldecals( "r_drawmodeldecals", "1" ); ConVar r_drawmodeldecals( "r_drawmodeldecals", "1" );
extern ConVar mat_fullbright; extern ConVar mat_fullbright;
static bool g_MakingDevShots = false; static bool g_MakingDevShots = false;
extern dheader_t s_MapHeader; extern int s_MapVersion;
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// Index into the fade list // Index into the fade list
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
@ -1342,12 +1342,13 @@ void CStaticPropMgr::UnserializeModels( CUtlBuffer& buf )
case 9: UnserializeLump<StaticPropLumpV9_t>(&lump, buf); break; case 9: UnserializeLump<StaticPropLumpV9_t>(&lump, buf); break;
case 10: case 10:
{ {
if( s_MapHeader.version == 21 ) if( s_MapVersion == 21 )
UnserializeLump<StaticPropLumpV10_21_t>(&lump, buf); UnserializeLump<StaticPropLumpV10_21_t>(&lump, buf);
else else
UnserializeLump<StaticPropLumpV10_t>(&lump, buf); UnserializeLump<StaticPropLumpV10_t>(&lump, buf);
break; break;
} }
case 11: UnserializeLump<StaticPropLumpV11_t>(&lump, buf);
default: default:
Assert("Unexpected version while deserializing lumps."); Assert("Unexpected version while deserializing lumps.");
} }

View File

@ -443,6 +443,12 @@ struct StaticPropLump_t
m_FlagsEx = _rhs.m_FlagsEx; m_FlagsEx = _rhs.m_FlagsEx;
return *this; return *this;
} }
inline StaticPropLump_t& operator=(const StaticPropLumpV11_t& _rhs)
{
(*this) = reinterpret_cast<const StaticPropLumpV10_21_t&>(_rhs);
return *this;
}
}; };
struct StaticPropLeafLump_t struct StaticPropLeafLump_t