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
27namespace Petka {
28
29enum 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
96class QMessageObject;
97
98struct 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
123struct QReaction {
124 uint16 opcode;
125 int8 status;
126 int16 senderId;
128};
129
130} // End of namespace Petka
131
132#endif
Definition: array.h:52
Definition: object.h:58
Definition: base.h:98
Definition: base.h:123