mirror of
https://github.com/celisej567/source-sdk-2013.git
synced 2026-09-17 20:10:21 +03:00
Added save/restore to client-side VScript
This commit is contained in:
@@ -13,6 +13,9 @@
|
||||
#include "ivieweffects.h"
|
||||
#include "shake.h"
|
||||
#include "eventlist.h"
|
||||
#ifdef MAPBASE
|
||||
#include "mapentities_shared.h"
|
||||
#endif
|
||||
// NVNT haptic include for notification of world precache
|
||||
#include "haptics/haptic_utils.h"
|
||||
// memdbgon must be the last include file in a .cpp file!!!
|
||||
@@ -62,9 +65,6 @@ BEGIN_RECV_TABLE( C_World, DT_World )
|
||||
#ifdef MAPBASE
|
||||
RecvPropString(RECVINFO(m_iszChapterTitle)),
|
||||
#endif
|
||||
#ifdef MAPBASE_VSCRIPT
|
||||
RecvPropInt(RECVINFO(m_iScriptLanguageClient)),
|
||||
#endif
|
||||
END_RECV_TABLE()
|
||||
|
||||
#ifdef MAPBASE_VSCRIPT
|
||||
@@ -86,6 +86,11 @@ bool C_World::Init( int entnum, int iSerialNum )
|
||||
ActivityList_Init();
|
||||
EventList_Init();
|
||||
|
||||
#ifdef MAPBASE_VSCRIPT
|
||||
m_iScriptLanguageServer = SL_NONE;
|
||||
m_iScriptLanguageClient = SL_NONE;
|
||||
#endif
|
||||
|
||||
return BaseClass::Init( entnum, iSerialNum );
|
||||
}
|
||||
|
||||
@@ -129,11 +134,6 @@ void C_World::OnDataChanged( DataUpdateType_t updateType )
|
||||
engine->SetOcclusionParameters( params );
|
||||
|
||||
modelinfo->SetLevelScreenFadeRange( m_flMinPropScreenSpaceWidth, m_flMaxPropScreenSpaceWidth );
|
||||
|
||||
#ifdef MAPBASE_VSCRIPT
|
||||
// This is now here so that C_World has time to receive the selected script language
|
||||
VScriptClientInit();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,6 +199,72 @@ void C_World::Spawn( void )
|
||||
Precache();
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Parse data from a map file
|
||||
//-----------------------------------------------------------------------------
|
||||
bool C_World::KeyValue( const char *szKeyName, const char *szValue )
|
||||
{
|
||||
#ifdef MAPBASE_VSCRIPT
|
||||
if ( FStrEq( szKeyName, "vscriptlanguage" ) )
|
||||
{
|
||||
m_iScriptLanguageServer = atoi( szValue );
|
||||
}
|
||||
else if ( FStrEq( szKeyName, "vscriptlanguage_client" ) )
|
||||
{
|
||||
m_iScriptLanguageClient = atoi( szValue );
|
||||
}
|
||||
else
|
||||
#endif
|
||||
return BaseClass::KeyValue( szKeyName, szValue );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
#ifdef MAPBASE
|
||||
//-----------------------------------------------------------------------------
|
||||
// Parses worldspawn data from BSP on the client
|
||||
//-----------------------------------------------------------------------------
|
||||
void C_World::ParseWorldMapData( const char *pMapData )
|
||||
{
|
||||
char szTokenBuffer[MAPKEY_MAXLENGTH];
|
||||
for ( ; true; pMapData = MapEntity_SkipToNextEntity(pMapData, szTokenBuffer) )
|
||||
{
|
||||
//
|
||||
// Parse the opening brace.
|
||||
//
|
||||
char token[MAPKEY_MAXLENGTH];
|
||||
pMapData = MapEntity_ParseToken( pMapData, token );
|
||||
|
||||
//
|
||||
// Check to see if we've finished or not.
|
||||
//
|
||||
if (!pMapData)
|
||||
break;
|
||||
|
||||
if (token[0] != '{')
|
||||
{
|
||||
Error( "MapEntity_ParseAllEntities: found %s when expecting {", token);
|
||||
continue;
|
||||
}
|
||||
|
||||
CEntityMapData entData( (char*)pMapData );
|
||||
char className[MAPKEY_MAXLENGTH];
|
||||
|
||||
if (!entData.ExtractValue( "classname", className ))
|
||||
{
|
||||
Error( "classname missing from entity!\n" );
|
||||
}
|
||||
|
||||
if ( !Q_strcmp( className, "worldspawn" ) )
|
||||
{
|
||||
// Set up keyvalues.
|
||||
ParseMapData( &entData );
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
C_World *GetClientWorldEntity()
|
||||
|
||||
Reference in New Issue
Block a user