protected override Statement ResourceRoutines()
{
var subOp = ReadByte();
var exp = new MethodInvocation("ResourceRoutines");
var resId = Pop();
switch (subOp)
{
case 0x3C: // Dummy case
{
}
break;
case 0x3D: // SO_HEAP_LOAD_COSTUME Load costume to heap
{
exp = new MethodInvocation(new MemberAccess(exp, "LoadCostume")).AddArgument(resId);
}
break;
case 0x3E: // SO_HEAP_LOAD_OBJECT Load object to heap
{
exp = new MethodInvocation(new MemberAccess(exp, "LoadObjectToHeap")).AddArgument(resId);
}
break;
case 0x3F: // SO_HEAP_LOAD_ROOM Load room to heap
{
exp = new MethodInvocation(new MemberAccess(exp, "LoadRoom")).AddArgument(resId);
}
break;
case 0x40: // SO_HEAP_LOAD_SCRIPT Load script to heap
{
exp = new MethodInvocation(new MemberAccess(exp, "LoadScript")).AddArgument(resId);
}
break;
case 0x41: // SO_HEAP_LOAD_SOUND Load sound to heap
{
exp = new MethodInvocation(new MemberAccess(exp, "LoadSound")).AddArgument(resId);
}
break;
case 0x42: // SO_HEAP_LOCK_COSTUME Lock costume in heap
{
exp = new MethodInvocation(new MemberAccess(exp, "LockCostume")).AddArgument(resId);
}
break;
case 0x43: // SO_HEAP_LOCK_ROOM Lock room in heap
{
exp = new MethodInvocation(new MemberAccess(exp, "LockRoom")).AddArgument(resId);
}
break;
case 0x44: // SO_HEAP_LOCK_SCRIPT Lock script in heap
{
exp = new MethodInvocation(new MemberAccess(exp, "LockScript")).AddArgument(resId);
}
break;
case 0x45: // SO_HEAP_LOCK_SOUND Lock sound in heap
{
exp = new MethodInvocation(new MemberAccess(exp, "LockSound")).AddArgument(resId);
}
break;
case 0x46: // SO_HEAP_UNLOCK_COSTUME Unlock costume
{
exp = new MethodInvocation(new MemberAccess(exp, "UnlockCostume")).AddArgument(resId);
}
break;
case 0x47: // SO_HEAP_UNLOCK_ROOM Unlock room
{
exp = new MethodInvocation(new MemberAccess(exp, "UnlockRoom")).AddArgument(resId);
}
break;
case 0x48: // SO_HEAP_UNLOCK_SCRIPT Unlock script
{
exp = new MethodInvocation(new MemberAccess(exp, "UnlockScript")).AddArgument(resId);
}
break;
case 0x49: // SO_UNLOCKSound
{
exp = new MethodInvocation(new MemberAccess(exp, "UnlockSound")).AddArgument(resId);
}
break;
case 0x4A: // SO_HEAP_NUKE_COSTUME Remove costume from heap
{
exp = new MethodInvocation(new MemberAccess(exp, "NukeCostume")).AddArgument(resId);
}
break;
case 0x4B: // SO_HEAP_NUKE_ROOM Remove room from heap
{
exp = new MethodInvocation(new MemberAccess(exp, "NukeRoom")).AddArgument(resId);
break;
}
case 0x4C: // SO_HEAP_NUKE_SCRIPT Remove script from heap
{
exp = new MethodInvocation(new MemberAccess(exp, "NukeRoom")).AddArgument(resId);
break;
}
case 0x4D: // SO_HEAP_NUKE_SOUND Remove sound from heap
{
exp = new MethodInvocation(new MemberAccess(exp, "NukeSound")).AddArgument(resId);
break;
}
default:
throw new NotSupportedException(string.Format("ResourceRoutines: default case {0}", subOp));
}
return exp.ToStatement();
}