private GUIManager(Game game, ContentManager cont) { myMenus = new ArrayList(); myGame = game; myContentManager = cont; myGameStarted = false; myInventoryShowing = false; myFontManager = FontManager.getFontManager(cont); //Construct the initial main menu myCurrentMenu = new Menu(cont, "splash", new Rectangle(0, 0, 800, 600), null); myCurrentMenu.addCustomItem("pPlay", 165, 150, 150, 50, Color.White, Color.Black, Color.Brown); myCurrentMenu.addCustomItem("cControls", 165, 250, 150, 50, Color.White, Color.Black, Color.Brown); myCurrentMenu.addCustomItem("lLoad", 165, 350, 150, 50, Color.White, Color.Black, Color.Brown); myCurrentMenu.addCustomItem("cCredits", 450, 150, 150, 50, Color.White, Color.Black, Color.Brown); myCurrentMenu.addCustomItem("aAbout", 450, 250, 150, 50, Color.White, Color.Black, Color.Brown); myCurrentMenu.addCustomItem("qQuit", 450, 350, 150, 50, Color.White, Color.Black, Color.Brown); myMenus.Add(myCurrentMenu); //Construct the player GUI //this will not be in the menu list but in its own object //this is because the player GUI needs to be displayed simultaneously //with other in game menus myPlayerGUI = new Menu(cont, "playerGUI", new Rectangle(0, 0, 800, 600), null); myPlayerGUI.addItem(@"GUITiles\inventoryButton", 30, 500, 80, 75, Color.White, Color.Green); myPlayerGUI.addItem(@"GUITiles\questLogButton", 110, 500, 80, 75, Color.White, Color.Orange); myPlayerGUI.addItem(@"GUITiles\settingsButton", 190, 500, 80, 75, Color.White, Color.Red); myPlayerGUI.addItem(@"GUITiles\quitButton", 270, 500, 80, 75, Color.White, Color.Purple); //Construct controls screen myCurrentMenu = new Menu(cont, "ControlsMenuScreen", new Rectangle(0, 0, 800, 600), null); myCurrentMenu.addCustomItem("bBack", 700, 500, 150, 50, Color.White, Color.Black, Color.Brown); myMenus.Add(myCurrentMenu); //Construct about screen myCurrentMenu = new Menu(cont, "AboutMenuScreen", new Rectangle(0, 0, 800, 600), null); myCurrentMenu.addCustomItem("bBack", 700, 500, 150, 50, Color.White, Color.Black, Color.Brown); myMenus.Add(myCurrentMenu); //Construct controls screen myCurrentMenu = new Menu(cont, "StoryMenuScreen", new Rectangle(0, 0, 800, 600), null); myCurrentMenu.addCustomItem("bBack", 700, 500, 150, 50, Color.White, Color.Black, Color.Brown); myMenus.Add(myCurrentMenu); //Create in game pause menu. myCurrentMenu = new Menu(cont, "pauseScreen", new Rectangle(0, 0, 800, 600), null); myCurrentMenu.addCustomItem("aAbout", 350, 60, 150, 50, Color.White, Color.Black, Color.Brown); myCurrentMenu.addCustomItem("bBack", 350, 110, 150, 50, Color.White, Color.Black, Color.Brown); myCurrentMenu.addCustomItem("cControls", 350, 160, 150, 50, Color.White, Color.Black, Color.Brown); myCurrentMenu.addCustomItem("cCredits", 350, 210, 150, 50, Color.White, Color.Black, Color.Brown); myCurrentMenu.addCustomItem("lLoad", 350, 260, 150, 50, Color.White, Color.Black, Color.Brown); myCurrentMenu.addCustomItem("sSave", 350, 310, 150, 50, Color.White, Color.Black, Color.Brown); myCurrentMenu.addCustomItem("qQuit", 350, 460, 150, 50, Color.White, Color.Black, Color.Brown); myCurrentMenu.IsPauseMenu = true; myMenus.Add(myCurrentMenu); //set the current menu to the main menu which is index 0 myCurrentIndex = "splash"; myFloatingTextList = new ArrayList(); myInformationTextList = new ArrayList(); foreach (Menu aMenu in myMenus) { if (aMenu.Name == myCurrentIndex) { myCurrentMenu = aMenu; } } myQuestLogRectangle = new Rectangle(200, 100, 500, 400); myQuestLogTextAreaRectangle = new Rectangle(myQuestLogRectangle.X + (myQuestLogRectangle.Width / 2), myQuestLogRectangle.Y, 250, 400); //myQuestLogTextArea = new TextArea(cont, myQuestLogTextAreaRectangle, Color.White, Color.Black, "quest"); myQuestLogMenu = new QuestLogMenu(cont, @"GUITiles/questLogLayout", myQuestLogRectangle, null); myInventoryMenu = new InventoryMenu(cont, @"GUITiles/layout", new Rectangle(200, 100, 500, 350), "Player"); myShopMenu = new ShopMenu(game, cont, @"GUITiles/layout", new Rectangle(120, 100, 500, 350), "Shop"); }