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);
}
}
}