Пример #1
0
        public UIInputField(Rectangle rect, bool masked = false)
        {
            m_bEnabled          = true;
            m_dfCursorBlinkTime = 0;
            m_InputRect         = rect;
            m_bFocused          = false;
            m_bMaskedText       = masked;
            m_szInputText       = "";
            m_szMaskedText      = "";

            m_FocusFrame = new UIFrame(2, m_InputRect);
        }
Пример #2
0
        public void SetInstructions(Rectangle rect, string text, bool okButton)
        {
            m_Lines = Happiness.FormatLines(rect.Width - (m_iTextMarginLeftRight * 2), text, Assets.HelpFont);

            int buttonHeight = okButton ? m_iButtonHeight + m_iTextMarginTopBottom : 0;
            int autoHeight   = ((m_Lines.Length + 1) * m_iTextLineHeight) + buttonHeight;

            m_InstructionRect  = new Rectangle(rect.Left, rect.Top, rect.Width, rect.Height == 0 ? autoHeight : rect.Height);
            m_InstructionFrame = new UIFrame(1, m_InstructionRect);

            if (okButton)
            {
                m_OKButton = new UIButton(0, "OK", Assets.HelpFont, new Rectangle(m_InstructionRect.Left + (m_InstructionRect.Width >> 1) - (m_iButtonWidth >> 1), m_InstructionRect.Bottom - (m_iButtonHeight + m_iTextMarginTopBottom), m_iButtonWidth, m_iButtonHeight), Assets.ScrollBar);
            }
            else
            {
                m_OKButton = null;
            }
        }
Пример #3
0
        public SoundDialog(int screenWidth, int screenHeight, Happiness game)
        {
            int width  = 1200;
            int height = 700;

            int buttonWidth   = 120;
            int buttonHeight  = 32;
            int halfWidth     = buttonWidth / 2;
            int halfHeight    = buttonHeight / 2;
            int screenCenterX = screenWidth / 2;
            int screenCenterY = screenHeight / 2;

            m_Rect  = new Rectangle(screenCenterX - (width / 2), screenCenterY - (height / 2), width, height);
            m_Frame = new UIFrame(2, m_Rect);

            int buttonSpace = 25;
            int buttonLeft  = m_Rect.Left + 10;
            int buttonTop   = m_Rect.Top + 10;

            m_Buttons    = new UIButton[16];
            m_Buttons[0] = new UIButton(0, "MenuNavigate", Assets.HelpFont, new Rectangle(buttonLeft, buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[0].ClickSound = SoundManager.SEInst.MenuNavigate;
            m_Buttons[1] = new UIButton(1, "MenuAccept", Assets.HelpFont, new Rectangle(buttonLeft + (buttonWidth + buttonSpace), buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[1].ClickSound = SoundManager.SEInst.MenuAccept;
            m_Buttons[2] = new UIButton(2, "MenuCancel", Assets.HelpFont, new Rectangle(buttonLeft + ((buttonWidth + buttonSpace) * 2), buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[2].ClickSound = SoundManager.SEInst.MenuCancel;
            m_Buttons[3] = new UIButton(3, "GameLoad", Assets.HelpFont, new Rectangle(buttonLeft + ((buttonWidth + buttonSpace) * 3), buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[3].ClickSound = SoundManager.SEInst.GameLoad;
            m_Buttons[4] = new UIButton(4, "GameSave", Assets.HelpFont, new Rectangle(buttonLeft + ((buttonWidth + buttonSpace) * 4), buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[4].ClickSound = SoundManager.SEInst.GameSave;
            m_Buttons[5] = new UIButton(5, "GameUnhideClues", Assets.HelpFont, new Rectangle(buttonLeft + ((buttonWidth + buttonSpace) * 5), buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[5].ClickSound = SoundManager.SEInst.GameUnhideClues;
            m_Buttons[6] = new UIButton(6, "GameAction1", Assets.HelpFont, new Rectangle(buttonLeft + ((buttonWidth + buttonSpace) * 6), buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[6].ClickSound = SoundManager.SEInst.GameAction1;
            m_Buttons[7] = new UIButton(7, "GameAction2", Assets.HelpFont, new Rectangle(buttonLeft + ((buttonWidth + buttonSpace) * 7), buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[7].ClickSound = SoundManager.SEInst.GameAction2;

            buttonTop    += buttonHeight + buttonSpace;
            m_Buttons[8]  = new UIButton(8, "GameAction3", Assets.HelpFont, new Rectangle(buttonLeft, buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[8].ClickSound = SoundManager.SEInst.GameAction3;
            m_Buttons[9]  = new UIButton(9, "GameAction4", Assets.HelpFont, new Rectangle(buttonLeft + (buttonWidth + buttonSpace), buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[9].ClickSound = SoundManager.SEInst.GameAction4;
            m_Buttons[10] = new UIButton(10, "GameAction5", Assets.HelpFont, new Rectangle(buttonLeft + ((buttonWidth + buttonSpace) * 2), buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[10].ClickSound = SoundManager.SEInst.GameAction5;
            m_Buttons[11] = new UIButton(11, "GameAction6", Assets.HelpFont, new Rectangle(buttonLeft + ((buttonWidth + buttonSpace) * 3), buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[11].ClickSound = SoundManager.SEInst.GameAction6;
            m_Buttons[12] = new UIButton(12, "GamePuzzleFailed", Assets.HelpFont, new Rectangle(buttonLeft + ((buttonWidth + buttonSpace) * 4), buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[12].ClickSound = SoundManager.SEInst.GamePuzzleFailed;
            m_Buttons[13] = new UIButton(13, "GamePuzzleComplete", Assets.HelpFont, new Rectangle(buttonLeft + ((buttonWidth + buttonSpace) * 5), buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[13].ClickSound = SoundManager.SEInst.GamePuzzleComplete;
            m_Buttons[14] = new UIButton(14, "GameSliderMove", Assets.HelpFont, new Rectangle(buttonLeft + ((buttonWidth + buttonSpace) * 6), buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[14].ClickSound = SoundManager.SEInst.GameSliderMove;
            m_Buttons[15] = new UIButton(15, "Happiness", Assets.HelpFont, new Rectangle(buttonLeft + ((buttonWidth + buttonSpace) * 7), buttonTop, buttonWidth, buttonHeight), Assets.ScrollBar); m_Buttons[15].ClickSound = SoundManager.SEInst.Happiness;
        }
Пример #4
0
        public void Draw(SpriteBatch sb, int y)
        {
            float center = (m_fHeight * 0.5f);

            // Background
            sb.Draw(Assets.TransGray, new Rectangle(m_iLeft, y, m_iWidth, (int)m_fHeight), m_bSelected ? Color.White : Color.Gray);

            sb.Draw(Assets.GoldBarHorizontal, new Rectangle(m_iLeft, y, m_iWidth, 1), Color.Black);
            sb.Draw(Assets.GoldBarHorizontal, new Rectangle(m_iLeft, y + (int)(m_fHeight - 1), m_iWidth, 1), Color.Black);

            int frameLeft   = (int)(Constants.ProductDisplay_FrameLeft * Happiness.Game.ScreenWidth);
            int frameWidth  = m_iWidth - (frameLeft * 2);
            int frameHeight = (int)(m_fHeight / 1.5f);

            m_Frame = new UIFrame(3, new Rectangle(m_iLeft + frameLeft, y + (int)(center - (frameHeight >> 1)), frameWidth, frameHeight));
            m_Frame.Draw(sb);

            // Gold Icon
            sb.Draw(Assets.GoldCoin, new Rectangle(m_rIcon.Left, m_rIcon.Top + y, m_rIcon.Width, m_rIcon.Height), Color.White);

            m_Coins.PositionY = (int)((y + center) - m_fCoinsHeight);
            m_Coins.Draw(sb);

            m_CoinsLabel.PositionX = m_Coins.PositionX + m_Coins.Width + 5;
            m_CoinsLabel.PositionY = (m_Coins.PositionY + m_Coins.Height) - (m_CoinsLabel.Height + 2);
            m_CoinsLabel.Draw(sb);

            m_VIP.PositionY = (int)((y + center) - m_fCoinsHeight);
            m_VIP.Draw(sb);

            m_VIPLabel.PositionX = m_VIP.PositionX + m_VIP.Width + 5;
            m_VIPLabel.PositionY = (m_VIP.PositionY + m_VIP.Height) - (m_VIPLabel.Height + 2);
            m_VIPLabel.Draw(sb);

            int buttonHeight = (int)(Constants.ProductDisplay_ButtonHeight * Happiness.Game.ScreenHeight);

            m_Purchase.SetY((y + (int)center) - (buttonHeight >> 1));
            m_Purchase.Draw(sb);
        }
Пример #5
0
        public VIPDialog()
        {
            Happiness game         = Happiness.Game;
            int       screenWidth  = game.ScreenWidth;
            int       screenHeight = game.ScreenHeight;

            int width  = (int)(Constants.VIPDialog_Width * screenWidth);
            int height = (int)(Constants.VIPDialog_Height * screenHeight);

            int centerDialogX = (screenWidth >> 1);
            int left          = centerDialogX - (width >> 1);
            int centerY       = (screenHeight >> 1);
            int top           = centerY - (height >> 1);

            m_Rect = new Rectangle(left, top, width, height);


            // Level/Exp display
            int expBarWidth     = (int)(Constants.VIPDialog_ExpBarWidth * game.ScreenWidth);
            int expBarHeight    = (int)(Constants.VIPDialog_ExpBarHeight * game.ScreenHeight);
            int marginTopBottom = (int)(Constants.VIPDialog_MarginTopBottom * game.ScreenWidth);


            int expBarLeft = centerDialogX - (expBarWidth >> 1);

            m_LevelLabel = new UILabel("Level: ", expBarLeft, marginTopBottom, Color.Goldenrod, Assets.DialogFont, UILabel.XMode.Left);
            m_Level      = new UILabel(game.TheGameInfo.VipData.Level.ToString(), expBarLeft + m_LevelLabel.Width, top + marginTopBottom, Color.White, Assets.MenuFont, UILabel.XMode.Left);
            int xpBarTop = top + marginTopBottom + m_Level.Height;

            m_LevelLabel.PositionY = (xpBarTop - m_LevelLabel.Height) - 6;
            m_ExpBar = new UIProgressBar(new Rectangle(expBarLeft, xpBarTop, expBarWidth, expBarHeight));
            m_ExpBar.ProgressColor = Color.DarkBlue;
            m_ExpBar.Progress      = (game.TheGameInfo.VipData.Level >= 10) ? 1.0f : (float)game.TheGameInfo.VipData.Points / (float)VIPLevels.Levels[game.TheGameInfo.VipData.Level];


            string expStr = (game.TheGameInfo.VipData.Level >= 10) ? game.TheGameInfo.VipData.Points.ToString("n0") : string.Format("{0} / {1}", game.TheGameInfo.VipData.Points.ToString("n0"), VIPLevels.Levels[game.TheGameInfo.VipData.Level].ToString("n0"));

            m_ExpText = new UILabel(expStr, centerDialogX, xpBarTop + expBarHeight, Color.WhiteSmoke, Assets.HelpFont, UILabel.XMode.Center);

            int buttonWidth      = (int)(Constants.BuyCreditsDialog_ButtonWidth * screenWidth);
            int buttonHeight     = (int)(Constants.BuyCreditsDialog_ButtonHeight * screenHeight);
            int centerButtonLeft = centerDialogX - (buttonWidth >> 1);
            int closeTop         = (top + height) - (buttonHeight + marginTopBottom);

            m_Close = new UIButton(0, "Close", Assets.DialogFont, new Rectangle(centerButtonLeft, closeTop, buttonWidth, buttonHeight), Assets.ScrollBar);

            int levelsAreaTop    = xpBarTop + expBarHeight + m_ExpText.Height + marginTopBottom;
            int levelsAreaWidth  = (int)(Constants.VIPDialog_LevelsAreaWidth * screenWidth);
            int levelsAreaHeight = (closeTop - marginTopBottom) - levelsAreaTop;

            m_LevelsAreaFrame = new UIFrame(5, new Rectangle(centerDialogX - (levelsAreaWidth >> 1), levelsAreaTop, levelsAreaWidth, levelsAreaHeight));

            int lrButtonSpace  = (int)(Constants.VIPDialog_LRButtonSpace * screenWidth);
            int lrButtonWidth  = (int)(Constants.VIPDialog_LRButtonWidth * screenWidth);
            int lrButtonHeight = (int)(Constants.VIPDialog_LRButtonHeight * screenHeight);
            int lrButtonTop    = (levelsAreaTop + (levelsAreaHeight >> 1)) - (lrButtonHeight >> 1);

            m_BtnLeft  = new UIButton(0, "<", Assets.MenuFont, new Rectangle(m_LevelsAreaFrame.Rect.Left - (lrButtonWidth + lrButtonSpace), lrButtonTop, lrButtonWidth, lrButtonHeight), Assets.ScrollBar);
            m_BtnRight = new UIButton(1, ">", Assets.MenuFont, new Rectangle(m_LevelsAreaFrame.Rect.Right + lrButtonSpace, lrButtonTop, lrButtonWidth, lrButtonHeight), Assets.ScrollBar);

            int lineSpace = (int)(Constants.VIPDialog_LineSpace * screenHeight);

            int rowY = levelsAreaTop + (lineSpace * 2);

            m_DetailsLevelLabel     = new UILabel("VIP Level: 0", m_LevelsAreaFrame.Rect.Left + lrButtonSpace, rowY, Color.White, Assets.HelpFont, UILabel.XMode.Left);
            m_DetailsRequiredPoints = new UILabel("Points Required: 50000", m_LevelsAreaFrame.Rect.Right - lrButtonSpace, rowY, Color.White, Assets.HelpFont, UILabel.XMode.Right);

            rowY        += m_DetailsLevelLabel.Height + (lineSpace * 3);
            m_HintsLabel = new UILabel("Hints (per puzzle): ", centerDialogX, rowY, Color.Goldenrod, Assets.DialogFont, UILabel.XMode.Right);
            m_Hints      = new UILabel("0", centerDialogX, rowY, Color.Yellow, Assets.DialogFont, UILabel.XMode.Left);

            rowY            += m_HintsLabel.Height + lineSpace;
            m_MegaHintsLabel = new UILabel("Mega Hints (per puzzle): ", centerDialogX, rowY, Color.Goldenrod, Assets.DialogFont, UILabel.XMode.Right);
            m_MegaHints      = new UILabel("0", centerDialogX, rowY, Color.Yellow, Assets.DialogFont, UILabel.XMode.Left);

            rowY           += m_HintsLabel.Height + lineSpace;
            m_UndoSizeLabel = new UILabel("Undo Size: ", centerDialogX, rowY, Color.Goldenrod, Assets.DialogFont, UILabel.XMode.Right);
            m_UndoSize      = new UILabel("0", centerDialogX, rowY, Color.Yellow, Assets.DialogFont, UILabel.XMode.Left);

            rowY           += m_HintsLabel.Height + lineSpace;
            m_ExpBonusLabel = new UILabel("Experience Bonus: ", centerDialogX, rowY, Color.Goldenrod, Assets.DialogFont, UILabel.XMode.Right);
            m_ExpBonus      = new UILabel("1.5", centerDialogX, rowY, Color.Yellow, Assets.DialogFont, UILabel.XMode.Left);

            rowY          += m_HintsLabel.Height + lineSpace;
            m_DisableTimer = new UILabel("Can Disable Timer", centerDialogX, rowY, Color.Yellow, Assets.DialogFont, UILabel.XMode.Center);

            rowY += m_HintsLabel.Height + lineSpace;
            m_DisableExpBonus = new UILabel("Can Disable VIP Exp Bonus", centerDialogX, rowY, Color.Yellow, Assets.DialogFont, UILabel.XMode.Center);

            rowY           += m_HintsLabel.Height + lineSpace;
            m_ErrorDetector = new UILabel("Can enable the Error Detector", centerDialogX, rowY, Color.Yellow, Assets.DialogFont, UILabel.XMode.Center);

            rowY            += m_HintsLabel.Height + lineSpace;
            m_ErrorDetector2 = new UILabel("Can enable the Super Error Detector", centerDialogX, rowY, Color.Yellow, Assets.DialogFont, UILabel.XMode.Center);

            SetDetailLevel(game.TheGameInfo.VipData.Level);
        }
Пример #6
0
        public FloorSelectDialog(int tower, int screenWidth, int screenHeight, Happiness game)
        {
            m_Game   = game;
            m_iTower = tower;

            int iCenterX = screenWidth >> 1;
            int iCenterY = screenHeight >> 1;

            m_FloorScrollPosition = 0;
            m_iSelectedFloor      = -1;

            // Frame rect
            int width  = (int)(Constants.FloorSelectDialog_Width * screenWidth);
            int height = (int)(Constants.FloorSelectDialog_Height * screenHeight);

            m_Rect = new Rectangle(iCenterX - (width >> 1), iCenterY - (height >> 1), width, height);

            // Title
            int    iTopMargin = (int)(Constants.FloorSelectDialog_MarginTopBottom * screenHeight);
            string title      = string.Format("{0} x {0}", tower + 3);

            m_Title = new UILabel(title, iCenterX, m_Rect.Top + iTopMargin, Color.Goldenrod, Assets.MenuFont, UILabel.XMode.Center);

            // Buttons
            m_iLeftRightMargin = (int)(Constants.FloorSelectDialog_MarginLeftRight * screenWidth);
            int navButtonTop    = m_Rect.Top + iTopMargin;
            int navButtonWidth  = (int)(Constants.FloorSelectDialog_NavButtonWidth * screenWidth);
            int navButtonHeight = (int)(Constants.FloorSelectDialog_NavButtonHeight * screenHeight);
            int lbButtonWidth   = (int)(Constants.FloorSelectDialog_LBButtonWidth * screenWidth);
            int lbButtonHeight  = (int)(Constants.FloorSelectDialog_LBButtonHeight * screenHeight);

            m_Buttons               = new UIButton[3];
            m_Buttons[0]            = new UIButton(0, "<", Assets.MenuFont, new Rectangle(m_Rect.Left + m_iLeftRightMargin, navButtonTop, navButtonWidth, navButtonHeight), Assets.ScrollBar);
            m_Buttons[1]            = new UIButton(1, ">", Assets.MenuFont, new Rectangle(m_Rect.Right - (m_iLeftRightMargin + navButtonWidth), navButtonTop, navButtonWidth, navButtonHeight), Assets.ScrollBar);
            m_Buttons[2]            = new UIButton(2, "Leaderboard", Assets.DialogFont, new Rectangle(m_Rect.Right - (m_iLeftRightMargin + lbButtonWidth), m_Rect.Bottom - (iTopMargin + lbButtonHeight), lbButtonWidth, lbButtonHeight), Assets.ScrollBar);
            m_Buttons[1].Enabled    = false;
            m_Buttons[2].Enabled    = false;
            m_Buttons[0].ClickSound = SoundManager.SEInst.MenuCancel;

            // Floors
            int floorScrollWidth  = (int)(Constants.FloorSelectDialog_FloorScrollWidth * screenWidth);
            int floorScrollTop    = m_Title.PositionY + m_Title.Height + (iTopMargin >> 1);
            int floorScrollBottom = m_Rect.Bottom - iTopMargin;
            int floorScrollHeight = floorScrollBottom - floorScrollTop;
            int waitIconSize      = (int)(Constants.FloorSelectDialog_WaitIconSize * screenHeight);
            int halfWaitIconSize  = waitIconSize >> 1;

            m_FloorScrollRect    = new Rectangle(iCenterX - (floorScrollWidth >> 1), floorScrollTop, floorScrollWidth, floorScrollHeight);
            m_FloorWaitRectangle = new Rectangle(iCenterX - halfWaitIconSize, iCenterY - halfWaitIconSize, waitIconSize, waitIconSize);

            m_FloorDataFetchText = new UILabel("Fetching Data...", iCenterX, m_FloorWaitRectangle.Bottom, Color.White, Assets.DialogFont, UILabel.XMode.Center);

            m_ScrollFrame = new UIFrame(5, m_FloorScrollRect);

            m_iFloorSelectTutorialWidth = (int)(Constants.FloorSelectDialog_FloorSelectTutorialWidth * screenWidth);
            int floorPlayTutorialWidth = (int)(Constants.FloorSelectDialog_PlayTutorialWidth * screenWidth);

            m_Game.Tutorial.SetPieceData(TutorialSystem.TutorialPiece.FloorPlay, new Vector2(m_Buttons[1].Rect.Left, m_Buttons[1].Rect.Bottom), (float)-Math.PI / 4,
                                         new Rectangle(m_FloorScrollRect.Right + m_iLeftRightMargin, m_Buttons[1].Rect.Bottom + m_Game.Tutorial.ArrowWidth, floorPlayTutorialWidth, 0), "Press this button to play the selected floor.", TutorialSystem.TutorialPiece.None, m_Buttons[1].Rect);

            SetupFloorData(game.TheGameInfo.TowerData[m_iTower]);
            m_bFloorDataRetrieved = true;
        }
Пример #7
0
        public BuyCoinsModal()
        {
            m_Products = new List <ProductDisplay>();

            Happiness game         = Happiness.Game;
            int       screenWidth  = game.ScreenWidth;
            int       screenHeight = game.ScreenHeight;

            int centerDialogX = (screenWidth >> 1);
            int centerY       = (screenHeight >> 1);

            int width  = (int)(Constants.BuyCreditsDialog_Width * screenWidth);
            int height = (int)(Constants.BuyCreditsDialog_Height * screenHeight);

            int left = centerDialogX - (width >> 1);
            int top  = centerY - (height >> 1);

            m_Rect = new Rectangle(left, top, width, height);

            int waitIconSize = (int)(Constants.BuyCreditsDialog_WaitIconSize * game.ScreenWidth);

            m_WaitRect = new Rectangle((screenWidth / 2) - (waitIconSize / 2), (screenHeight / 2) - (waitIconSize / 2), waitIconSize, waitIconSize);

            int bottom           = top + height;
            int marginTopBottom  = (int)(Constants.BuyCreditsDialog_TopBottomMargin * screenHeight);
            int buttonWidth      = (int)(Constants.BuyCreditsDialog_ButtonWidth * screenWidth);
            int buttonHeight     = (int)(Constants.BuyCreditsDialog_ButtonHeight * screenHeight);
            int centerButtonLeft = centerDialogX - (buttonWidth >> 1);

            m_CancelButton            = new UIButton(0, "Cancel", Assets.HelpFont, new Rectangle(centerButtonLeft, ((bottom - marginTopBottom) - buttonHeight), buttonWidth, buttonHeight), Assets.ScrollBar);
            m_CancelButton.ClickSound = SoundManager.SEInst.MenuCancel;

            m_PurchaseButton = new UIButton(0, "Purchase", Assets.HelpFont, new Rectangle(centerButtonLeft, m_CancelButton.Rect.Top - (marginTopBottom * 2) - buttonHeight, buttonWidth, buttonHeight), Assets.ScrollBar);


            int scrollWidth  = (int)(Constants.BuyCreditsDialog_ProductWidth * screenWidth);
            int scrollTop    = top + marginTopBottom;
            int scrollHeight = (m_CancelButton.Rect.Top - marginTopBottom) - scrollTop;

            m_ScrollPosition = 0;
            m_ScrollRect     = new Rectangle(centerDialogX - (scrollWidth >> 1), scrollTop, scrollWidth, scrollHeight);
            m_ScrollFrame    = new UIFrame(5, m_ScrollRect);

            m_iConfirmProductY = top + (marginTopBottom * 4);
            m_ConfirmText      = new UILabel("Do you want to purchase this product?", centerDialogX, top + (marginTopBottom * 2), Color.Goldenrod, Assets.MenuFont, UILabel.XMode.Center);
            m_ThankYouText     = new UILabel("Thank you for your purchase!", centerDialogX, top + (marginTopBottom * 2), Color.Goldenrod, Assets.MenuFont, UILabel.XMode.Center);

            waitIconSize     >>= 1;
            m_WaitRectPurchase = new Rectangle((screenWidth / 2) - (waitIconSize >> 1), top + marginTopBottom + (waitIconSize >> 1), waitIconSize, waitIconSize);

            m_PurchaseWaitMessages = new UILabel[4];
            int textY = m_WaitRectPurchase.Bottom + (marginTopBottom * 2);

            m_PurchaseWaitMessages[0] = new UILabel("Waiting for purchase completion...", centerDialogX, textY, Color.Goldenrod, Assets.DialogFont, UILabel.XMode.Center);

            textY += (int)m_PurchaseWaitMessages[0].Height + marginTopBottom;
            m_PurchaseWaitMessages[1] = new UILabel("If you made a purchase and do not wish to wait,", centerDialogX, textY, Color.White, Assets.HelpFont, UILabel.XMode.Center);

            textY += (int)m_PurchaseWaitMessages[0].Height;
            m_PurchaseWaitMessages[2] = new UILabel("you can press cancel without interrupting your purchase.", centerDialogX, textY, Color.White, Assets.HelpFont, UILabel.XMode.Center);

            textY += (int)m_PurchaseWaitMessages[0].Height;
            m_PurchaseWaitMessages[3] = new UILabel("Your coins and VIP points will be awarded when the transaction finishes processing.", centerDialogX, textY, Color.White, Assets.HelpFont, UILabel.XMode.Center);

            m_iSelectedProduct = -1;
            FetchProducts();
        }