protected virtual void PalManipulateInit(int resID, int start, int end, int time)
{
var string1 = _strings[resID];
var string2 = _strings[resID + 1];
var string3 = _strings[resID + 2];
if (string1 == null || string2 == null || string3 == null)
{
throw new InvalidOperationException(string.Format(
"palManipulateInit({0},{1},{2},{3}): Cannot obtain string resources {4}, {5} and {6}",
resID, start, end, time, resID, resID + 1, resID + 2));
}
_palManipStart = start;
_palManipEnd = end;
_palManipCounter = 0;
if (_palManipPalette == null)
_palManipPalette = new Palette();
if (_palManipIntermediatePal == null)
_palManipIntermediatePal = new Palette();
for (var i = start; i < end; ++i)
{
_palManipPalette.Colors[i] = Color.FromRgb(string1[i], string2[i], string3[i]);
var pal = _currentPalette.Colors[i];
_palManipIntermediatePal.Colors[i] = Color.FromRgb(pal.R << 8, pal.G << 8, pal.B << 8);
}
_palManipCounter = time;
}