ScummVM API documentation
sequenceopcodes.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11 
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16 
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef ILLUSIONS_SEQUENCEOPCODES_H
23 #define ILLUSIONS_SEQUENCEOPCODES_H
24 
25 #include "common/func.h"
26 
27 namespace Illusions {
28 
29 class IllusionsEngine;
30 class Control;
31 struct OpCall;
32 
33 typedef Common::Functor2<Control*, OpCall&, void> SequenceOpcode;
34 
36 public:
38  ~SequenceOpcodes();
39  void execOpcode(Control *control, OpCall &opCall);
40 protected:
41  IllusionsEngine *_vm;
42  SequenceOpcode *_opcodes[256];
43  Common::String _opcodeNames[256];
44  void initOpcodes();
45  void freeOpcodes();
46 
47  // Opcodes
48  void opYield(Control *control, OpCall &opCall);
49  void opSetFrameIndex(Control *control, OpCall &opCall);
50  void opEndSequence(Control *control, OpCall &opCall);
51  void opIncFrameDelay(Control *control, OpCall &opCall);
52  void opSetRandomFrameDelay(Control *control, OpCall &opCall);
53  void opSetFrameSpeed(Control *control, OpCall &opCall);
54  void opJump(Control *control, OpCall &opCall);
55  void opJumpRandom(Control *control, OpCall &opCall);
56  void opGotoSequence(Control *control, OpCall &opCall);
57  void opStartForeignSequence(Control *control, OpCall &opCall);
58  void opBeginLoop(Control *control, OpCall &opCall);
59  void opNextLoop(Control *control, OpCall &opCall);
60  void opSetActorIndex(Control *control, OpCall &opCall);
61  void opSwitchActorIndex(Control *control, OpCall &opCall);
62  void opSwitchFacing(Control *control, OpCall &opCall);
63  void opAppearActor(Control *control, OpCall &opCall);
64  void opDisappearActor(Control *control, OpCall &opCall);
65  void opAppearForeignActor(Control *control, OpCall &opCall);
66  void opDisappearForeignActor(Control *control, OpCall &opCall);
67  void opSetNamedPointPosition(Control *control, OpCall &opCall);
68  void opMoveDelta(Control *control, OpCall &opCall);
69  void opFaceActor(Control *control, OpCall &opCall);
70  void opNotifyThreadId1(Control *control, OpCall &opCall);
71  void opSetPathCtrY(Control *control, OpCall &opCall);
72  void opDisablePathWalkPoints(Control *control, OpCall &opCall);
73  void opSetPathWalkPoints(Control *control, OpCall &opCall);
74  void opDisableAutoScale(Control *control, OpCall &opCall);
75  void opSetScale(Control *control, OpCall &opCall);
76  void opSetScaleLayer(Control *control, OpCall &opCall);
77  void opDeactivatePathWalkRects(Control *control, OpCall &opCall);
78  void opSetPathWalkRects(Control *control, OpCall &opCall);
79  void opSetPriority(Control *control, OpCall &opCall);
80  void opSetPriorityLayer(Control *control, OpCall &opCall);
81  void opDisableAutoRegionLayer(Control *control, OpCall &opCall);
82  void opSetRegionLayer(Control *control, OpCall &opCall);
83  void opSetPalette(Control *control, OpCall &opCall);
84  void opShiftPalette(Control *control, OpCall &opCall);
85  void opPlaySound(Control *control, OpCall &opCall);
86  void opStopSound(Control *control, OpCall &opCall);
87  void opStartScriptThread(Control *control, OpCall &opCall);
88  void opPlaceSubActor(Control *control, OpCall &opCall);
89  void opStartSubSequence(Control *control, OpCall &opCall);
90  void opStopSubSequence(Control *control, OpCall &opCall);
91 
92 };
93 
94 } // End of namespace Illusions
95 
96 #endif // ILLUSIONS_SEQUENCEOPCODES_H
Definition: str.h:59
Definition: actor.h:34
Definition: sequenceopcodes.h:35
Definition: actor.h:180
Definition: scriptopcodes.h:32
Definition: func.h:473
Definition: illusions.h:92