protected virtual void SaveRestoreVerbs(int a, int b, int c)
{
var subOp = ReadByte();
if (Game.Version == 8)
{
subOp = (byte)((subOp - 141) + 0xB4);
}
switch (subOp)
{
case 141: // SO_SAVE_VERBS
while (a <= b)
{
var slot = GetVerbSlot(a, 0);
if (slot != 0 && Verbs[slot].SaveId == 0)
{
Verbs[slot].SaveId = (ushort)c;
DrawVerb(slot, 0);
VerbMouseOver(0);
}
a++;
}
break;
case 142: // SO_RESTORE_VERBS
while (a <= b)
{
var slot = GetVerbSlot(a, c);
if (slot != 0)
{
var slot2 = GetVerbSlot(a, 0);
if (slot2 != 0)
KillVerb(slot2);
slot = GetVerbSlot(a, c);
Verbs[slot].SaveId = 0;
DrawVerb(slot, 0);
VerbMouseOver(0);
}
a++;
}
break;
case 143: // SO_DELETE_VERBS
while (a <= b)
{
var slot = GetVerbSlot(a, c);
if (slot != 0)
KillVerb(slot);
a++;
}
break;
default:
throw new NotSupportedException("SaveRestoreVerbs: default case");
}
}
}