ScummVM API documentation
sprite_list.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 IMMORTAL_SPRITE_LIST_H
23
#define IMMORTAL_SPRITE_LIST_H
24
25
namespace
Immortal
{
26
27
// We need a few two-dimensional vectors, and writing them out in full each time is tedious
28
template
<
class
T>
using
CArray2D =
Common::Array<Common::Array<T>
>;
29
30
struct
Image
{
31
uint16 _deltaX;
32
uint16 _deltaY;
33
uint16 _rectW;
34
uint16 _rectH;
35
Common::Array<uint16>
_scanWidth;
36
Common::Array<uint16>
_deltaPos;
37
CArray2D<byte>
_bitmap;
38
};
39
40
struct
DataSprite
{
41
uint16 _cenX;
// These are the base center positions
42
uint16 _cenY;
43
uint16 _numImages;
44
Common::Array<Image>
_images;
45
};
46
47
struct
Sprite
{
48
int
_image;
// Index of _dSprite._images[]
49
uint16 _x;
50
uint16 _y;
51
uint16 _on;
// 1 = active
52
uint16 _priority;
53
DataSprite
*_dSprite;
54
};
55
56
enum
SpriteFrame {
57
// Null
58
kNoFrame,
59
60
// Chest frames
61
kChest0Frame = 0,
62
kOpenChestFrame,
63
kRingFrame,
64
kKnifeFrame,
65
kDeadGoblinFrame,
66
67
// Normal frames
68
kSwordFrame,
69
kKeyFrame,
70
kYesIconOff,
71
kYesIconOn,
72
kNoIconOff,
73
kNoIconOn,
74
kChoiceFrame,
75
kEraseChoseFrame,
76
kSwordBigFrame,
77
kVaseBigFrame,
78
kVaseFrame,
79
kBrokenFrame,
80
kKeyBigFrame,
81
kBagFrame,
82
kBagBigFrame,
83
kBookBigFrame,
84
kBookFrame,
85
kScrollFrame,
86
kScrollBigFrame,
87
kOkayFrame,
88
kAltarFrame,
89
kGoldBigFrame,
90
kMapBigFrame,
91
kSemblanceFrame,
92
kTrapDoorFrame,
93
kBonesFrame,
94
kSackBigFrame,
95
kSporesFrame,
96
kGemGlintFrame,
97
kStoneFrame,
98
kGreenStoneFrame,
99
kGemBigFrame,
100
kStoneBigFrame,
101
kPileFrame,
102
kNoteBigFrame,
103
104
// 45 - 48 are Merchant frames
105
kMerchantFrame,
106
107
// Remaining frames
108
kCoinBigFrame = 49,
109
kPileBigFrame,
110
kKingFrame,
111
kDeadKingFrame,
112
kBombBigFrame,
113
kRingBigFrame,
114
kKnifeBigFrame,
115
kCarpetBigFrame,
116
kAnaInHoleFrame,
117
kAnaNotInHoleFrame,
118
kInvisRingFrame
119
};
120
121
enum
SpriteName {
122
// Moresprites 10
123
kCandle,
124
kWow,
125
kAnaVanish,
126
kSink,
127
kTrapdoor,
128
kWizPhant,
129
kVanish,
130
kShadow,
131
kSlime,
132
kSlimeDeath,
133
134
// Norlac 5
135
kBridge,
136
kVortex,
137
kBubble,
138
kNorlac,
139
kNolac2,
140
141
// Powwow 7
142
kPlanners,
143
kUgh,
144
kIsDevoured,
145
kIsBadCrawl,
146
kIsGoodCrawl,
147
kLeg,
148
kIsWebbed,
149
150
// Turrets 10
151
kSleep,
152
kShrink,
153
kLocksmith,
154
kAnaGlimpse,
155
kMadKing,
156
kTorch,
157
kPipe,
158
kProjectile,
159
kKnife,
160
kAnaHug,
161
162
// Worm 4
163
kWorm0,
164
kWorm1,
165
kSpike,
166
kIsSpiked,
167
168
// Iansprites 6
169
kMurder,
170
kWizCrawlUp,
171
kWizLight,
172
kWizBattle,
173
kDown,
174
kNorlacDown,
175
176
// Lastsprites 3
177
kWaterLadder,
178
kPulledDown,
179
kSpill,
180
181
// Doorsprites 10
182
kDoor,
183
kTele,
184
kBomb,
185
kTorched,
186
kLadderTop,
187
kSecret,
188
kLadderBottom,
189
kSlipped,
190
kGoblinSlipped,
191
kFlame,
192
193
// General 5
194
kArrow,
195
kSpark,
196
kObject,
197
kBigBurst,
198
kBeam,
199
200
// Mordamir 3
201
kLight,
202
kMord,
203
kDragMask,
204
205
// Dragon2 2
206
kDFlames,
207
kThroat,
208
209
// Dragon 1
210
kDragon,
211
212
// Rope 3
213
kChop,
214
kHead,
215
kNurse,
216
217
// Rescue 2
218
kRescue1,
219
kRescue2,
220
221
// Troll 9 (8 directions + ?)
222
kTroll0,
223
kTroll1,
224
kTroll2,
225
kTroll3,
226
kTroll4,
227
kTroll5,
228
kTroll6,
229
kTroll7,
230
kTroll8,
231
232
// Goblin 10 (8 directions + ?)
233
kGoblin0,
234
kGoblin1,
235
kGoblin2,
236
kGoblin3,
237
kGoblin4,
238
kGoblin5,
239
kGoblin6,
240
kGoblin7,
241
kGoblin8,
242
kGoblin9,
243
244
// Wizard A 8 (8 directions)
245
kWizard0,
246
kWizard1,
247
kWizard2,
248
kWizard3,
249
kWizard4,
250
kWizard5,
251
kWizard6,
252
kWizard7,
253
254
// Wizard B 3 (3 ?)
255
kWizard8,
256
kWizard9,
257
kWizard10,
258
259
// Ulindor 9 (8 directions + ?)
260
kUlindor0,
261
kUlindor1,
262
kUlindor2,
263
kUlindor3,
264
kUlindor4,
265
kUlindor5,
266
kUlindor6,
267
kUlindor7,
268
kUlindor8,
269
270
// Spider 10 (probably not directions)
271
kSpider0,
272
kSpider1,
273
kSpider2,
274
kSpider3,
275
kSpider4,
276
kSpider5,
277
kSpider6,
278
kSpider7,
279
kSpider8,
280
kSpider9,
281
282
// Drag 9 (probably not directions)
283
kDrag0,
284
kDrag1,
285
kDrag2,
286
kDrag3,
287
kDrag4,
288
kDrag5,
289
kDrag6,
290
kDrag7,
291
kDrag8,
292
293
// Font
294
kFont
295
};
296
297
}
// namespace Immortal
298
299
#endif
Immortal::Sprite
Definition:
sprite_list.h:47
Immortal
Definition:
definitions.h:25
Common::Array
Definition:
array.h:52
Immortal::DataSprite
Definition:
sprite_list.h:40
Image
Definition:
movie_decoder.h:32
engines
immortal
sprite_list.h
Generated on Sat Aug 31 2024 09:13:06 for ScummVM API documentation by
1.8.13