NScumm.Scumm.ScummEngine.UpdateScriptData C# (CSharp) Метод

UpdateScriptData() приватный Метод

private UpdateScriptData ( ushort slotIndex ) : void
slotIndex ushort
Результат void
        void UpdateScriptData(ushort slotIndex)
        {
            var scriptNum = _slots[slotIndex].Number;
            if (_slots[slotIndex].Where == WhereIsObject.Inventory)
            {
                var data = (from o in _invData
                            where o.Number == scriptNum
                            select o.Script.Data).FirstOrDefault();
                _currentScriptData = data;
            }
            else if (_slots[slotIndex].Where == WhereIsObject.FLObject)
            {
                var data = (from o in _objs
                            where o.Number == scriptNum
                            let entry = (byte)_slots[slotIndex].InventoryEntry
                            where o.ScriptOffsets.ContainsKey(entry) || o.ScriptOffsets.ContainsKey(0xFF)
                            select o.Script.Data).FirstOrDefault();
                _currentScriptData = data;
            }
            else if (scriptNum == 10002)
            {
                _currentScriptData = roomData.EntryScript.Data;
            }
            else if (scriptNum == 10001)
            {
                _currentScriptData = roomData.ExitScript.Data;
            }
            else if (_slots[slotIndex].Where == WhereIsObject.Room)
            {
                var data = (from o in roomData.Objects
                            where o.Number == scriptNum
                            select o.Script.Data).First();
                _currentScriptData = data;
            }
            else if (scriptNum < _resManager.NumGlobalScripts)
            {
                var data = _resManager.GetScript(scriptNum);
                _currentScriptData = data;
            }
            else if ((scriptNum - _resManager.NumGlobalScripts) < roomData.LocalScripts.Length)
            {
                _currentScriptData = roomData.LocalScripts[scriptNum - _resManager.NumGlobalScripts].Data;
            }
            else
            {
                var data = (from o in roomData.Objects
                            where o.Number == scriptNum
                            let entry = (byte)_slots[slotIndex].InventoryEntry
                            where o.ScriptOffsets.ContainsKey(entry) || o.ScriptOffsets.ContainsKey(0xFF)
                            select o.Script.Data).FirstOrDefault();
                _currentScriptData = data;
            }
        }
ScummEngine