ScummVM API documentation
base.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 PETKA_BASE_H
23 #define PETKA_BASE_H
24 
25 #include "common/array.h"
26 
27 namespace Petka {
28 
29 enum Opcode {
30  kZero = 0,
31  kUse = 1,
32  kSetPos = 2,
33  kGoTo = 3,
34  kLook = 4,
35  kSay = 5,
36  kTake = 6,
37  kQMUse = 7,
38  kVasiliyIvanovich = 8,
39  kWalk = 9,
40  kTalk = 10,
41  kEnd = 11,
42  kSetAnimation = 12,
43  kForceMove = 13,
44  kSet = 14,
45  kShow = 15,
46  kHide = 16,
47  kDialog = 17,
48  kZBuffer = 18,
49  kTotalInit = 19,
50  kAnimate = 20,
51  kStatus = 21,
52  kAddInv = 22,
53  kDelInv = 23,
54  kStop = 24,
55  kCursor = 25,
56  kObjectUse = 26,
57  kActive = 27,
58  kSaid = 28,
59  kSetSeq = 29,
60  kEndSeq = 30,
61  kCheck = 31,
62  kIf = 32,
63  kDescription = 33,
64  kHalf = 34,
65  kWalked = 35,
66  kWalkTo = 36,
67  kWalkVich = 37,
68  kInitBG = 38,
69  kUserMsg = 39,
70  kSystem = 40,
71  kSetZBuffer = 41, // ??? Reserved1
72  kContinue = 42,
73  kMap = 43,
74  kPassive = 44,
75  kNoMap = 45,
76  kSetInv = 46,
77  kBGsFX = 47,
78  kMusic = 48,
79  kImage = 49,
80  kStand = 50,
81  kOn = 51,
82  kOff = 52,
83  kPlay = 53,
84  kLeaveBG = 54,
85  kShake = 55,
86  kSP = 56,
87  kRandom = 57,
88  kJump = 58,
89  kJumpVich = 59,
90  kPart = 60,
91  kChapter = 61,
92  kAvi = 62,
93  kToMap = 63 // ??? MessageNumber
94 };
95 
96 class QMessageObject;
97 
98 struct QMessage {
99  QMessage() {
100  objId = opcode = arg1 = arg2 = arg3 = 0;
101  sender = nullptr;
102  unk = 0;
103  }
104  QMessage(uint16 _objId, uint16 _opcode, uint16 _arg1, int16 _arg2, int16 _arg3, QMessageObject *_sender, int _unk) {
105  this->objId = _objId;
106  this->opcode = _opcode;
107  this->arg1 = _arg1;
108  this->arg2 = _arg2;
109  this->arg3 = _arg3;
110  this->sender = _sender;
111  this->unk = _unk;
112  }
113 
114  uint16 objId;
115  uint16 opcode;
116  uint16 arg1;
117  int16 arg2;
118  int16 arg3;
119  QMessageObject *sender;
120  int32 unk;
121 };
122 
123 struct QReaction {
124  uint16 opcode;
125  int8 status;
126  int16 senderId;
127  Common::Array<QMessage> messages;
128 };
129 
130 } // End of namespace Petka
131 
132 #endif
Definition: base.h:123
Definition: array.h:52
Definition: base.h:98
Definition: object.h:58
Definition: base.h:27