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

InitOpCodes() protected method

protected InitOpCodes ( ) : void
return void
        protected override void InitOpCodes()
        {
            opCodes = new Dictionary<int, Func<Statement>>();

            /* 00 */
            opCodes[0x01] = PushWord;
            opCodes[0x02] = PushWordVar;
            opCodes[0x03] = WordArrayRead;
            /* 04 */
            opCodes[0x04] = WordArrayIndexedRead;
            opCodes[0x05] = Dup;
            opCodes[0x06] = PopStatement;
            opCodes[0x07] = Not;
            /* 08 */
            opCodes[0x08] = Eq;
            opCodes[0x09] = NEq;
            opCodes[0x0a] = Gt;
            opCodes[0x0b] = Lt;
            /* 0C */
            opCodes[0x0c] = Le;
            opCodes[0x0d] = Ge;
            opCodes[0x0e] = Add;
            opCodes[0x0f] = Sub;
            /* 10 */
            opCodes[0x10] = Mul;
            opCodes[0x11] = Div;
            opCodes[0x12] = Land;
            opCodes[0x13] = Lor;
            /* 14 */
            opCodes[0x14] = Band;
            opCodes[0x15] = Bor;
            opCodes[0x16] = Mod;
            /* 18 */
            /* 1C */
            /* 20 */
            /* 24 */
            /* 28 */
            /* 2C */
            /* 30 */
            /* 34 */
            /* 38 */
            /* 3C */
            /* 40 */
            /* 44 */
            /* 4C */
            /* 50 */
            /* 54 */
            /* 58 */
            /* 5C */
            /* 60 */
            /* 64 */
            opCodes[0x64] = If;
            opCodes[0x65] = IfNot;
            opCodes[0x66] = Jump;
            opCodes[0x67] = BreakHere;
            /* 68 */
            opCodes[0x68] = DelayFrames;
            opCodes[0x69] = Wait;
            opCodes[0x6a] = Delay;
            opCodes[0x6b] = DelaySeconds;
            /* 6C */
            opCodes[0x6c] = DelayMinutes;
            opCodes[0x6d] = WriteWordVar;
            opCodes[0x6e] = WordVarInc;
            opCodes[0x6f] = WordVarDec;
            /* 70 */
            opCodes[0x70] = DimArray;
            opCodes[0x71] = WordArrayWrite;
            opCodes[0x72] = WordArrayInc;
            opCodes[0x73] = WordArrayDec;
            /* 74 */
            opCodes[0x74] = Dim2DimArray;
            opCodes[0x75] = WordArrayIndexedWrite;
            opCodes[0x76] = ArrayOps;
            /* 78 */
            opCodes[0x79] = StartScript;
            opCodes[0x7a] = StartScriptQuick;
            opCodes[0x7b] = StopObjectCode;
            /* 7C */
            opCodes[0x7c] = StopScript;
            opCodes[0x7d] = JumpToScript;
            opCodes[0x7e] = Dummy;
            opCodes[0x7f] = StartObject;
            /* 80 */
            opCodes[0x80] = StopObjectCode;
            opCodes[0x81] = Cutscene;
            opCodes[0x82] = EndCutscene;
            opCodes[0x83] = FreezeUnfreeze;
            /* 84 */
            opCodes[0x84] = BeginOverride;
            opCodes[0x85] = EndOverride;
            opCodes[0x86] = StopSentence;
            /* 88 */
            opCodes[0x89] = SetClass;
            opCodes[0x8a] = SetState;
            opCodes[0x8b] = SetOwner;
            /* 8C */
            opCodes[0x8c] = PanCameraTo;
            opCodes[0x8d] = ActorFollowCamera;
            opCodes[0x8e] = SetCameraAt;
            opCodes[0x8f] = PrintActor;
            /* 90 */
            opCodes[0x90] = PrintEgo;
            opCodes[0x91] = TalkActor;
            opCodes[0x92] = TalkEgo;
            opCodes[0x93] = PrintLine;
            /* 94 */
            opCodes[0x94] = PrintText;
            opCodes[0x95] = PrintDebug;
            opCodes[0x96] = PrintSystem;
            opCodes[0x97] = BlastText;
            /* 98 */
            opCodes[0x98] = DrawObject;
            /* 9C */
            opCodes[0x9c] = CursorCommand;
            opCodes[0x9d] = LoadRoom;
            opCodes[0x9e] = LoadRoomWithEgo;
            opCodes[0x9f] = WalkActorToObj;
            /* A0 */
            opCodes[0xa0] = WalkActorTo;
            opCodes[0xa1] = PutActorAtXY;
            opCodes[0xa2] = PutActorAtObject;
            opCodes[0xa3] = FaceActor;
            /* A4 */
            opCodes[0xa4] = AnimateActor;
            opCodes[0xa5] = DoSentence;
            opCodes[0xa6] = PickupObject;
            opCodes[0xa7] = SetBoxFlags;
            /* A8 */
            opCodes[0xa8] = CreateBoxMatrix;
            opCodes[0xaa] = ResourceRoutines;
            opCodes[0xaB] = RoomOps;
            /* AC */
            opCodes[0xac] = ActorOps;
            opCodes[0xad] = CameraOps;
            opCodes[0xae] = VerbOps;
            opCodes[0xaf] = StartSound;
            /* B0 */
            opCodes[0xb0] = StartMusic;
            opCodes[0xb1] = StopSound;
            opCodes[0xb2] = SoundKludge;
            opCodes[0xb3] = SystemOps;
            /* B4 */
            opCodes[0xb4] = SaveRestoreVerbs;
            opCodes[0xb5] = SetObjectName;
            opCodes[0xb6] = GetDateTime;
            opCodes[0xb7] = DrawBox;
            /* B8 */
            opCodes[0xb9] = StartVideo;
            opCodes[0xba] = KernelSetFunctions;
            /* BC */
            /* C0 */
            /* C4 */
            /* C8 */
            opCodes[0xc8] = StartScriptQuick2;
            opCodes[0xc9] = StartObjectQuick;
            opCodes[0xca] = PickOneOf;
            opCodes[0xcb] = PickOneOfDefault;
            /* CC */
            opCodes[0xcd] = IsAnyOf;
            opCodes[0xce] = GetRandomNumber;
            opCodes[0xcf] = GetRandomNumberRange;
            /* D0 */
            opCodes[0xd0] = IfClassOfIs;
            opCodes[0xd1] = GetState;
            opCodes[0xd2] = GetOwner;
            opCodes[0xd3] = IsScriptRunning;
            /* D4 */
            opCodes[0xd5] = IsSoundRunning;
            opCodes[0xd6] = Abs;
            /* D8 */
            opCodes[0xd8] = KernelGetFunctions;
            opCodes[0xd9] = IsActorInBox;
            opCodes[0xda] = GetVerbEntrypoint;
            opCodes[0xdb] = GetActorFromXY;
            /* DC */
            opCodes[0xdc] = FindObject;
            opCodes[0xdd] = GetVerbFromXY;
            opCodes[0xdf] = FindInventory;
            /* E0 */
            opCodes[0xe0] = GetInventoryCount;
            opCodes[0xe1] = GetActorAnimateVariable;
            opCodes[0xe2] = GetActorRoom;
            opCodes[0xe3] = GetActorWalkBox;
            /* E4 */
            opCodes[0xe4] = GetActorMoving;
            opCodes[0xe5] = GetActorCostume;
            opCodes[0xe6] = GetActorScaleX;
            opCodes[0xe7] = GetActorLayer;
            /* E8 */
            opCodes[0xe8] = GetActorElevation;
            opCodes[0xe9] = GetActorWidth;
            opCodes[0xea] = GetObjectNewDir;
            opCodes[0xeb] = GetObjectX;
            /* EC */
            opCodes[0xec] = GetObjectY;
            opCodes[0xed] = GetActorChore;
            opCodes[0xee] = DistObjectObject;
            opCodes[0xef] = DistPtPt;
            /* F0 */
            opCodes[0xf0] = GetObjectImageX;
            opCodes[0xf1] = GetObjectImageY;
            opCodes[0xf2] = GetObjectImageWidth;
            opCodes[0xf3] = GetObjectImageHeight;
            /* F4 */
            opCodes[0xf6] = GetStringWidth;
            opCodes[0xf7] = GetActorZPlane;
        }

Usage Example

Example #1
0
        public static ScriptParser Create(GameInfo info)
        {
            ScriptParser parser;

            switch (info.Version)
            {
            case 0:
                parser = new ScriptParser0(info);
                break;

            case 3:
                parser = new ScriptParser3(info);
                break;

            case 4:
                parser = new ScriptParser4(info);
                break;

            case 5:
                parser = new ScriptParser5(info);
                break;

            case 6:
                parser = new ScriptParser6(info);
                break;

            case 7:
                parser = new ScriptParser7(info);
                break;

            case 8:
                parser = new ScriptParser8(info);
                break;

            default:
                throw new NotSupportedException(string.Format("SCUMM version {0} not supported.", info.Version));
            }
            parser.InitOpCodes();
            return(parser);
        }
All Usage Examples Of NScumm.Dump.ScriptParser8::InitOpCodes