NScumm.Sword1.Menu.BuildMenu C# (CSharp) Method

BuildMenu() private method

private BuildMenu ( ) : void
return void
        private void BuildMenu()
        {
            for (var cnt = 0; cnt < _inMenu; cnt++)
                _objects[cnt] = null;

            _inMenu = 0;
            for (var pocketNo = 0; pocketNo < TOTAL_pockets; pocketNo++)
            {
                if (Logic.ScriptVars[(int)(ScriptVariableNames.POCKET_1 + pocketNo)] != 0)
                {
                    _menuList[_inMenu] = (uint)(pocketNo + 1);
                    _inMenu++;
                }
            }

            for (var menuSlot = 0; menuSlot < _inMenu; menuSlot++)
            {
                _objects[menuSlot] = new MenuIcon(MENU_TOP, (byte)menuSlot, (uint) _objectDefs[_menuList[menuSlot],MenuObject.bigIconRes], (uint) _objectDefs[_menuList[menuSlot], MenuObject.bigIconFrame], _screen);
                uint objHeld = Logic.ScriptVars[(int)ScriptVariableNames.OBJECT_HELD];

                // check highlighting
                if (Logic.ScriptVars[(int)ScriptVariableNames.MENU_LOOKING] != 0 || _subjectBarStatus == MenuState.MENU_OPEN)
                { // either we're in the chooser or we're doing a 'LOOK AT'
                    if ((objHeld == 0) || (objHeld == _menuList[menuSlot]))
                        _objects[menuSlot].SetSelect(true);
                }
                else if (Logic.ScriptVars[(int)ScriptVariableNames.SECOND_ITEM] != 0)
                { // clicked luggage onto 2nd icon - we need to color-highlight the 2 relevant icons & grey out the rest
                    if ((_menuList[menuSlot] == objHeld) || (_menuList[menuSlot] == Logic.ScriptVars[(int)ScriptVariableNames.SECOND_ITEM]))
                        _objects[menuSlot].SetSelect(true);
                }
                else
                { // this object is selected - ie. GREYED OUT
                    if (objHeld != _menuList[menuSlot])
                        _objects[menuSlot].SetSelect(true);
                }
            }
        }