protected virtual void DrawVerb(int verb, int mode)
{
if (verb == 0)
return;
var vs = Verbs[verb];
if (vs.SaveId == 0 && vs.CurMode != 0 && vs.VerbId != 0)
{
if (vs.Type == VerbType.Image)
{
DrawVerbBitmap(verb, vs.CurRect.Left, vs.CurRect.Top);
return;
}
RestoreVerbBG(verb);
_string[4].Charset = vs.CharsetNr;
_string[4].Position = new Point(vs.CurRect.Left, vs.CurRect.Top);
_string[4].Right = (short)(ScreenWidth - 1);
_string[4].Center = vs.Center;
if (vs.CurMode == 2)
_string[4].Color = vs.DimColor;
else if (mode != 0 && vs.HiColor != 0)
_string[4].Color = vs.HiColor;
else
_string[4].Color = vs.Color;
// FIXME For the future: Indy3 and under inv scrolling
/*
if (verb >= 31 && verb <= 36)
verb += _inventoryOffset;
*/
var msg = Verbs[verb].Text;
if (msg == null || msg.Length == 0)
return;
var tmp = _charset.Center;
DrawString(4, msg);
_charset.Center = tmp;
vs.CurRect.Right = _charset.Str.Right;
vs.CurRect.Bottom = _charset.Str.Bottom;
vs.OldRect = _charset.Str;
_charset.Str.Left = _charset.Str.Right;
}
else if (Game.GameId != GameId.FullThrottle)
{
RestoreVerbBG(verb);
}
}