engine: fix static prop lump version 10 loading

This commit is contained in:
nillerusr 2023-02-16 18:44:33 +03:00
parent 3f0c1e3e55
commit 071c4d827f
3 changed files with 29 additions and 3 deletions

View file

@ -387,7 +387,8 @@ IModelLoader *modelloader = ( IModelLoader * )&g_ModelLoader;
//-----------------------------------------------------------------------------
// Globals used by the CMapLoadHelper
//-----------------------------------------------------------------------------
static dheader_t s_MapHeader;
dheader_t s_MapHeader;
static FileHandle_t s_MapFileHandle = FILESYSTEM_INVALID_HANDLE;
static char s_szLoadName[128];
static char s_szMapName[128];

View file

@ -60,6 +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;
//-----------------------------------------------------------------------------
// Index into the fade list
//-----------------------------------------------------------------------------
@ -1382,7 +1383,10 @@ void CStaticPropMgr::UnserializeModels( CUtlBuffer& buf )
break;
case 10:
buf.Get( &lump, sizeof( StaticPropLumpV10_t ) );
if( s_MapHeader.version >= 21 )
buf.Get( &lump, sizeof( StaticPropLumpV10_21_t ) );
else
buf.Get( &lump, sizeof( StaticPropLumpV10_t ) );
break;
case 11:

View file

@ -271,8 +271,29 @@ struct StaticPropLumpV9_t
bool m_bDisableX360;
};
// version 10
struct StaticPropLumpV10_t
{
Vector m_Origin;
QAngle m_Angles;
unsigned short m_PropType;
unsigned short m_FirstLeaf;
unsigned short m_LeafCount;
unsigned char m_Solid;
int m_Skin;
float m_FadeMinDist;
float m_FadeMaxDist;
Vector m_LightingOrigin;
float m_flForcedFadeScale;
unsigned short m_nMinDXLevel;
unsigned short m_nMaxDXLevel;
// int m_Lighting; // index into the GAMELUMP_STATIC_PROP_LIGHTING lump
unsigned int m_Flags;
unsigned short m_nLightmapResolutionX;
unsigned short m_nLightmapResolutionY;
};
// version 10
struct StaticPropLumpV10_21_t
{
DECLARE_BYTESWAP_DATADESC();
Vector m_Origin;