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 CUtlBuffer s_MapBuffer;
int s_MapVersion = 0;
// 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.
struct lumpfiles_t
@ -469,6 +471,8 @@ void CMapLoadHelper::Init( model_t *pMapModel, const char *loadname )
return;
}
s_MapVersion = s_MapHeader.version;
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

View File

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

View File

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