mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2025-01-26 13:47:56 +03:00
Merge pull request #122 from samisalreadytaken/cleanup
Minor adjustments
This commit is contained in:
commit
be71cb487f
@ -24,7 +24,13 @@ function IncludeScript( name, scope = null )
|
||||
|
||||
function DispatchParticleEffect( particleName, origin, angles, entity = null )
|
||||
{
|
||||
DoDispatchParticleEffect( particleName, origin, angles, entity );
|
||||
return DoDispatchParticleEffect( particleName, origin, angles, entity );
|
||||
}
|
||||
|
||||
function ImpulseScale( flTargetMass, flDesiredSpeed )
|
||||
{
|
||||
return flTargetMass * flDesiredSpeed;
|
||||
}
|
||||
__Documentation.RegisterHelp( "ImpulseScale", "float ImpulseScale(float, float)", "Returns an impulse scale required to push an object." );
|
||||
|
||||
)vscript";
|
@ -63,10 +63,14 @@ function EntFireByHandle( target, action, value = null, delay = 0.0, activator =
|
||||
|
||||
function DispatchParticleEffect( particleName, origin, angles, entity = null )
|
||||
{
|
||||
DoDispatchParticleEffect( particleName, origin, angles, entity );
|
||||
return DoDispatchParticleEffect( particleName, origin, angles, entity );
|
||||
}
|
||||
|
||||
__Documentation.RegisterHelp( "CConvars::GetClientConvarValue", "CConvars::GetClientConvarValue(string, int)", "Returns the convar value for the entindex as a string. Only works with client convars with the FCVAR_USERINFO flag." );
|
||||
function ImpulseScale( flTargetMass, flDesiredSpeed )
|
||||
{
|
||||
return flTargetMass * flDesiredSpeed;
|
||||
}
|
||||
__Documentation.RegisterHelp( "ImpulseScale", "float ImpulseScale(float, float)", "Returns an impulse scale required to push an object." );
|
||||
|
||||
function __ReplaceClosures( script, scope )
|
||||
{
|
||||
|
@ -2737,6 +2737,8 @@ void CBaseEntity::ScriptContextThink()
|
||||
float flNextThink = FLT_MAX;
|
||||
float flScheduled = 0.0f;
|
||||
|
||||
ScriptVariant_t arg = m_hScriptInstance;
|
||||
|
||||
for ( int i = 0; i < m_ScriptThinkFuncs.Count(); ++i )
|
||||
{
|
||||
scriptthinkfunc_t *cur = m_ScriptThinkFuncs[i];
|
||||
@ -2766,21 +2768,12 @@ void CBaseEntity::ScriptContextThink()
|
||||
if ( !cur->m_bNoParam )
|
||||
{
|
||||
#endif
|
||||
ScriptVariant_t arg = m_hScriptInstance;
|
||||
if ( g_pScriptVM->ExecuteFunction( cur->m_hfnThink, &arg, 1, &varReturn, NULL, true ) == SCRIPT_ERROR )
|
||||
{
|
||||
cur->m_flNextThink = SCRIPT_NEVER_THINK;
|
||||
continue;
|
||||
}
|
||||
g_pScriptVM->ExecuteFunction( cur->m_hfnThink, &arg, 1, &varReturn, NULL, true );
|
||||
#ifndef CLIENT_DLL
|
||||
}
|
||||
else
|
||||
{
|
||||
if ( g_pScriptVM->ExecuteFunction( cur->m_hfnThink, NULL, 0, &varReturn, NULL, true ) == SCRIPT_ERROR )
|
||||
{
|
||||
cur->m_flNextThink = SCRIPT_NEVER_THINK;
|
||||
continue;
|
||||
}
|
||||
g_pScriptVM->ExecuteFunction( cur->m_hfnThink, NULL, 0, &varReturn, NULL, true );
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -2793,6 +2786,7 @@ void CBaseEntity::ScriptContextThink()
|
||||
float flReturn;
|
||||
if ( !varReturn.AssignTo( &flReturn ) )
|
||||
{
|
||||
varReturn.Free();
|
||||
cur->m_flNextThink = SCRIPT_NEVER_THINK;
|
||||
continue;
|
||||
}
|
||||
@ -2808,7 +2802,7 @@ void CBaseEntity::ScriptContextThink()
|
||||
flNextThink = flReturn;
|
||||
}
|
||||
|
||||
cur->m_flNextThink = gpGlobals->curtime + flReturn - 0.001;
|
||||
cur->m_flNextThink = gpGlobals->curtime + flReturn - 0.001f;
|
||||
}
|
||||
|
||||
// deferred safe removal
|
||||
|
@ -679,16 +679,6 @@ static void AddPhysVelocity( HSCRIPT hPhys, const Vector& vecVelocity, const Vec
|
||||
//=============================================================================
|
||||
//=============================================================================
|
||||
|
||||
static int ScriptPrecacheModel( const char *modelname )
|
||||
{
|
||||
return CBaseEntity::PrecacheModel( modelname );
|
||||
}
|
||||
|
||||
static void ScriptPrecacheOther( const char *classname )
|
||||
{
|
||||
UTIL_PrecacheOther( classname );
|
||||
}
|
||||
|
||||
#ifndef CLIENT_DLL
|
||||
// TODO: Move this?
|
||||
static void ScriptInsertSound( int iType, const Vector &vecOrigin, int iVolume, float flDuration, HSCRIPT hOwner, int soundChannelIndex, HSCRIPT hSoundTarget )
|
||||
@ -873,7 +863,6 @@ void RegisterSharedScriptFunctions()
|
||||
|
||||
ScriptRegisterFunction( g_pScriptVM, CreateDamageInfo, "Creates damage info." );
|
||||
ScriptRegisterFunction( g_pScriptVM, DestroyDamageInfo, "Destroys damage info." );
|
||||
ScriptRegisterFunction( g_pScriptVM, ImpulseScale, "Returns an impulse scale required to push an object." );
|
||||
ScriptRegisterFunctionNamed( g_pScriptVM, ScriptCalculateExplosiveDamageForce, "CalculateExplosiveDamageForce", "Fill out a damage info handle with a damage force for an explosive." );
|
||||
ScriptRegisterFunctionNamed( g_pScriptVM, ScriptCalculateBulletDamageForce, "CalculateBulletDamageForce", "Fill out a damage info handle with a damage force for a bullet impact." );
|
||||
ScriptRegisterFunctionNamed( g_pScriptVM, ScriptCalculateMeleeDamageForce, "CalculateMeleeDamageForce", "Fill out a damage info handle with a damage force for a melee impact." );
|
||||
@ -896,10 +885,10 @@ void RegisterSharedScriptFunctions()
|
||||
//
|
||||
// Precaching
|
||||
//
|
||||
ScriptRegisterFunctionNamed( g_pScriptVM, ScriptPrecacheModel, "PrecacheModel", "Precaches a model for later usage." );
|
||||
ScriptRegisterFunctionNamed( g_pScriptVM, CBaseEntity::PrecacheModel, "PrecacheModel", "Precaches a model for later usage." );
|
||||
ScriptRegisterFunction( g_pScriptVM, PrecacheMaterial, "Precaches a material for later usage." );
|
||||
ScriptRegisterFunction( g_pScriptVM, PrecacheParticleSystem, "Precaches a particle system for later usage." );
|
||||
ScriptRegisterFunctionNamed( g_pScriptVM, ScriptPrecacheOther, "PrecacheOther", "Precaches an entity class for later usage." );
|
||||
ScriptRegisterFunctionNamed( g_pScriptVM, UTIL_PrecacheOther, "PrecacheOther", "Precaches an entity class for later usage." );
|
||||
|
||||
//
|
||||
// NPCs
|
||||
|
@ -42,7 +42,6 @@
|
||||
#include "tier0/memdbgon.h"
|
||||
|
||||
extern IScriptManager *scriptmanager;
|
||||
CNetMsgScriptHelper *g_ScriptNetMsg = new CNetMsgScriptHelper();
|
||||
|
||||
//=============================================================================
|
||||
// Net Prop Manager
|
||||
@ -401,7 +400,7 @@ private:
|
||||
//int m_nEventTick;
|
||||
|
||||
static StringHashFunctor Hash;
|
||||
static inline unsigned int HashContext( const char* c ) { return (c && *c) ? Hash(c) : 0; }
|
||||
static inline unsigned int HashContext( const char* c ) { return c ? Hash(c) : 0; }
|
||||
|
||||
inline int GetIndex()
|
||||
{
|
||||
@ -574,11 +573,10 @@ void CScriptGameEventListener::LoadEventsFromFile( const char *filename, const c
|
||||
void CScriptGameEventListener::DumpEventListeners()
|
||||
{
|
||||
CGMsg( 0, CON_GROUP_VSCRIPT, "--- Script game event listener dump start\n" );
|
||||
CGMsg( 0, CON_GROUP_VSCRIPT, "# ADDRESS ID CONTEXT\n" );
|
||||
CGMsg( 0, CON_GROUP_VSCRIPT, "# ID CONTEXT\n" );
|
||||
FOR_EACH_VEC( s_Listeners, i )
|
||||
{
|
||||
CGMsg( 0, CON_GROUP_VSCRIPT, " %d (0x%p) %d : %u\n", i,
|
||||
(void*)s_Listeners[i],
|
||||
CGMsg( 0, CON_GROUP_VSCRIPT, " %d : %d : %u\n", i,
|
||||
s_Listeners[i]->GetIndex(),
|
||||
s_Listeners[i]->m_iContextHash );
|
||||
}
|
||||
@ -755,14 +753,12 @@ bool CScriptGameEventListener::StopListeningToGameEvent( int listener )
|
||||
void CScriptGameEventListener::StopListeningToAllGameEvents( const char* szContext )
|
||||
{
|
||||
unsigned int hash = HashContext( szContext );
|
||||
|
||||
// Iterate from the end so they can be safely removed as they are deleted
|
||||
for ( int i = s_Listeners.Count(); i--; )
|
||||
{
|
||||
CScriptGameEventListener *pCur = s_Listeners[i];
|
||||
if ( pCur->m_iContextHash == hash )
|
||||
{
|
||||
s_Listeners.Remove(i); // keep list order
|
||||
s_Listeners.FastRemove(i);
|
||||
delete pCur;
|
||||
}
|
||||
}
|
||||
@ -1202,10 +1198,7 @@ HSCRIPT CScriptReadWriteFile::KeyValuesRead( const char *szFile )
|
||||
|
||||
return hScript;
|
||||
}
|
||||
#undef SCRIPT_MAX_FILE_READ_SIZE
|
||||
#undef SCRIPT_MAX_FILE_WRITE_SIZE
|
||||
#undef SCRIPT_RW_PATH_ID
|
||||
#undef SCRIPT_RW_FULL_PATH_FMT
|
||||
|
||||
|
||||
//=============================================================================
|
||||
// Network message helper
|
||||
@ -1215,6 +1208,8 @@ HSCRIPT CScriptReadWriteFile::KeyValuesRead( const char *szFile )
|
||||
// The custom message name is hashed and sent as word with the message.
|
||||
//=============================================================================
|
||||
|
||||
static CNetMsgScriptHelper scriptnetmsg;
|
||||
CNetMsgScriptHelper *g_ScriptNetMsg = &scriptnetmsg;
|
||||
|
||||
#ifdef GAME_DLL
|
||||
#define m_MsgIn_() m_MsgIn->
|
||||
@ -2181,23 +2176,23 @@ END_SCRIPTDESC();
|
||||
//=============================================================================
|
||||
// ConVars
|
||||
//=============================================================================
|
||||
class CScriptConCommand : public ICommandCallback, public ICommandCompletionCallback
|
||||
class CScriptConCommand : public ConCommand, public ICommandCallback, public ICommandCompletionCallback
|
||||
{
|
||||
typedef ConCommand BaseClass;
|
||||
|
||||
public:
|
||||
~CScriptConCommand()
|
||||
{
|
||||
Unregister();
|
||||
delete m_pBase;
|
||||
}
|
||||
|
||||
CScriptConCommand( const char *name, HSCRIPT fn, const char *helpString, int flags, ConCommand *pLinked = NULL )
|
||||
: BaseClass( name, this, helpString, flags, 0 ),
|
||||
m_pLinked(pLinked),
|
||||
m_hCallback(fn),
|
||||
m_hCompletionCallback(NULL)
|
||||
{
|
||||
m_pBase = new ConCommand( name, this, helpString, flags, 0 );
|
||||
m_pLinked = pLinked;
|
||||
m_hCallback = fn;
|
||||
m_hCompletionCallback = NULL;
|
||||
m_nCmdNameLen = V_strlen(name) + 1;
|
||||
|
||||
Assert( m_nCmdNameLen - 1 <= 128 );
|
||||
}
|
||||
|
||||
@ -2272,17 +2267,17 @@ public:
|
||||
|
||||
if (fn)
|
||||
{
|
||||
if ( !m_pBase->IsRegistered() )
|
||||
if ( !BaseClass::IsRegistered() )
|
||||
return;
|
||||
|
||||
m_pBase->m_pCommandCompletionCallback = this;
|
||||
m_pBase->m_bHasCompletionCallback = true;
|
||||
BaseClass::m_pCommandCompletionCallback = this;
|
||||
BaseClass::m_bHasCompletionCallback = true;
|
||||
m_hCompletionCallback = fn;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_pBase->m_pCommandCompletionCallback = NULL;
|
||||
m_pBase->m_bHasCompletionCallback = false;
|
||||
BaseClass::m_pCommandCompletionCallback = NULL;
|
||||
BaseClass::m_bHasCompletionCallback = false;
|
||||
m_hCompletionCallback = NULL;
|
||||
}
|
||||
}
|
||||
@ -2291,7 +2286,7 @@ public:
|
||||
{
|
||||
if (fn)
|
||||
{
|
||||
if ( !m_pBase->IsRegistered() )
|
||||
if ( !BaseClass::IsRegistered() )
|
||||
Register();
|
||||
|
||||
if ( m_hCallback )
|
||||
@ -2306,8 +2301,8 @@ public:
|
||||
|
||||
inline void Unregister()
|
||||
{
|
||||
if ( g_pCVar && m_pBase->IsRegistered() )
|
||||
g_pCVar->UnregisterConCommand( m_pBase );
|
||||
if ( g_pCVar && BaseClass::IsRegistered() )
|
||||
g_pCVar->UnregisterConCommand( this );
|
||||
|
||||
if ( g_pScriptVM )
|
||||
{
|
||||
@ -2324,30 +2319,29 @@ public:
|
||||
inline void Register()
|
||||
{
|
||||
if ( g_pCVar )
|
||||
g_pCVar->RegisterConCommand( m_pBase );
|
||||
g_pCVar->RegisterConCommand( this );
|
||||
}
|
||||
|
||||
HSCRIPT m_hCallback;
|
||||
ConCommand *m_pLinked;
|
||||
HSCRIPT m_hCompletionCallback;
|
||||
int m_nCmdNameLen;
|
||||
ConCommand *m_pLinked;
|
||||
ConCommand *m_pBase;
|
||||
};
|
||||
|
||||
class CScriptConVar
|
||||
class CScriptConVar : public ConVar
|
||||
{
|
||||
typedef ConVar BaseClass;
|
||||
|
||||
public:
|
||||
~CScriptConVar()
|
||||
{
|
||||
Unregister();
|
||||
delete m_pBase;
|
||||
}
|
||||
|
||||
CScriptConVar( const char *pName, const char *pDefaultValue, const char *pHelpString, int flags/*, float fMin, float fMax*/ )
|
||||
{
|
||||
m_pBase = new ConVar( pName, pDefaultValue, flags, pHelpString );
|
||||
m_hCallback = NULL;
|
||||
}
|
||||
: BaseClass( pName, pDefaultValue, flags, pHelpString ),
|
||||
m_hCallback(NULL)
|
||||
{}
|
||||
|
||||
void SetChangeCallback( HSCRIPT fn )
|
||||
{
|
||||
@ -2359,19 +2353,19 @@ public:
|
||||
if (fn)
|
||||
{
|
||||
m_hCallback = fn;
|
||||
m_pBase->InstallChangeCallback( (FnChangeCallback_t)ScriptConVarCallback );
|
||||
BaseClass::InstallChangeCallback( (FnChangeCallback_t)ScriptConVarCallback );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_hCallback = NULL;
|
||||
m_pBase->InstallChangeCallback( NULL );
|
||||
BaseClass::InstallChangeCallback( NULL );
|
||||
}
|
||||
}
|
||||
|
||||
inline void Unregister()
|
||||
{
|
||||
if ( g_pCVar && m_pBase->IsRegistered() )
|
||||
g_pCVar->UnregisterConCommand( m_pBase );
|
||||
if ( g_pCVar && BaseClass::IsRegistered() )
|
||||
g_pCVar->UnregisterConCommand( this );
|
||||
|
||||
if ( g_pScriptVM )
|
||||
{
|
||||
@ -2380,7 +2374,6 @@ public:
|
||||
}
|
||||
|
||||
HSCRIPT m_hCallback;
|
||||
ConVar *m_pBase;
|
||||
};
|
||||
|
||||
static CUtlMap< unsigned int, bool > g_ConVarsBlocked( DefLessFunc(unsigned int) );
|
||||
@ -2541,8 +2534,8 @@ void CScriptConvarAccessor::RegisterCommand( const char *name, HSCRIPT fn, const
|
||||
int idx = g_ScriptConCommands.Find(hash);
|
||||
if ( idx == g_ScriptConCommands.InvalidIndex() )
|
||||
{
|
||||
ConCommand *pLinked = NULL;
|
||||
if ( g_pCVar->FindVar(name) || ( ((pLinked = g_pCVar->FindCommand(name)) != NULL) && !IsOverridable(hash) ) )
|
||||
ConCommandBase *pBase = g_pCVar->FindCommandBase(name);
|
||||
if ( pBase && ( !pBase->IsCommand() || !IsOverridable(hash) ) )
|
||||
{
|
||||
DevWarning( 1, "CScriptConvarAccessor::RegisterCommand unable to register blocked ConCommand: %s\n", name );
|
||||
return;
|
||||
@ -2551,7 +2544,7 @@ void CScriptConvarAccessor::RegisterCommand( const char *name, HSCRIPT fn, const
|
||||
if ( !fn )
|
||||
return;
|
||||
|
||||
CScriptConCommand *p = new CScriptConCommand( name, fn, helpString, flags, pLinked );
|
||||
CScriptConCommand *p = new CScriptConCommand( name, fn, helpString, flags, static_cast< ConCommand* >(pBase) );
|
||||
g_ScriptConCommands.Insert( hash, p );
|
||||
}
|
||||
else
|
||||
@ -2589,7 +2582,7 @@ void CScriptConvarAccessor::RegisterConvar( const char *name, const char *pDefau
|
||||
int idx = g_ScriptConVars.Find(hash);
|
||||
if ( idx == g_ScriptConVars.InvalidIndex() )
|
||||
{
|
||||
if ( g_pCVar->FindVar(name) || g_pCVar->FindCommand(name) )
|
||||
if ( g_pCVar->FindCommandBase(name) )
|
||||
{
|
||||
DevWarning( 1, "CScriptConvarAccessor::RegisterConvar unable to register blocked ConCommand: %s\n", name );
|
||||
return;
|
||||
|
@ -33,11 +33,14 @@
|
||||
|
||||
#include "tier1/utlbuffer.h"
|
||||
#include "tier1/mapbase_con_groups.h"
|
||||
#include "tier1/convar.h"
|
||||
|
||||
#include "vscript_squirrel.nut"
|
||||
|
||||
#include <cstdarg>
|
||||
|
||||
extern ConVar developer;
|
||||
|
||||
struct WriteStateMap
|
||||
{
|
||||
CUtlMap<void*, int> cache;
|
||||
@ -862,11 +865,10 @@ namespace SQVector
|
||||
|
||||
float x = 0.0f, y = 0.0f, z = 0.0f;
|
||||
|
||||
if ( sscanf( szInput, "%f %f %f", &x, &y, &z ) < 3 ) // UTIL_StringToVector
|
||||
if ( sscanf( szInput, "%f %f %f", &x, &y, &z ) < 3 )
|
||||
{
|
||||
// Don't throw, return null while invalidating the input vector.
|
||||
// Return null while invalidating the input vector.
|
||||
// This allows the user to easily check for input errors without halting.
|
||||
//return sq_throwerror(vm, "invalid KV string");
|
||||
|
||||
sq_pushnull(vm);
|
||||
*v1 = vec3_invalid;
|
||||
@ -1753,6 +1755,9 @@ const char * ScriptDataTypeToName(ScriptDataType_t datatype)
|
||||
|
||||
void RegisterDocumentation(HSQUIRRELVM vm, const ScriptFuncDescriptor_t& pFuncDesc, ScriptClassDesc_t* pClassDesc = nullptr)
|
||||
{
|
||||
if ( !developer.GetInt() )
|
||||
return;
|
||||
|
||||
SquirrelSafeCheck safeCheck(vm);
|
||||
|
||||
if (pFuncDesc.m_pszDescription && pFuncDesc.m_pszDescription[0] == SCRIPT_HIDE[0])
|
||||
@ -1792,6 +1797,9 @@ void RegisterDocumentation(HSQUIRRELVM vm, const ScriptFuncDescriptor_t& pFuncDe
|
||||
|
||||
void RegisterClassDocumentation(HSQUIRRELVM vm, const ScriptClassDesc_t* pClassDesc)
|
||||
{
|
||||
if ( !developer.GetInt() )
|
||||
return;
|
||||
|
||||
SquirrelSafeCheck safeCheck(vm);
|
||||
|
||||
const char *name = pClassDesc->m_pszScriptName;
|
||||
@ -1824,6 +1832,9 @@ void RegisterClassDocumentation(HSQUIRRELVM vm, const ScriptClassDesc_t* pClassD
|
||||
|
||||
void RegisterEnumDocumentation(HSQUIRRELVM vm, const ScriptEnumDesc_t* pClassDesc)
|
||||
{
|
||||
if ( !developer.GetInt() )
|
||||
return;
|
||||
|
||||
SquirrelSafeCheck safeCheck(vm);
|
||||
|
||||
if (pClassDesc->m_pszDescription && pClassDesc->m_pszDescription[0] == SCRIPT_HIDE[0])
|
||||
@ -1841,6 +1852,9 @@ void RegisterEnumDocumentation(HSQUIRRELVM vm, const ScriptEnumDesc_t* pClassDes
|
||||
|
||||
void RegisterConstantDocumentation( HSQUIRRELVM vm, const ScriptConstantBinding_t* pConstDesc, const char *pszAsString, ScriptEnumDesc_t* pEnumDesc = nullptr )
|
||||
{
|
||||
if ( !developer.GetInt() )
|
||||
return;
|
||||
|
||||
SquirrelSafeCheck safeCheck(vm);
|
||||
|
||||
if (pConstDesc->m_pszDescription && pConstDesc->m_pszDescription[0] == SCRIPT_HIDE[0])
|
||||
@ -1869,6 +1883,9 @@ void RegisterConstantDocumentation( HSQUIRRELVM vm, const ScriptConstantBinding_
|
||||
|
||||
void RegisterHookDocumentation(HSQUIRRELVM vm, const ScriptHook_t* pHook, const ScriptFuncDescriptor_t& pFuncDesc, ScriptClassDesc_t* pClassDesc = nullptr)
|
||||
{
|
||||
if ( !developer.GetInt() )
|
||||
return;
|
||||
|
||||
SquirrelSafeCheck safeCheck(vm);
|
||||
|
||||
if (pFuncDesc.m_pszDescription && pFuncDesc.m_pszDescription[0] == SCRIPT_HIDE[0])
|
||||
@ -1911,6 +1928,9 @@ void RegisterHookDocumentation(HSQUIRRELVM vm, const ScriptHook_t* pHook, const
|
||||
|
||||
void RegisterMemberDocumentation(HSQUIRRELVM vm, const ScriptMemberDesc_t& pDesc, ScriptClassDesc_t* pClassDesc = nullptr)
|
||||
{
|
||||
if ( !developer.GetInt() )
|
||||
return;
|
||||
|
||||
SquirrelSafeCheck safeCheck(vm);
|
||||
|
||||
if (pDesc.m_pszDescription && pDesc.m_pszDescription[0] == SCRIPT_HIDE[0])
|
||||
@ -1938,6 +1958,12 @@ void RegisterMemberDocumentation(HSQUIRRELVM vm, const ScriptMemberDesc_t& pDesc
|
||||
CallDocumentationRegisterFunction( 3 );
|
||||
}
|
||||
|
||||
SQInteger GetDeveloperLevel(HSQUIRRELVM vm)
|
||||
{
|
||||
sq_pushinteger( vm, developer.GetInt() );
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
bool SquirrelVM::Init()
|
||||
{
|
||||
@ -2005,6 +2031,11 @@ bool SquirrelVM::Init()
|
||||
sq_pop(vm_, 1);
|
||||
}
|
||||
|
||||
sq_pushstring( vm_, "developer", -1 );
|
||||
sq_newclosure( vm_, &GetDeveloperLevel, 0 );
|
||||
//sq_setnativeclosurename( vm_, -1, "developer" );
|
||||
sq_newslot( vm_, -3, SQFalse );
|
||||
|
||||
sq_pop(vm_, 1);
|
||||
}
|
||||
|
||||
|
@ -122,14 +122,26 @@ class CSimpleCallChainer
|
||||
chain = null;
|
||||
}
|
||||
|
||||
local developer = (delete developer)()
|
||||
|
||||
__Documentation <- {}
|
||||
|
||||
local DocumentedFuncs = {}
|
||||
local DocumentedClasses = {}
|
||||
local DocumentedEnums = {}
|
||||
local DocumentedConsts = {}
|
||||
local DocumentedHooks = {}
|
||||
local DocumentedMembers = {}
|
||||
local DocumentedFuncs
|
||||
local DocumentedClasses
|
||||
local DocumentedEnums
|
||||
local DocumentedConsts
|
||||
local DocumentedHooks
|
||||
local DocumentedMembers
|
||||
|
||||
if (developer)
|
||||
{
|
||||
DocumentedFuncs = {}
|
||||
DocumentedClasses = {}
|
||||
DocumentedEnums = {}
|
||||
DocumentedConsts = {}
|
||||
DocumentedHooks = {}
|
||||
DocumentedMembers = {}
|
||||
}
|
||||
|
||||
local function AddAliasedToTable(name, signature, description, table)
|
||||
{
|
||||
@ -149,6 +161,9 @@ local function AddAliasedToTable(name, signature, description, table)
|
||||
|
||||
function __Documentation::RegisterHelp(name, signature, description)
|
||||
{
|
||||
if ( !developer )
|
||||
return
|
||||
|
||||
if (description.len() && description[0] == '#')
|
||||
{
|
||||
AddAliasedToTable(name, signature, description, DocumentedFuncs)
|
||||
@ -161,16 +176,25 @@ function __Documentation::RegisterHelp(name, signature, description)
|
||||
|
||||
function __Documentation::RegisterClassHelp(name, baseclass, description)
|
||||
{
|
||||
if ( !developer )
|
||||
return
|
||||
|
||||
DocumentedClasses[name] <- [baseclass, description];
|
||||
}
|
||||
|
||||
function __Documentation::RegisterEnumHelp(name, num_elements, description)
|
||||
{
|
||||
if ( !developer )
|
||||
return
|
||||
|
||||
DocumentedEnums[name] <- [num_elements, description];
|
||||
}
|
||||
|
||||
function __Documentation::RegisterConstHelp(name, signature, description)
|
||||
{
|
||||
if ( !developer )
|
||||
return
|
||||
|
||||
if (description.len() && description[0] == '#')
|
||||
{
|
||||
AddAliasedToTable(name, signature, description, DocumentedConsts)
|
||||
@ -183,11 +207,17 @@ function __Documentation::RegisterConstHelp(name, signature, description)
|
||||
|
||||
function __Documentation::RegisterHookHelp(name, signature, description)
|
||||
{
|
||||
if ( !developer )
|
||||
return
|
||||
|
||||
DocumentedHooks[name] <- [signature, description];
|
||||
}
|
||||
|
||||
function __Documentation::RegisterMemberHelp(name, signature, description)
|
||||
{
|
||||
if ( !developer )
|
||||
return
|
||||
|
||||
DocumentedMembers[name] <- [signature, description];
|
||||
}
|
||||
|
||||
@ -317,6 +347,9 @@ local function PrintMatchesInDocList(pattern, list, printfunc)
|
||||
|
||||
function __Documentation::PrintHelp(pattern = "*")
|
||||
{
|
||||
if ( !developer )
|
||||
return
|
||||
|
||||
local patternLower = pattern.tolower();
|
||||
|
||||
// Have a specific order
|
||||
|
Loading…
x
Reference in New Issue
Block a user