From 7525068fc04f976c7c3184cdfdbd1517c63c2373 Mon Sep 17 00:00:00 2001 From: samisalreadytaken <46823719+samisalreadytaken@users.noreply.github.com> Date: Mon, 12 Dec 2022 10:44:22 +0300 Subject: [PATCH] Prevent nesting in serialisation of Precache functions On every save on a load, these functions would keep reference to their old versions from the previous save which kept stacking up on each load-save --- sp/src/game/server/vscript_server.nut | 9 ++++----- sp/src/game/shared/mapbase/vscript_funcs_shared.cpp | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/sp/src/game/server/vscript_server.nut b/sp/src/game/server/vscript_server.nut index ad48da19..500c161c 100644 --- a/sp/src/game/server/vscript_server.nut +++ b/sp/src/game/server/vscript_server.nut @@ -72,16 +72,16 @@ function ImpulseScale( flTargetMass, flDesiredSpeed ) } __Documentation.RegisterHelp( "ImpulseScale", "float ImpulseScale(float, float)", "Returns an impulse scale required to push an object." ); -local PrecacheModel = PrecacheModel +local PrecacheModel = DoPrecacheModel function PrecacheModel( a, b = true ) { return PrecacheModel( a, b ) } -local PrecacheOther = PrecacheOther +local PrecacheOther = DoPrecacheOther function PrecacheOther( a, b = "" ) { - PrecacheOther( a, b ) + return PrecacheOther( a, b ) } function __ReplaceClosures( script, scope ) @@ -106,10 +106,9 @@ function __ReplaceClosures( script, scope ) } } -local __OutputsPattern = regexp("^On.*Output$"); - function ConnectOutputs( table ) { + local __OutputsPattern = regexp("^On.*Output$"); local nCharsToStrip = 6; foreach( key, val in table ) { diff --git a/sp/src/game/shared/mapbase/vscript_funcs_shared.cpp b/sp/src/game/shared/mapbase/vscript_funcs_shared.cpp index 4c6d4817..2db716e9 100644 --- a/sp/src/game/shared/mapbase/vscript_funcs_shared.cpp +++ b/sp/src/game/shared/mapbase/vscript_funcs_shared.cpp @@ -1049,10 +1049,10 @@ void RegisterSharedScriptFunctions() // // Precaching // - ScriptRegisterFunctionNamed( g_pScriptVM, ScriptPrecacheModel, "PrecacheModel", "Precaches a model for later usage." ); + ScriptRegisterFunctionNamed( g_pScriptVM, ScriptPrecacheModel, "DoPrecacheModel", SCRIPT_ALIAS( "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, ScriptPrecacheOther, "DoPrecacheOther", SCRIPT_ALIAS( "PrecacheOther", "Precaches an entity class for later usage." ) ); // // NPCs