1 /***************************************************************************
2  *   Copyright (C) 2009 by Andrey Afletdinov <fheroes2@gmail.com>          *
3  *                                                                         *
4  *   Part of the Free Heroes2 Engine:                                      *
5  *   http://sourceforge.net/projects/fheroes2                              *
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 2 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, write to the                         *
19  *   Free Software Foundation, Inc.,                                       *
20  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
21  ***************************************************************************/
22 
23 #ifndef H2M82_H
24 #define H2M82_H
25 
26 #include "mp2.h"
27 #include "types.h"
28 #include <cstddef>
29 
30 #define LOOPXX_COUNT 28
31 
32 namespace M82
33 {
34     enum
35     {
36         AELMATTK,
37         AELMKILL,
38         AELMMOVE,
39         AELMWNCE,
40         ANTIMAGK,
41         ARCHATTK,
42         ARCHKILL,
43         ARCHMOVE,
44         ARCHSHOT,
45         ARCHWNCE,
46         ARMGEDN,
47         BADLUCK,
48         BADMRLE,
49         BERZERK,
50         BLESS,
51         BLIND,
52         BLOODLUS,
53         BOARATTK,
54         BOARKILL,
55         BOARMOVE,
56         BOARWNCE,
57         BONEATTK,
58         BONEKILL,
59         BONEMOVE,
60         BONEWNCE,
61         BUILDTWN,
62         CATSND00,
63         CATSND02,
64         CAVLATTK,
65         CAVLKILL,
66         CAVLMOVE,
67         CAVLWNCE,
68         CHAINLTE,
69         CNTRATTK,
70         CNTRKILL,
71         CNTRMOVE,
72         CNTRSHOT,
73         CNTRWNCE,
74         COLDRAY,
75         COLDRING,
76         CURE,
77         CURSE,
78         CYCLATTK,
79         CYCLKILL,
80         CYCLMOVE,
81         CYCLWNCE,
82         DIGSOUND,
83         DIPMAGK,
84         DISRUPTR,
85         DRAWBRG,
86         DRGNATTK,
87         DRGNKILL,
88         DRGNMOVE,
89         DRGNSLAY,
90         DRGNWNCE,
91         DRUIATTK,
92         DRUIKILL,
93         DRUIMOVE,
94         DRUISHOT,
95         DRUIWNCE,
96         DWRFATTK,
97         DWRFKILL,
98         DWRFMOVE,
99         DWRFWNCE,
100         EELMATTK,
101         EELMKILL,
102         EELMMOVE,
103         EELMWNCE,
104         ELF_ATTK,
105         ELF_KILL,
106         ELF_MOVE,
107         ELF_SHOT,
108         ELF_WNCE,
109         ERTHQUAK,
110         EXPERNCE,
111         FELMATTK,
112         FELMKILL,
113         FELMMOVE,
114         FELMWNCE,
115         FIREBALL,
116         GARGATTK,
117         GARGKILL,
118         GARGMOVE,
119         GARGWNCE,
120         GBLNATTK,
121         GBLNKILL,
122         GBLNMOVE,
123         GBLNWNCE,
124         GENIATTK,
125         GENIKILL,
126         GENIMOVE,
127         GENIWNCE,
128         GHSTATTK,
129         GHSTKILL,
130         GHSTMOVE,
131         GHSTWNCE,
132         GOLMATTK,
133         GOLMKILL,
134         GOLMMOVE,
135         GOLMWNCE,
136         GOODLUCK,
137         GOODMRLE,
138         GRIFATTK,
139         GRIFKILL,
140         GRIFMOVE,
141         GRIFWNCE,
142         H2MINE,
143         HALFATTK,
144         HALFKILL,
145         HALFMOVE,
146         HALFSHOT,
147         HALFWNCE,
148         HASTE,
149         HYDRATTK,
150         HYDRKILL,
151         HYDRMOVE,
152         HYDRWNCE,
153         HYPNOTIZ,
154         KEEPSHOT,
155         KILLFADE,
156         LICHATTK,
157         LICHEXPL,
158         LICHKILL,
159         LICHMOVE,
160         LICHSHOT,
161         LICHWNCE,
162         LIGHTBLT,
163         LOOP0000,
164         LOOP0001,
165         LOOP0002,
166         LOOP0003,
167         LOOP0004,
168         LOOP0005,
169         LOOP0006,
170         LOOP0007,
171         LOOP0008,
172         LOOP0009,
173         LOOP0010,
174         LOOP0011,
175         LOOP0012,
176         LOOP0013,
177         LOOP0014,
178         LOOP0015,
179         LOOP0016,
180         LOOP0017,
181         LOOP0018,
182         LOOP0019,
183         LOOP0020,
184         LOOP0021,
185         LOOP0022,
186         LOOP0023,
187         LOOP0024,
188         LOOP0025,
189         LOOP0026,
190         LOOP0027,
191         MAGCAROW,
192         MAGEATTK,
193         MAGEKILL,
194         MAGEMOVE,
195         MAGESHOT,
196         MAGEWNCE,
197         MASSBLES,
198         MASSCURE,
199         MASSCURS,
200         MASSHAST,
201         MASSSHIE,
202         MASSSLOW,
203         MEDSATTK,
204         MEDSKILL,
205         MEDSMOVE,
206         MEDSWNCE,
207         METEOR,
208         MINOATTK,
209         MINOKILL,
210         MINOMOVE,
211         MINOWNCE,
212         MIRRORIM,
213         MNRDEATH,
214         MUMYATTK,
215         MUMYKILL,
216         MUMYMOVE,
217         MUMYWNCE,
218         NMADATTK,
219         NMADKILL,
220         NMADMOVE,
221         NMADWNCE,
222         NWHEROLV,
223         OGREATTK,
224         OGREKILL,
225         OGREMOVE,
226         OGREWNCE,
227         ORC_ATTK,
228         ORC_KILL,
229         ORC_MOVE,
230         ORC_SHOT,
231         ORC_WNCE,
232         PARALIZE,
233         PHOEATTK,
234         PHOEKILL,
235         PHOEMOVE,
236         PHOEWNCE,
237         PICKUP01,
238         PICKUP02,
239         PICKUP03,
240         PICKUP04,
241         PICKUP05,
242         PICKUP06,
243         PICKUP07,
244         PIKEATTK,
245         PIKEKILL,
246         PIKEMOVE,
247         PIKEWNCE,
248         PLDNATTK,
249         PLDNKILL,
250         PLDNMOVE,
251         PLDNWNCE,
252         PREBATTL,
253         PROTECT,
254         PSNTATTK,
255         PSNTKILL,
256         PSNTMOVE,
257         PSNTWNCE,
258         RESURECT,
259         RESURTRU,
260         ROC_ATTK,
261         ROC_KILL,
262         ROC_MOVE,
263         ROC_WNCE,
264         ROGUATTK,
265         ROGUKILL,
266         ROGUMOVE,
267         ROGUWNCE,
268         RSBRYFZL,
269         SHIELD,
270         SKELATTK,
271         SKELKILL,
272         SKELMOVE,
273         SKELWNCE,
274         SLOW,
275         SPRTATTK,
276         SPRTKILL,
277         SPRTMOVE,
278         SPRTWNCE,
279         STELSKIN,
280         STONESKI,
281         STONSKIN,
282         STORM,
283         SUMNELM,
284         SWDMATTK,
285         SWDMKILL,
286         SWDMMOVE,
287         SWDMWNCE,
288         TELEIN,
289         TELPTIN,
290         TELPTOUT,
291         TITNATTK,
292         TITNKILL,
293         TITNMOVE,
294         TITNSHOT,
295         TITNWNCE,
296         TREASURE,
297         TRLLATTK,
298         TRLLKILL,
299         TRLLMOVE,
300         TRLLSHOT,
301         TRLLWNCE,
302         UNICATTK,
303         UNICKILL,
304         UNICMOVE,
305         UNICWNCE,
306         VAMPATTK,
307         VAMPEXT1,
308         VAMPEXT2,
309         VAMPKILL,
310         VAMPMOVE,
311         VAMPWNCE,
312         WELMATTK,
313         WELMKILL,
314         WELMMOVE,
315         WELMWNCE,
316         WOLFATTK,
317         WOLFKILL,
318         WOLFMOVE,
319         WOLFWNCE,
320         WSND00,
321         WSND01,
322         WSND02,
323         WSND03,
324         WSND04,
325         WSND05,
326         WSND06,
327         WSND10,
328         WSND11,
329         WSND12,
330         WSND13,
331         WSND14,
332         WSND15,
333         WSND16,
334         WSND20,
335         WSND21,
336         WSND22,
337         WSND23,
338         WSND24,
339         WSND25,
340         WSND26,
341         ZOMBATTK,
342         ZOMBKILL,
343         ZOMBMOVE,
344         ZOMBWNCE,
345 
346         UNKNOWN
347     };
348 
349     const char * GetString( int );
350     int FromSpell( int );
351     u32 GetIndexLOOP00XXFromObject( const MP2::MapObjectType objectType );
352     int GetLOOP00XX( const size_t index );
353 }
354 
355 #endif
356