public void RunScript(int scriptNum, bool freezeResistant, bool recursive, int[] data)
{
if (scriptNum == 0)
return;
if (!recursive)
StopScript(scriptNum);
WhereIsObject scriptType;
if (scriptNum < _resManager.NumGlobalScripts)
{
ResourceManager.LoadScript(scriptNum);
scriptType = WhereIsObject.Global;
}
else
{
scriptType = WhereIsObject.Local;
}
var slotIndex = GetScriptSlotIndex();
_slots[slotIndex] = new ScriptSlot
{
Number = (ushort)scriptNum,
Status = ScriptStatus.Running,
FreezeResistant = freezeResistant,
Recursive = recursive,
Where = scriptType
};
UpdateScriptData(slotIndex);
_slots[slotIndex].InitializeLocals(data);
RunScriptNested(slotIndex);
}