NScumm.Sword1.ResMan.ResOpen C# (CSharp) Метод

ResOpen() публичный Метод

public ResOpen ( uint id ) : void
id uint
Результат void
        public void ResOpen(uint id)
        {  // load resource ID into memory
            MemHandle memHandle = ResHandle(id);
            if (memHandle == null)
                return;
            if (memHandle.cond == MemMan.MEM_FREED)
            { // memory has been freed
                uint size = ResLength(id);
                _memMan.Alloc(memHandle, size);
                var clusFile = ResFile(id);
                Debug.Assert(clusFile != null);
                clusFile.Seek(ResOffset(id), SeekOrigin.Begin);
                clusFile.Read(memHandle.data, 0, (int)size);
            }
            else
                _memMan.SetCondition(memHandle, MemMan.MEM_DONT_FREE);

            memHandle.refCount++;
            if (memHandle.refCount > 20)
            {
                // TODO: debug(1, "%d references to id %d. Guess there's something wrong.", memHandle.refCount, id);
            }
        }

Usage Example

Пример #1
0
        public void Initialize()
        {
            _numObjs = 0;
            Logic.ScriptVars[(int)ScriptVariableNames.MOUSE_STATUS] = 0; // mouse off and unlocked
            _getOff        = 0;
            _inTopMenu     = false;
            _lastState     = 0;
            _mouseOverride = false;
            _currentPtrId  = _currentLuggageId = 0;

            for (byte cnt = 0; cnt < 17; cnt++)                      // force res manager to keep mouse
            {
                _resMan.ResOpen((uint)(SwordRes.MSE_POINTER + cnt)); // cursors in memory all the time
            }
            _system.GraphicsManager.IsCursorVisible = false;
            CreatePointer(0, 0);
        }
All Usage Examples Of NScumm.Sword1.ResMan::ResOpen