mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2024-12-25 06:15:30 +03:00
Converted VScript library to DLL
This commit is contained in:
parent
30bc88375a
commit
df918b3d88
@ -459,6 +459,9 @@ public:
|
||||
{
|
||||
AddAppSystem( "soundemittersystem" DLL_EXT_STRING, SOUNDEMITTERSYSTEM_INTERFACE_VERSION );
|
||||
AddAppSystem( "scenefilecache" DLL_EXT_STRING, SCENE_FILE_CACHE_INTERFACE_VERSION );
|
||||
#ifdef MAPBASE
|
||||
AddAppSystem( "vscript_mapbase" DLL_EXT_STRING, VSCRIPT_INTERFACE_VERSION );
|
||||
#endif
|
||||
}
|
||||
|
||||
virtual int Count()
|
||||
@ -971,10 +974,18 @@ int CHLClient::Init( CreateInterfaceFn appSystemFactory, CreateInterfaceFn physi
|
||||
{
|
||||
scriptmanager = (IScriptManager *)appSystemFactory( VSCRIPT_INTERFACE_VERSION, NULL );
|
||||
|
||||
if (scriptmanager == NULL)
|
||||
{
|
||||
Error( "Can't load script manager" );
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
if (scriptmanager == nullptr)
|
||||
{
|
||||
scriptmanager = (IScriptManager*)Sys_GetFactoryThis()(VSCRIPT_INTERFACE_VERSION, NULL);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
#ifdef WORKSHOP_IMPORT_ENABLED
|
||||
|
@ -83,7 +83,7 @@ $Project
|
||||
|
||||
$Folder "Link Libraries"
|
||||
{
|
||||
$Lib "vscript" [$MAPBASE_VSCRIPT]
|
||||
$ImpLib "vscript_mapbase" [$MAPBASE_VSCRIPT]
|
||||
$Lib "raytrace"
|
||||
}
|
||||
}
|
||||
|
@ -3540,6 +3540,9 @@ public:
|
||||
{
|
||||
AddAppSystem( "soundemittersystem" DLL_EXT_STRING, SOUNDEMITTERSYSTEM_INTERFACE_VERSION );
|
||||
AddAppSystem( "scenefilecache" DLL_EXT_STRING, SCENE_FILE_CACHE_INTERFACE_VERSION );
|
||||
#ifdef MAPBASE
|
||||
AddAppSystem( "vscript_mapbase" DLL_EXT_STRING, VSCRIPT_INTERFACE_VERSION );
|
||||
#endif
|
||||
}
|
||||
|
||||
virtual int Count()
|
||||
|
@ -110,7 +110,7 @@ $Project
|
||||
|
||||
$Folder "Link Libraries"
|
||||
{
|
||||
$Lib "vscript" [$MAPBASE_VSCRIPT]
|
||||
$ImpLib "vscript_mapbase" [$MAPBASE_VSCRIPT]
|
||||
$Lib "responserules" [$NEW_RESPONSE_SYSTEM]
|
||||
}
|
||||
}
|
||||
|
@ -36,8 +36,8 @@ extern ScriptClassDesc_t * GetScriptDesc( CBaseEntity * );
|
||||
|
||||
#ifdef MAPBASE_VSCRIPT
|
||||
// This is to ensure a dependency exists between the vscript library and the game DLLs
|
||||
extern int vscript_token;
|
||||
int vscript_token_hack = vscript_token;
|
||||
//extern int vscript_token;
|
||||
//int vscript_token_hack = vscript_token;
|
||||
#endif
|
||||
|
||||
|
||||
|
@ -1643,6 +1643,10 @@ struct ScriptHook_t
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
// TEMP LOCATION
|
||||
extern template VSCRIPT_CLASS ScriptClassDesc_t* GetScriptDesc<matrix3x4_t>( matrix3x4_t* );
|
||||
extern template VSCRIPT_CLASS ScriptClassDesc_t* GetScriptDesc<Color>( Color* );
|
||||
#endif
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@ -1397,9 +1397,20 @@ int RunVBSP( int argc, char **argv )
|
||||
#ifdef MAPBASE_VSCRIPT
|
||||
if (g_iScripting)
|
||||
{
|
||||
scriptmanager = (IScriptManager*)Sys_GetFactoryThis()(VSCRIPT_INTERFACE_VERSION, NULL);
|
||||
static CSysModule *pVScriptModule = NULL;
|
||||
CreateInterfaceFn vscriptFactory = NULL;
|
||||
if ( !pVScriptModule )
|
||||
{
|
||||
pVScriptModule = g_pFullFileSystem->LoadModule( "vscript_mapbase.dll" );
|
||||
vscriptFactory = Sys_GetFactory( pVScriptModule );
|
||||
}
|
||||
|
||||
if (vscriptFactory)
|
||||
{
|
||||
scriptmanager = (IScriptManager*)vscriptFactory( VSCRIPT_INTERFACE_VERSION, NULL );
|
||||
|
||||
VScriptVBSPInit();
|
||||
VScriptVBSPInit();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -189,7 +189,7 @@ $Project "Vbsp"
|
||||
$Lib mathlib
|
||||
$Lib tier2
|
||||
$Lib vtf
|
||||
$Lib vscript [$MAPBASE_VSCRIPT]
|
||||
$ImpLib "vscript_mapbase" [$MAPBASE_VSCRIPT]
|
||||
}
|
||||
|
||||
$File "notes.txt"
|
||||
|
@ -40,8 +40,8 @@ extern ScriptClassDesc_t * GetScriptDesc( CBaseEntity * );
|
||||
#endif // VMPROFILE
|
||||
|
||||
// This is to ensure a dependency exists between the vscript library and the game DLLs
|
||||
extern int vscript_token;
|
||||
int vscript_token_hack = vscript_token;
|
||||
//extern int vscript_token;
|
||||
//int vscript_token_hack = vscript_token;
|
||||
|
||||
HSCRIPT VScriptCompileScript( const char *pszScriptName, bool bWarnMissing )
|
||||
{
|
||||
|
@ -18,6 +18,9 @@ IScriptVM* makeSquirrelVM();
|
||||
|
||||
int vscript_token = 0;
|
||||
|
||||
// HACKHACK: The last-created script VM (for accessing VM from bound functions)
|
||||
IScriptVM *g_pScriptVM;
|
||||
|
||||
class CScriptManager : public CTier1AppSystem<IScriptManager>
|
||||
{
|
||||
public:
|
||||
@ -47,6 +50,8 @@ public:
|
||||
// Register base bindings for all VMs
|
||||
RegisterBaseBindings( pScriptVM );
|
||||
|
||||
g_pScriptVM = pScriptVM;
|
||||
|
||||
return pScriptVM;
|
||||
}
|
||||
|
||||
|
@ -5,14 +5,17 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
$macro SRCDIR ".."
|
||||
$Macro OUTBINNAME "vscript_mapbase"
|
||||
$Macro OUTBINDIR "$SRCDIR\..\game\bin"
|
||||
|
||||
$include "$SRCDIR\vpc_scripts\source_lib_base.vpc"
|
||||
$include "$SRCDIR\vpc_scripts\source_dll_base.vpc"
|
||||
|
||||
$Configuration
|
||||
{
|
||||
$Compiler
|
||||
{
|
||||
$AdditionalIncludeDirectories "$BASE;.\squirrel\include"
|
||||
$PreprocessorDefinitions "$BASE;VSCRIPT_DLL_EXPORT"
|
||||
$PreprocessorDefinitions "$BASE;MAPBASE_VSCRIPT" [$MAPBASE_VSCRIPT]
|
||||
}
|
||||
}
|
||||
@ -66,4 +69,9 @@ $Project "VScript"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$Folder "Link Libraries"
|
||||
{
|
||||
$Lib mathlib
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user