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

RoomOps() protected method

protected RoomOps ( ) : Statement
return Statement
        protected override Statement RoomOps()
        {
            var subOp = ReadByte();
            var exp = new MethodInvocation("RoomOps");
            switch (subOp)
            {
                case 0x52:               // SO_ROOM_PALETTE Set room palette
                    {
                        var d = Pop();
                        var c = Pop();
                        var b = Pop();
                        var a = Pop();
                        exp = new MethodInvocation(new MemberAccess(exp, "SetPalette")).AddArguments(d, a, b, c);
                    }
                    break;
                case 0x57:      // SO_ROOM_FADE Fade room
                    {
                        var a = Pop();
                        exp = new MethodInvocation(new MemberAccess(exp, "FadeRoom")).AddArguments(a);
                    }
                    break;
                case 0x58:      // SO_ROOM_RGB_INTENSITY Set room color intensity
                    {
                        var e = Pop();
                        var d = Pop();
                        var c = Pop();
                        var b = Pop();
                        var a = Pop();
                        exp = new MethodInvocation(new MemberAccess(exp, "DarkenPalette")).AddArguments(a, b, c, d, e);
                    }
                    break;
                case 0x59:      // SO_ROOM_TRANSFORM Transform room
                    {
                        var d = Pop();
                        var c = Pop();
                        var b = Pop();
                        var a = Pop();
                        exp = new MethodInvocation(new MemberAccess(exp, "RoomTransform")).AddArguments(a, b, c, d);
                    }
                    break;
                case 0x5C:      // SO_ROOM_NEW_PALETTE New palette
                    { 
                        var a = Pop();
                        exp = new MethodInvocation(new MemberAccess(exp, "SetCurrentPalette")).AddArguments(a);
                    }
                    break;
                case 0x5D:      // SO_ROOM_SAVE_GAME Save game
                    {
                        exp = new MethodInvocation(new MemberAccess(exp, "SaveGame"));
                    }
                    break;
                case 0x5E:      // SO_ROOM_LOAD_GAME Load game
                    {
                        var saveSound = Pop();
                        exp = new MethodInvocation(new MemberAccess(exp, "LoadGame")).AddArgument(saveSound);
                    }
                    break;
                case 0x5F:      // SO_ROOM_SATURATION Set saturation of room colors
                    {
                        var e = Pop();
                        var d = Pop();
                        var c = Pop();
                        var b = Pop();
                        var a = Pop();
                        exp = new MethodInvocation(new MemberAccess(exp, "DesaturatePalette")).AddArguments(a, b, c, d, e);
                    }
                    break;
                default:
                    throw new NotSupportedException(string.Format("RoomOps: default case {0:X2}", subOp));
            }
            return exp.ToStatement();
        }