public void Draw(Renderer sb, SpriteFont font, Vector2 position, Color color) { Vector2 fontSize = font.MeasureString("qQ"); int iconSize = (int)fontSize.Y; float fX = position.X; float fY = position.Y; foreach (PieceInfo piece in m_Pieces) { if (piece.m_Str != null) { Happiness.ShadowString(sb, font, piece.m_Str, new Vector2(fX, fY), color); fX += font.MeasureString(piece.m_Str).X; } if (piece.m_Icon != null) { sb.Draw(piece.m_Icon, new Rectangle((int)fX, (int)fY, iconSize, iconSize), Color.White); fX += iconSize; } } }
public void Draw(Renderer sb) { sb.Draw(Assets.GoldCoin, m_GoldCoinRect, Color.White); sb.DrawString(Assets.HelpFont, m_szCoins, m_vCoinsPosition, Color.Goldenrod); }
public void Draw(Renderer spriteBatch, Rectangle rDrawRect, Color DrawColor) { spriteBatch.Draw(m_Textures[m_iCurrentTexture], rDrawRect, DrawColor); }
void DrawArrow(Renderer sb) { sb.Draw(Assets.Arrow, m_vArrowPosition, null, null, m_vArrowOrigin, m_fArrowRotation, m_vArrowScale, Color.White, SpriteEffects.None, 0); }
void DrawClue(Renderer sb, int x, int y, Clue c, bool bHintClue) { Rectangle[] rects = new Rectangle[3]; rects[0] = new Rectangle(x, y, m_IconSize, m_IconSize); rects[1] = new Rectangle(x, y + m_IconSize, m_IconSize, m_IconSize); rects[2] = new Rectangle(x, y + (m_IconSize * 2), m_IconSize, m_IconSize); Rectangle bounds = new Rectangle(x, y, m_IconSize, m_IconSize * 3); int[] iIcons = new int[3]; int[] iRows = c.GetRows(); int iNumIcons = c.GetIcons(GameScene.Puzzle, iIcons); // Draw the frame sb.Draw(Assets.TransGray, bounds, Color.White); sb.Draw(Assets.GoldBarVertical, new Rectangle(x - 3, y - 3, 3, bounds.Height + 6), Color.White); sb.Draw(Assets.GoldBarHorizontal, new Rectangle(x - 3, y - 3, bounds.Width + 6, 3), Color.White); sb.Draw(Assets.GoldBarVertical, new Rectangle(bounds.Right, y - 3, 3, bounds.Height + 6), Color.White); sb.Draw(Assets.GoldBarHorizontal, new Rectangle(x - 3, bounds.Bottom, bounds.Width + 6, 3), Color.White); // Draw the icons for (int j = 0; j < iNumIcons; j++) { sb.Draw(GameScene.GetIcon(iRows[j], iIcons[j]), rects[j], Color.White); if (bHintClue) { Assets.HintSprite.Draw(sb, rects[j], Color.White); } } // Draw the operational overlay Rectangle[] overlayRects = new Rectangle[2]; overlayRects[0] = new Rectangle(x, y + (m_IconSize / 2), m_IconSize, m_IconSize); overlayRects[1] = new Rectangle(x, y + (m_IconSize / 2) + m_IconSize, m_IconSize, m_IconSize); switch (c.m_VerticalType) { case eVerticalType.Two: case eVerticalType.Three: break; case eVerticalType.EitherOr: sb.Draw(Assets.EitherOrOverlay, overlayRects[1], Color.White); break; case eVerticalType.TwoNot: sb.Draw(Assets.NotOverlay, overlayRects[0], Color.White); break; case eVerticalType.ThreeTopNot: sb.Draw(Assets.NotOverlay, rects[0], Color.White); break; case eVerticalType.ThreeMidNot: sb.Draw(Assets.NotOverlay, rects[1], Color.White); break; case eVerticalType.ThreeBotNot: sb.Draw(Assets.NotOverlay, rects[2], Color.White); break; } }
void DrawClue(Renderer sb, int x, int y, Clue c, bool bHintClue) { Rectangle[] rects = new Rectangle[3]; rects[0] = new Rectangle(x, y, m_IconSize, m_IconSize); rects[1] = new Rectangle(x + m_IconSize, y, m_IconSize, m_IconSize); rects[2] = new Rectangle(x + (m_IconSize * 2), y, m_IconSize, m_IconSize); Rectangle bounds = new Rectangle(x, y, m_IconSize * 3, m_IconSize); int[] iIcons = new int[3]; int[] iRows = c.GetRows(); int iNumIcons = c.GetIcons(GameScene.Puzzle, iIcons); // Draw the frame //sb.Draw(m_Game.TransGrey, bounds, Color.White); sb.Draw(Assets.GoldBarHorizontal, new Rectangle(x - 3, y - 3, bounds.Width + 6, 3), Color.White); sb.Draw(Assets.GoldBarHorizontal, new Rectangle(x - 3, bounds.Bottom, bounds.Width + 6, 3), Color.White); sb.Draw(Assets.GoldBarVertical, new Rectangle(x - 3, y - 3, 3, bounds.Height + 6), Color.White); sb.Draw(Assets.GoldBarVertical, new Rectangle(bounds.Right, y - 3, 3, bounds.Height + 6), Color.White); // Draw the icons if (c.m_HorizontalType == eHorizontalType.LeftOf || c.m_HorizontalType == eHorizontalType.NotLeftOf) { sb.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), rects[0], Color.White); sb.Draw(Assets.LeftOfIcon, rects[1], Color.White); sb.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), rects[2], Color.White); if (bHintClue) { Assets.HintSprite.Draw(sb, rects[0], Color.White); Assets.HintSprite.Draw(sb, rects[2], Color.White); } } else { for (int j = 0; j < iNumIcons; j++) { sb.Draw(GameScene.GetIcon(iRows[j], iIcons[j]), rects[j], Color.White); if (bHintClue) { Assets.HintSprite.Draw(sb, rects[j], Color.White); } } } // Draw the operational overlay switch (c.m_HorizontalType) { case eHorizontalType.NextTo: case eHorizontalType.LeftOf: break; case eHorizontalType.NotLeftOf: case eHorizontalType.NotNextTo: sb.Draw(Assets.NotOverlay, rects[1], Color.White); break; case eHorizontalType.Span: sb.Draw(Assets.SpanOverlay, bounds, Color.White); break; case eHorizontalType.SpanNotLeft: sb.Draw(Assets.SpanOverlay, bounds, Color.White); sb.Draw(Assets.NotOverlay, rects[0], Color.White); break; case eHorizontalType.SpanNotMid: sb.Draw(Assets.SpanOverlay, bounds, Color.White); sb.Draw(Assets.NotOverlay, rects[1], Color.White); break; case eHorizontalType.SpanNotRight: sb.Draw(Assets.SpanOverlay, bounds, Color.White); sb.Draw(Assets.NotOverlay, rects[2], Color.White); break; } }
void DrawClueDescription_Horizontal(Renderer spriteBatch, Clue clue) { int iX = m_Rect.Left; int iY = (m_Rect.Top + (m_Rect.Height >> 1)) - (m_iClueIconSize >> 1); int[] iIcons = new int[3]; int[] iRows = clue.GetRows(); clue.GetIcons(GameScene.Puzzle, iIcons); string szDesc; switch (clue.m_HorizontalType) { case eHorizontalType.NextTo: spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "is next to"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); break; case eHorizontalType.NotNextTo: spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "is not next to"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); break; case eHorizontalType.LeftOf: spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "is left of"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); break; case eHorizontalType.NotLeftOf: spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "is not left of"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); break; case eHorizontalType.Span: spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "has"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "next to it on one side, and"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[2], iIcons[2]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "next to it on the other"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); break; case eHorizontalType.SpanNotLeft: spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "has"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[2], iIcons[2]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "next to it on one side, and not"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "next to it on the other"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); break; case eHorizontalType.SpanNotMid: spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "and"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[2], iIcons[2]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "have one column between them without"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); break; case eHorizontalType.SpanNotRight: spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "has"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "on one side, and not"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[2], iIcons[2]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "on the other"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); break; } }
void DrawClueDescription_Vertical(Renderer spriteBatch, Clue clue) { int iX = m_Rect.Left; int iY = (m_Rect.Top + (m_Rect.Height >> 1)) - (m_iClueIconSize >> 1); int[] iIcons = new int[3]; int[] iRows = clue.GetRows(); clue.GetIcons(GameScene.Puzzle, iIcons); string szDesc; switch (clue.m_VerticalType) { case eVerticalType.Two: spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "is in the same column as"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); break; case eVerticalType.Three: spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "is in the same column as"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "and"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[2], iIcons[2]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); break; case eVerticalType.EitherOr: spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "is either in the column with"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "or the column with"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[2], iIcons[2]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); break; case eVerticalType.TwoNot: spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "is not in the same column as"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); break; case eVerticalType.ThreeTopNot: spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "and"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[2], iIcons[2]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "are in the same column but"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "is not"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); break; case eVerticalType.ThreeMidNot: spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "and"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[2], iIcons[2]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "are in the same column but"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "is not"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); break; case eVerticalType.ThreeBotNot: spriteBatch.Draw(GameScene.GetIcon(iRows[0], iIcons[0]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "and"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[1], iIcons[1]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "are in the same column but"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); iX += (int)Assets.DialogFont.MeasureString(szDesc).X + 6; spriteBatch.Draw(GameScene.GetIcon(iRows[2], iIcons[2]), new Rectangle(iX, iY, m_iClueIconSize, m_iClueIconSize), Color.White); iX += m_iClueIconSize + 6; szDesc = "is not"; spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX + 2, iY + 2), Color.Black); spriteBatch.DrawString(Assets.DialogFont, szDesc, new Vector2(iX, iY), Color.White); break; } }