public ItemSelectState(ZeldaGame game)
 {
     this.storage = new ItemSelectStateStorage();
     this.game    = game;
     game.spriteSheets.TryGetValue("HUD", out inventorySpriteSheet);
     HudFactory       = game.hudSpriteFactory;
     top              = new UniversalSprite(game, inventorySpriteSheet, storage.topRectangle, Color.White, SpriteEffects.None, new Vector2(1, 1), storage.fpsLimiter, itemDepth);
     mid              = new UniversalSprite(game, inventorySpriteSheet, storage.midRectangle, Color.White, SpriteEffects.None, new Vector2(1, 1), storage.fpsLimiter, itemDepth);
     holdingMap       = new UniversalSprite(game, inventorySpriteSheet, storage.mapRectangle, Color.White, SpriteEffects.None, new Vector2(1, 1), storage.fpsLimiter, itemDepth);
     holdingCompass   = new UniversalSprite(game, inventorySpriteSheet, storage.compassRectangle, Color.White, SpriteEffects.None, new Vector2(1, 1), storage.fpsLimiter, itemDepth);
     pHUD             = game.currentRoom.pHUD;
     secweaponHolding = HudFactory.blankBox();
     secweaponOne     = HudFactory.blankBox();
     secweaponTwo     = HudFactory.blankBox();
     secweaponThree   = HudFactory.blankBox();
 }
        void IGameState.Update()
        {
            pHUD = game.currentRoom.pHUD;
            pHUD.Update();
            game.util.inSelect = true;
            if (game.util.selectSpeed < 0)
            {
                if (pHUD.hudPosition.Y > storage.hudTopPos)
                {
                    ItemScreenPositionalUpdate(game.util.selectSpeed);
                }
                else
                {
                    game.currentGameState = game.currentMainGameState; game.util.inSelect = false;
                }
            }
            else
            {
                if (pHUD.hudPosition.Y < storage.hudBotPos)
                {
                    ItemScreenPositionalUpdate(game.util.selectSpeed);
                }
            }
            game.controllerList[0].Update();
            game.controllerList[2].Update();
            secweaponHolding = HudFactory.secondaryWeaponHUD();
            switch (game.link.linkState.weaponSelected)
            {
            case LinkStateMachine.Weapon.bomb:
                secweaponOne = HudFactory.blankBox();
                secweaponTwo = HudFactory.staticBoomerang();
                if (game.util.hasBow)
                {
                    secweaponThree = HudFactory.staticBow();
                }
                else
                {
                    secweaponThree = HudFactory.blankBox();
                }
                break;

            case LinkStateMachine.Weapon.boomerang:
                secweaponOne = HudFactory.staticBomb();
                secweaponTwo = HudFactory.blankBox();
                if (game.util.hasBow)
                {
                    secweaponThree = HudFactory.staticBow();
                }
                else
                {
                    secweaponThree = HudFactory.blankBox();
                }
                break;

            case LinkStateMachine.Weapon.arrow:
                secweaponOne = HudFactory.staticBomb();
                secweaponTwo = HudFactory.staticBoomerang();
                if (game.util.hasBow)
                {
                    secweaponThree = HudFactory.blankBox();
                }
                break;

            default:
                break;
            }
        }