File: thereware_data.h

package info (click to toggle)
scummvm 2.9.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 450,580 kB
  • sloc: cpp: 4,299,825; asm: 28,322; python: 12,901; sh: 11,302; java: 9,289; xml: 7,895; perl: 2,639; ansic: 2,465; yacc: 1,670; javascript: 1,020; makefile: 933; lex: 578; awk: 275; objc: 82; sed: 11; php: 1
file content (237 lines) | stat: -rw-r--r-- 8,453 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
/* ScummVM - Graphic Adventure Engine
 *
 * ScummVM is the legal property of its developers, whose names
 * are too numerous to list here. Please refer to the COPYRIGHT
 * file distributed with this source distribution.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 *
 */

#ifndef MTROPOLIS_PLUGIN_THEREWARE_DATA_H
#define MTROPOLIS_PLUGIN_THEREWARE_DATA_H

#include "mtropolis/data.h"

namespace MTropolis {

namespace Data {

namespace Thereware {

// Known Thereware custom modifiers:
// * Alpha Kit:
// - Alpha: Alpha channel support for graphics and mToons
// - AlphaMatic: Automatically creates alpha information on graphics
//
// * HotText Kit:
// - HotText: Hypertext and scrolling text
// - KeyScroll: Keyboard scrolling for HotText
//
// * Spinner Kit:
// - Spinner: Effect for spinning an element with depth/two-sidedness
// - TurnOver: Like spinner, but specifically for 180 degree spins
// - Flipper: reflect graphics elements around horizontal or vertical axis
// - Squish: Squishing and elasticity for images
//
// * Rotator Kit:
// - Rotator: Rotation of graphics and mToons
// - Tracker: Track mouse or elements as a rotation angle source
//
// * WrapAround Kit:
// - WrapAround: wraparound effect for graphics and mToons
// - EasyScroller: various detail controls for scrolling behavior
//
// * Quick Kit:
// - Flasher: Lets objects blink on the screen
// - Snapper: Creates an invisible grid that elements can snap onto when dragged
// - Conductor: Forward messages to all the children of an element
// - Randomizer: Use random numbers without Miniscript
//
// * Mercury Kit:
// - DoubleClick: Messages on doubleclick. Can also do the same as the Counter messenger.
// - MouseTrap: Blocks/filters messages for a certain time period.
// - RandomTimer: Allows Miniscript altercations to the Timer messenger
//   Same as FlexiTimer in FixIt Kit
// - Repeater: Timer messenger that adds a certain delay before looping 
// - Counter: Sends a message after a certain number of incoming messages
// - TimeLoop: Sends message a certain number of times
//
// * System Kit:
// - Platform: Indicates computer type and OS
//
// * FixIt Kit:
// - GoThere: Moves an element to an arbitrary point on the screen. 
//   Superceded by the Point Motion modifier in mTropolis 2.0.
// - FlexiTimer: Allows Miniscript altercations to the Timer messenger
//	 Same as RandomTimer in Mercury Kit
//
//
// While those Kits were available individually, for mTropolis 2.0
// they were also available as a complete bundle in a single plugin,
// the Thereware Pro Kit.


struct ConductorModifier : public PlugInModifierData {
	PlugInTypeTaggedValue unknown1Null;
	PlugInTypeTaggedValue unknown2Null;
	PlugInTypeTaggedValue unknown3Int;
	PlugInTypeTaggedValue unknown4Null;
	PlugInTypeTaggedValue unknown5Null;
	PlugInTypeTaggedValue unknown6Null;
	PlugInTypeTaggedValue unknown7Event;
	PlugInTypeTaggedValue unknown8Null;
	PlugInTypeTaggedValue unknown9Int;
protected:
	DataReadErrorCode load(PlugIn &plugIn, const PlugInModifier &prefix, DataReader &reader) override;
};

struct AlphaMaticModifier : public PlugInModifierData {
protected:
	DataReadErrorCode load(PlugIn &plugIn, const PlugInModifier &prefix, DataReader &reader) override;
};

struct RotatorModifier : public PlugInModifierData {
	PlugInTypeTaggedValue unknown1Event;
	PlugInTypeTaggedValue unknown2Event;
	PlugInTypeTaggedValue unknown3Bool;
	PlugInTypeTaggedValue unknown4Int;
	PlugInTypeTaggedValue unknown5Float;
	PlugInTypeTaggedValue unknown6Bool;
	PlugInTypeTaggedValue unknown7Point;
	PlugInTypeTaggedValue unknown8Int;
	PlugInTypeTaggedValue unknown9Bool;
	PlugInTypeTaggedValue unknown10Int;
	PlugInTypeTaggedValue unknown11Event;
	PlugInTypeTaggedValue unknown12Label;
	PlugInTypeTaggedValue unknown13Null;
	PlugInTypeTaggedValue unknown14Int;
	PlugInTypeTaggedValue unknown15Point;
	PlugInTypeTaggedValue unknown16Point;
	PlugInTypeTaggedValue unknown17Point;
	PlugInTypeTaggedValue unknown18Bool;
	PlugInTypeTaggedValue unknown19Point;
	PlugInTypeTaggedValue unknown20Int;
protected:
	DataReadErrorCode load(PlugIn &plugIn, const PlugInModifier &prefix, DataReader &reader) override;
};

struct TrackerModifier : public PlugInModifierData {
	PlugInTypeTaggedValue unknown1Event;
	PlugInTypeTaggedValue unknown2Event;
	PlugInTypeTaggedValue unknown3Label;
	PlugInTypeTaggedValue unknown4Int;
	PlugInTypeTaggedValue unknown5Int;
	PlugInTypeTaggedValue unknown6Label;
	PlugInTypeTaggedValue unknown7Bool;
protected:
	DataReadErrorCode load(PlugIn &plugIn, const PlugInModifier &prefix, DataReader &reader) override;
};


struct DoubleClickModifier : public PlugInModifierData {
	PlugInTypeTaggedValue unknown1UniversalTime;
	PlugInTypeTaggedValue unknown2Event;
	PlugInTypeTaggedValue unknown3Event;
	PlugInTypeTaggedValue unknown4Null;
	PlugInTypeTaggedValue unknown5Label;
	PlugInTypeTaggedValue unknown6Int;
	PlugInTypeTaggedValue unknown7Int;

protected:
	DataReadErrorCode load(PlugIn &plugIn, const PlugInModifier &prefix, DataReader &reader) override;
};

struct MouseTrapModifier : public PlugInModifierData {
	PlugInTypeTaggedValue unknown1UniversalTime;
	PlugInTypeTaggedValue unknown2Event;
	PlugInTypeTaggedValue unknown3Event;
	PlugInTypeTaggedValue unknown4Event;
	PlugInTypeTaggedValue unknown5Null;
	PlugInTypeTaggedValue unknown6Label;
	PlugInTypeTaggedValue unknown7Int;
protected:
	DataReadErrorCode load(PlugIn &plugIn, const PlugInModifier &prefix, DataReader &reader) override;
};

struct WrapAroundModifier : public PlugInModifierData {
	PlugInTypeTaggedValue unknown1Event;
	PlugInTypeTaggedValue unknown2Event;
	PlugInTypeTaggedValue unknown3Point;
	PlugInTypeTaggedValue unknown4Int;
	PlugInTypeTaggedValue unknown5Bool;
	PlugInTypeTaggedValue unknown6Int;
protected:
	DataReadErrorCode load(PlugIn &plugIn, const PlugInModifier &prefix, DataReader &reader) override;
};

struct EasyScrollerModifier : public PlugInModifierData {
	PlugInTypeTaggedValue unknown1Event;
	PlugInTypeTaggedValue unknown2Event;
	PlugInTypeTaggedValue unknown3Int;
	PlugInTypeTaggedValue unknown4Int;
	PlugInTypeTaggedValue unknown5Label;
	PlugInTypeTaggedValue unknown6Int;
	PlugInTypeTaggedValue unknown7Int;
	PlugInTypeTaggedValue unknown8Int;
	PlugInTypeTaggedValue unknown9Int;
protected:
	DataReadErrorCode load(PlugIn &plugIn, const PlugInModifier &prefix, DataReader &reader) override;
};

struct TimeLoopModifier : public PlugInModifierData {
	PlugInTypeTaggedValue unknown1Event;
	PlugInTypeTaggedValue unknown2Event;
	PlugInTypeTaggedValue unknown3Event;
	PlugInTypeTaggedValue unknown4Null;
	PlugInTypeTaggedValue unknown5Label;
	PlugInTypeTaggedValue unknown6Int;
	PlugInTypeTaggedValue unknown7Int;
	PlugInTypeTaggedValue unknown8UniversalTime;
	PlugInTypeTaggedValue unknown9Bool;
protected:
	DataReadErrorCode load(PlugIn &plugIn, const PlugInModifier &prefix, DataReader &reader) override;
};

struct GoThereModifier : public PlugInModifierData {
	PlugInTypeTaggedValue unknown1Event;
	PlugInTypeTaggedValue unknown2Event;
	PlugInTypeTaggedValue unknown3Point;
	PlugInTypeTaggedValue unknown4UniversalTime;
	PlugInTypeTaggedValue unknown5Event;
	PlugInTypeTaggedValue unknown6Label;
	PlugInTypeTaggedValue unknown7Null;
	PlugInTypeTaggedValue unknown8Int;
	PlugInTypeTaggedValue unknown9Int;
	PlugInTypeTaggedValue unknown10Bool;
	PlugInTypeTaggedValue unknown11Bool;
protected:
	DataReadErrorCode load(PlugIn &plugIn, const PlugInModifier &prefix, DataReader &reader) override;
};

struct RandomizerModifier : public PlugInModifierData {
	PlugInTypeTaggedValue unknown1Int;
	PlugInTypeTaggedValue unknown2Int;
	PlugInTypeTaggedValue unknown3Int;
protected:
	DataReadErrorCode load(PlugIn &plugIn, const PlugInModifier &prefix, DataReader &reader) override;
};

} // End of namespace Thereware

} // End of namespace Data

} // End of namespace MTropolis

#endif