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

CursorCommand() protected method

protected CursorCommand ( ) : Statement
return Statement
        protected override Statement CursorCommand()
        {
            var exp = new MethodInvocation("CursorCommand");

            var subOp = ReadByte();

            switch (subOp)
            {
                case 0xDC:              // SO_CURSOR_ON Turn cursor on
                    exp = new MethodInvocation(new MemberAccess(exp, "SetCursor")).AddArgument(true);
                    break;
                case 0xDD:              // SO_CURSOR_OFF Turn cursor off
                    exp = new MethodInvocation(new MemberAccess(exp, "SetCursor")).AddArgument(false);
                    break;
                case 0xDE:              // SO_CURSOR_SOFT_ON Turn soft cursor on
                    exp = new MethodInvocation(new MemberAccess(exp, "SetCursorSoft")).AddArgument(true);
                    break;
                case 0xDF:              // SO_CURSOR_SOFT_OFF Turn soft cursor off
                    exp = new MethodInvocation(new MemberAccess(exp, "SetCursorSoft")).AddArgument(false);
                    break;
                case 0xE0:              // SO_USERPUT_ON
                    exp = new MethodInvocation(new MemberAccess(exp, "SetUserInput")).AddArgument(true);
                    break;
                case 0xE1:              // SO_USERPUT_OFF
                    exp = new MethodInvocation(new MemberAccess(exp, "SetUserInput")).AddArgument(false);
                    break;
                case 0xE2:              // SO_USERPUT_SOFT_ON
                    exp = new MethodInvocation(new MemberAccess(exp, "SetUserInputSoft")).AddArgument(true);
                    break;
                case 0xE3:              // SO_USERPUT_SOFT_OFF
                    exp = new MethodInvocation(new MemberAccess(exp, "SetUserInputSoft")).AddArgument(false);
                    break;
                case 0xE4:              // SO_CURSOR_IMAGE Set cursor image
                    {
                        var imageIndex = Pop();
                        var obj = Pop();
                        exp = new MethodInvocation(new MemberAccess(exp, "SetCursorImage")).AddArguments(obj, imageIndex);
                    }
                    break;
                case 0xE5:              // SO_CURSOR_HOTSPOT Set cursor hotspot
                    {
                        var y = Pop();
                        var x = Pop();
                        exp = new MethodInvocation(new MemberAccess(exp, "SetCursorHotspot")).AddArguments(x, y);
                    }
                    break;
                case 0xE6:              // SO_CURSOR_TRANSPARENT Set cursor transparent color
                    exp = new MethodInvocation(new MemberAccess(exp, "SetCursorTransparentColor")).AddArgument(Pop());
                    break;
                case 0xE7:              // SO_CHARSET_SET
                    exp = new MethodInvocation(new MemberAccess(exp, "InitCharset")).AddArgument(Pop());
                    break;
                case 0xE8:              // SO_CHARSET_COLOR
                    exp = new MethodInvocation(new MemberAccess(exp, "SetCharsetColor")).AddArgument(GetStackList(4));
                    break;
                case 0xE9:              // SO_CURSOR_PUT
                    {
                        var y = Pop();
                        var x = Pop();
                        exp = new MethodInvocation(new MemberAccess(exp, "SetCursorPosition")).AddArguments(x, y);
                    }
                    break;
                default:
                    throw new NotSupportedException(string.Format("CursorCommand: default case {0:X2}", subOp));
            }
            return exp.ToStatement();
        }