NScumm.Dump.ScriptParser8.ResourceRoutines C# (CSharp) Method

ResourceRoutines() protected method

protected ResourceRoutines ( ) : Statement
return Statement
        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();
        }