mirror of
https://github.com/celisej567/source-sdk-2013.git
synced 2026-09-11 20:11:33 +03:00
vscript additions and fixes:
baseanimating.h
baseanimating.cpp
- Added CBaseAnimating::SequenceDuration (ScriptSequenceDuration)
- Added CBaseAnimating::GetPlaybackRate
- Added CBaseAnimating::SetPlaybackRate
- Added CBaseAnimating::GetCycle
- Added CBaseAnimating::SetCycle
triggers.h
triggers.cpp
- Fixed CTriggerCamera::ScriptSetFov setting player FOV while disabled
- Added CBaseTrigger::Enable
- Added CBaseTrigger::Disable
- Added CBaseTrigger::TouchTest
- Added CBaseTrigger::IsTouching (ScriptIsTouching)
vscript_server.nut
vscript_server.cpp
- Added CEntities::FindByClassnameWithinBox
- Added ::SendToConsoleServer
- Added ::CancelEntityIOEvent
- Added ::GetEntityIOEventTimeLeft
- Moved ScriptDispatchParticleEffect to shared code
eventqueue.h
cbase.h
cbase.cpp
- Set entity I/O con output colour
- Added (CEventQueue::CancelEventsByInput)
- Added (CEventQueue::RemoveEvent)
- Added (CEventQueue::GetTimeLeft)
baseentity.h
baseentity.cpp
- Added CBaseEntity::SetTransmitState
- Added CBaseEntity::GetTransmitState
- Added CBaseEntity::AcceptInput (ScriptAcceptInput)
- Added CBaseEntity::FireOutput (ScriptFireOutput)
- Added CBaseEntity::GetMaxOutputDelay
- Added CBaseEntity::CancelEventsByInput
- Added player_use event on InputUse
- Fixed InputKill on players
ivscript.h
vscript_squirrel.cpp
- Added IScriptVM::ArrayAppend
- Fixed buffer overflow crash
- Increased print buffer to 2048 from 256
- Set vscript print output colour
vscript_funcs_shared.cpp
- Added CNetMsgScriptHelper
(CScriptGameEventListener)
- Added ::ListenToGameEvent
- Added ::StopListeningToGameEvent
- Added ::StopListeningToAllGameEvents
- Added ::FireGameEvent
- Added ::FireGameEventLocal
(CScriptSaveRestoreUtil)
- Added ::SaveTable
- Added ::RestoreTable
- Added ::ClearSavedTable
- Added callbacks ::OnSave, ::OnRestore
(CScriptReadWriteFile)
- Added ::StringToFile
- Added ::FileToString
- Added GlobalSys::GetCommandLine
- Added GlobalSys::CommandLineCheck
- Added GlobalSys::CommandLineCheckStr
- Added GlobalSys::CommandLineCheckFloat
- Added GlobalSys::CommandLineCheckInt
- Added ::GetCPUUsage
- Added ::NXPrint
- Added ::Msg (ScriptMsg)
- Removed misplaced condition checks
- Fixed ScriptEntitiesInBox, *AtPoint, *InSphere
logic_eventlistener.cpp
- Removed redundant dev msg
gamestringpool.cpp
- Fixed string pool dump sort
This commit is contained in:
@@ -31,7 +31,7 @@
|
||||
#include "squirrel/squirrel/sqvm.h"
|
||||
#include "squirrel/squirrel/sqclosure.h"
|
||||
|
||||
|
||||
#include "color.h"
|
||||
#include "tier1/utlbuffer.h"
|
||||
|
||||
#include <cstdarg>
|
||||
@@ -199,6 +199,9 @@ public:
|
||||
|
||||
virtual bool ClearValue(HSCRIPT hScope, const char* pszKey) override;
|
||||
|
||||
// virtual void CreateArray(ScriptVariant_t &arr, int size = 0) override;
|
||||
virtual bool ArrayAppend(HSCRIPT hArray, const ScriptVariant_t &val) override;
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
virtual void WriteState(CUtlBuffer* pBuffer) override;
|
||||
@@ -1362,24 +1365,26 @@ struct SquirrelSafeCheck
|
||||
};
|
||||
|
||||
|
||||
#define CON_COLOR_VSCRIPT 80,186,255,255
|
||||
|
||||
void printfunc(HSQUIRRELVM SQ_UNUSED_ARG(v), const SQChar* format, ...)
|
||||
{
|
||||
va_list args;
|
||||
char buffer[2048];
|
||||
va_start(args, format);
|
||||
char buffer[256];
|
||||
vsprintf(buffer, format, args);
|
||||
Msg("%s", buffer);
|
||||
V_vsnprintf(buffer, sizeof(buffer), format, args);
|
||||
va_end(args);
|
||||
ConColorMsg(Color(CON_COLOR_VSCRIPT), "%s", buffer);
|
||||
}
|
||||
|
||||
void errorfunc(HSQUIRRELVM SQ_UNUSED_ARG(v), const SQChar* format, ...)
|
||||
{
|
||||
va_list args;
|
||||
char buffer[2048];
|
||||
va_start(args, format);
|
||||
char buffer[256];
|
||||
vsprintf(buffer, format, args);
|
||||
Warning("%s", buffer);
|
||||
V_vsnprintf(buffer, sizeof(buffer), format, args);
|
||||
va_end(args);
|
||||
Warning("%s", buffer);
|
||||
}
|
||||
|
||||
const char * ScriptDataTypeToName(ScriptDataType_t datatype)
|
||||
@@ -1595,20 +1600,8 @@ bool SquirrelVM::Init()
|
||||
|
||||
if (Run(
|
||||
R"script(
|
||||
Msg <- print;
|
||||
Warning <- error;
|
||||
|
||||
// LocalTime from Source 2
|
||||
// function LocalTime()
|
||||
// {
|
||||
// local date = ::date();
|
||||
// return {
|
||||
// Hours = date.hour,
|
||||
// Minutes = date.min,
|
||||
// Seconds = date.sec
|
||||
// }
|
||||
// }
|
||||
|
||||
function clamp(val,min,max)
|
||||
{
|
||||
if ( max < min )
|
||||
@@ -1621,15 +1614,9 @@ bool SquirrelVM::Init()
|
||||
return val;
|
||||
}
|
||||
|
||||
function max(a,b)
|
||||
{
|
||||
return a > b ? a : b;
|
||||
}
|
||||
function max(a,b) return a > b ? a : b
|
||||
|
||||
function min(a,b)
|
||||
{
|
||||
return a < b ? a : b;
|
||||
}
|
||||
function min(a,b) return a < b ? a : b
|
||||
|
||||
function RemapVal(val, A, B, C, D)
|
||||
{
|
||||
@@ -1643,10 +1630,36 @@ bool SquirrelVM::Init()
|
||||
if ( A == B )
|
||||
return val >= B ? D : C;
|
||||
local cVal = (val - A) / (B - A);
|
||||
cVal = ::clamp( cVal, 0.0, 1.0 );
|
||||
cVal = (cVal < 0.0) ? 0.0 : (1.0 < cVal) ? 1.0 : cVal;
|
||||
return C + (D - C) * cVal;
|
||||
}
|
||||
|
||||
function Approach( target, value, speed )
|
||||
{
|
||||
local delta = target - value
|
||||
|
||||
if( delta > speed )
|
||||
value += speed
|
||||
else if( delta < (-speed) )
|
||||
value -= speed
|
||||
else
|
||||
value = target
|
||||
|
||||
return value
|
||||
}
|
||||
|
||||
function AngleDistance( next, cur )
|
||||
{
|
||||
local delta = next - cur
|
||||
|
||||
if ( delta < (-180.0) )
|
||||
delta += 360.0
|
||||
else if ( delta > 180.0 )
|
||||
delta -= 360.0
|
||||
|
||||
return delta
|
||||
}
|
||||
|
||||
function printl( text )
|
||||
{
|
||||
return ::print(text + "\n");
|
||||
@@ -2736,6 +2749,35 @@ bool SquirrelVM::ClearValue(HSCRIPT hScope, const char* pszKey)
|
||||
sq_pop(vm_, 1);
|
||||
return true;
|
||||
}
|
||||
/*
|
||||
void SquirrelVM::CreateArray(ScriptVariant_t &arr, int size)
|
||||
{
|
||||
SquirrelSafeCheck safeCheck(vm_);
|
||||
|
||||
HSQOBJECT *obj = new HSQOBJECT;
|
||||
sq_resetobject(obj);
|
||||
|
||||
sq_newarray(vm_,size);
|
||||
sq_getstackobj(vm_, -1, obj);
|
||||
sq_addref(vm_, obj);
|
||||
sq_pop(vm_, 1);
|
||||
|
||||
arr = (HSCRIPT)obj;
|
||||
}
|
||||
*/
|
||||
bool SquirrelVM::ArrayAppend(HSCRIPT hArray, const ScriptVariant_t &val)
|
||||
{
|
||||
SquirrelSafeCheck safeCheck(vm_);
|
||||
|
||||
HSQOBJECT *arr = (HSQOBJECT*)hArray;
|
||||
|
||||
sq_pushobject(vm_, *arr);
|
||||
PushVariant(vm_, val);
|
||||
bool ret = sq_arrayappend(vm_, -2) == SQ_OK;
|
||||
sq_pop(vm_, 1);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
enum ClassType
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user