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
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (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 Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  *
21  */
22 
23 #ifndef PRINCE_FLAGS_H
24 #define PRINCE_FLAGS_H
25 
26 #include "common/scummsys.h"
27 
28 namespace Prince {
29 
30 class Flags {
31 public:
32 	static int compareFlagDebug(const void *a, const void *b);
33 	static const char *getFlagName(uint16 flagId);
34 
35 	enum Id {
36 		FLAGA1			=	0x8000,
37 		FLAGA2			=	0x8002,
38 		FLAGA3			=	0x8004,
39 		DESTX			=	0x8006,
40 		DESTY			=	0x8008,
41 		DESTD			=	0x800A,
42 		DwarfDone		=	0x800C,
43 		GRABARZCOUNTER	=	0x800E,
44 		KIERUNEK		=	0x8010,
45 		BACKFLAG1		=	0x8012,
46 		BACKFLAG2		=	0x8014,
47 		BACKFLAG3		=	0x8016,
48 		BACKFLAG4		=	0x8018,
49 		MACROFLAG1		=	0x801A,
50 		MACROFLAG2		=	0x801C,
51 		MACROFLAG3		=	0x801E,
52 		HEROLDDONE		=	0x8020,
53 		BRIDGESET		=	0x8022,
54 		U_BT_1			=	0x8024,
55 		U_BT_2			=	0x8026,
56 		U_BT_3			=	0x8028,
57 		U_BT_4			=	0x802A,
58 		U_BT_5			=	0x802C,
59 		U_BT_6			=	0x802E,
60 		U_BT_7			=	0x8030,
61 		U_BT_8			=	0x8032,
62 		U_BT_9			=	0x8034,
63 		U_BT_COUNTER	=	0x8036,
64 		ARIVALDALIVE	=	0x8038,
65 		TALKCHAR1		=	0x803A,
66 		TalkType1		=	0x803C,
67 		TALKROUT1		=	0x803E,
68 		TALKROUT2		=	0x8042,
69 		TALKROUT3		=	0x8046,
70 		TALKROUT4		=	0x804A,
71 		TALKANIM1		=	0x804E,
72 		TALKANIM2		=	0x8050,
73 		TALKCOLOR1		=	0x8052,
74 		TALKCOLOR2		=	0x8054,
75 		KapciuchTaken	=	0x8056,
76 		CurrentBeggarA	=	0x8058,
77 		TempKapc		=	0x805A,
78 		HomTaken		=	0x805C,
79 		WizardTalk		=	0x805E,
80 		SunlordTalk		=	0x8060,
81 		HermitTalk		=	0x8062,
82 		RunyMode		=	0x8064,
83 		FatMerchantTalk	=	0x8066,
84 		HotDogTalk		=	0x8068,
85 		ThiefTalk		=	0x806A,
86 		BeggarTalk		=	0x806C,
87 		// DwarfTalk		=	0x806E, // Redefinition
88 		MonkTalk		=	0x8070,
89 		BardTalk		=	0x8072,
90 		BarmanTalk		=	0x8074,
91 		LeftPlayerTalk		=	0x8076,
92 		OczySowy		=	0x8078,
93 		CzachySpeed1		=	0x807A,
94 		CzachySpeed2		=	0x807C,
95 		CzachySpeed3		=	0x807E,
96 		CzachySlowDown1		=	0x8080,
97 		CzachySlowDown2		=	0x8082,
98 		CzachySlowDown3		=	0x8084,
99 		FjordDane		=	0x8086,
100 		GKopany1		=	0x8088,
101 		GKopany2		=	0x808A,
102 		GKopany3		=	0x808C,
103 		GKopany4		=	0x808E,
104 		KnowGodWord		=	0x8090,
105 		TALKROUT21		=	0x8092,
106 		TALKROUT22		=	0x8096,
107 		TALKROUT23		=	0x809A,
108 		TALKROUT24		=	0x809E,
109 		TalkType2		=	0x80A2,
110 		GrabarzTalk		=	0x80A4,
111 		LastTalker		=	0x80A6,
112 		MapaPustelniaEnabled	=	0x80A8,
113 		MapaTempleEnabled	=	0x80AA,
114 		MapaFjordEnabled	=	0x80AC,
115 		MapaSilmanionaEnabled	=	0x80AE,
116 		MapaKurhanEnabled	=	0x80B0,
117 		MapaDragonEnabled	=	0x80B2,
118 		MapaMillEnabled		=	0x80B4,
119 		DwarfRunning		=	0x80B6,
120 		DwarfTalk		=	0x80B8,
121 		CurseLift		=	0x80BA,
122 		KosciSwapped		=	0x80BC,
123 		BookStolen		=	0x80BE,
124 		MapaUsable		=	0x80C0,
125 		FjordBoss		=	0x80C2,
126 		FjordHotDog		=	0x80C4,
127 		FjordLewy		=	0x80C6,
128 		FjordPrawy		=	0x80C8,
129 		TalkArivald		=	0x80CA,
130 		ShootDone		=	0x80CC,
131 		ShootRunning		=	0x80CE,
132 		ShootKnow		=	0x80D0,
133 		MirrorKnow		=	0x80D2,
134 		Gar1stTime		=	0x80D4,
135 		KosciTaken		=	0x80D6,
136 		ArivGotSpell		=	0x80D8,
137 		BookGiven		=	0x80DA,
138 		Wywieszka		=	0x80DC,
139 		TalkSheila		=	0x80DE,
140 		TalkSheila2		=	0x80E0,
141 		BackHuman		=	0x80E2,
142 		SkarbiecOpen		=	0x80E4,
143 		LustroTaken		=	0x80E6,
144 		GargoyleHom		=	0x80E8,
145 		GargoyleBroken		=	0x80EA,
146 		FjordDzien		=	0x80EC,
147 		GargoyleHom2		=	0x80EE,
148 		RunMonstersRunning	=	0x80F0,
149 		FoundPaperInCoffin	=	0x80F2,
150 		KnowSunlord		=	0x80F4,
151 		KnowSunlordTalk		=	0x80F6,
152 		ArivaldCzyta		=	0x80F8,
153 		TelepX			=	0x80FA,
154 		TelepY			=	0x80FC,
155 		TelepDir		=	0x80FE,
156 		TelepRoom		=	0x8100,
157 		ListStolen		=	0x8102,
158 		WifeInDoor		=	0x8104,
159 		TalkWifeFlag		=	0x8106,
160 		LetterGiven		=	0x8108,
161 		LutniaTaken		=	0x810A,
162 		BardHomeOpen		=	0x810C,
163 		FjordNoMonsters		=	0x810E,
164 		ShandriaWallTalking	=	0x8110,
165 		ShandriaWallCounter	=	0x8112,
166 		ShandriaWallDone	=	0x8114,
167 		FutureDone		=	0x8116,
168 		TalkButch		=	0x8118,
169 		GotSzalik		=	0x811A,
170 		GotCzosnek		=	0x811C,
171 		BearDone		=	0x811E,
172 		NekrVisited		=	0x8120,
173 		SunRiddle		=	0x8122,
174 		PtaszekAway		=	0x8124,
175 		KotGadanie		=	0x8126,
176 		SzlafmycaTaken		=	0x8128,
177 		BabkaTalk		=	0x812A,
178 		SellerTalk		=	0x812C,
179 		CzosnekDone		=	0x812E,
180 		PriestCounter		=	0x8130,
181 		PriestGest1		=	0x8132,
182 		PriestGest2		=	0x8134,
183 		PriestGest3		=	0x8136,
184 		PriestGest4		=	0x8138,
185 		PriestAnim		=	0x813A,
186 		HolyWaterTaken		=	0x813C,
187 		AxeTaken		=	0x813E,
188 		BadylTaken1		=	0x8140,
189 		BadylTaken2		=	0x8142,
190 		BadylSharpened		=	0x8144,
191 		PorwanieSmoka		=	0x8146,
192 		ShopReOpen		=	0x8148,
193 		LuskaShown		=	0x814A,
194 		CudKnow			=	0x814C,
195 		VampireDead		=	0x814E,
196 		MapaVisible1		=	0x8150,
197 		MapaVisible2		=	0x8152,
198 		MapaVisible3		=	0x8154,
199 		MapaVisible4		=	0x8156,
200 		MapaVisible5		=	0x8158,
201 		MapaVisible6		=	0x815A,
202 		MapaVisible7		=	0x815C,
203 		MapaVisible8		=	0x815E,
204 		MapaVisible9		=	0x8160,
205 		MapaX			=	0x8162,
206 		MapaY			=	0x8164,
207 		MapaD			=	0x8166,
208 		OldMapaX		=	0x8168,
209 		OldMapaY		=	0x816A,
210 		OldMapaD		=	0x816C,
211 		MovingBack		=	0x816E,
212 		MapaCount		=	0x8170,
213 		Pustelnia1st		=	0x8172,
214 		CzarnePole1st		=	0x8174,
215 		TalkArivNum		=	0x8176,
216 		Pfui			=	0x8178,
217 		MapaSunlordEnabled	=	0x817A,
218 		WebDone			=	0x817C,
219 		DragonDone		=	0x817E,
220 		KanPlay			=	0x8180,
221 		OldKanPlay		=	0x8182,
222 		LapkiWait		=	0x8184,
223 		WebNoCheck		=	0x8186,
224 		Perfumeria		=	0x8188,
225 		SmokNoCheck		=	0x818A,
226 		IluzjaBroken		=	0x818C,
227 		IluzjaWorking		=	0x818E,
228 		IluzjaCounter		=	0x8190,
229 		KurhanOpen1		=	0x8192,
230 		KastetTaken		=	0x8194,
231 		KastetDown		=	0x8196,
232 		KurhanDone		=	0x8198,
233 		SkelCounter		=	0x819A,
234 		SkelDial1		=	0x819C,
235 		SkelDial2		=	0x819E,
236 		SkelDial3		=	0x81A0,
237 		SkelDial4		=	0x81A2,
238 		SameTalker		=	0x81A4,
239 		RunMonstersText		=	0x81A6,
240 		PiwnicaChecked		=	0x81A8,
241 		DragonTalked		=	0x81AA,
242 		ToldAboutBook		=	0x81AC,
243 		SilmanionaDone		=	0x81AE,
244 		ToldBookCount		=	0x81B0,
245 		SmrodNoCheck		=	0x81B2,
246 		RopeTaken		=	0x81B4,
247 		RopeTime		=	0x81B6,
248 		LaskaFree		=	0x81B8,
249 		ShanSmokTalked		=	0x81BA,
250 		SwordTaken		=	0x81BC,
251 		Mill1st			=	0x81BE,
252 		SawRat			=	0x81C0,
253 		KnowRat			=	0x81C2,
254 		DziuraTimer		=	0x81C4,
255 		LaskaInside		=	0x81C6,
256 		HoleBig			=	0x81C8,
257 		EnableWiedzmin		=	0x81CA,
258 		EnableTrucizna		=	0x81CC,
259 		KnowPoison		=	0x81CE,
260 		KufelTaken		=	0x81D0,
261 		BojkaEnabled		=	0x81D2,
262 		BitwaNot1st		=	0x81D4,
263 		BojkaTimer		=	0x81D6,
264 		BojkaGirl		=	0x81D8,
265 		Look1st			=	0x81DA,
266 		RatTaken		=	0x81DC,
267 		LaskaTalkedGr		=	0x81DE,
268 		RatusGivus		=	0x81E0,
269 		MamObole		=	0x81E2,
270 		Speed1st		=	0x81E4,
271 		SpeedTimer		=	0x81E6,
272 		ProveIt			=	0x81E8,
273 		Proven			=	0x81EA,
274 		ShowWoalka		=	0x81EC,
275 		PoisonTaken		=	0x81EE,
276 		HellOpened		=	0x81F0,
277 		HellNoCheck		=	0x81F2,
278 		TalAn1			=	0x81F4,
279 		TalAn2			=	0x81F6,
280 		TalAn3			=	0x81F8,
281 		TalkDevilGuard		=	0x81fA,
282 		Sword1st		=	0x81FC,
283 		IluzjaNoCheck		=	0x81FE,
284 		RozdzielniaNumber	=	0x8200,
285 		JailChecked		=	0x8202,
286 		JailTalked		=	0x8204,
287 		TrickFailed		=	0x8206,
288 		WegielVisible		=	0x8208,
289 		WegielTimer1		=	0x820A,
290 		RandomSample		=	0x820C,
291 		RandomSampleTimer	=	0x820E,
292 		SampleTimer		=	0x8210,
293 		ZonaSample		=	0x8212,
294 		HoleTryAgain		=	0x8214,
295 		TeleportTimer		=	0x8216,
296 		RozLezy			=	0x8218,
297 		UdkoTimer		=	0x821A,
298 		ZaworZatkany		=	0x821C,
299 		ZaworOpened		=	0x821E,
300 		DoorExploded		=	0x8220,
301 		SkoraTaken		=	0x8222,
302 		CiezkieByl		=	0x8224,
303 		MamWegiel		=	0x8226,
304 		SwiecaAway		=	0x8228,
305 		ITSAVE			=	0x822A,
306 		RozpadlSie		=	0x822C,
307 		WegielFullTimer		=	0x822E,
308 		WegielDown		=	0x8230,
309 		WegielDownTimer		=	0x8232,
310 		PaliSie			=	0x8234,
311 		DiabGuardTalked		=	0x8236,
312 		GuardsNoCheck		=	0x8238,
313 		TalkedPowloka		=	0x823A,
314 		JailOpen		=	0x823C,
315 		PrzytulTimer		=	0x823E,
316 		JailDone		=	0x8240,
317 		MamMonety		=	0x8242,
318 		LotTimer		=	0x8244,
319 		LotObj			=	0x8246,
320 		PtakTimer		=	0x8248,
321 		BookTimer		=	0x824A,
322 		BookGiba		=	0x824C,
323 		PtakLata		=	0x824E,
324 		Podej			=	0x8250,
325 		GotHint			=	0x8252,
326 		LawaLeci		=	0x8254,
327 		PowerKlik		=	0x8258,
328 		LucekBad		=	0x825A,
329 		LucekBad1st		=	0x825C,
330 		IntroDial1		=	0x825E,
331 		IntroDial2		=	0x8260,
332 		ItsOutro		=	0x8262,
333 		KamienComment		=	0x8264,
334 		KamienSkip		=	0x8266,
335 		TesterFlag		=	0x8268,
336 		RememberLine		=	0x826A,
337 		OpisLapek		=	0x826C,
338 		//OpisKamienia		=	0x826E, // Redefinition
339 		TalWait			=	0x8270,
340 		OpisKamienia		=	0x8272,
341 		JumpBox			=	0x8274,
342 		JumpBox1		=	0x8276,
343 		JumpBox2		=	0x8278,
344 		JumpBox3		=	0x827A,
345 		SpecPiesek		=	0x827C,
346 		SpecPiesekCount		=	0x827E,
347 		SpecPiesekGadanie	=	0x8282,
348 		ZnikaFlag		=	0x8284,
349 		ZnikaTimer		=	0x8286,
350 		SowaTimer		=	0x8288,
351 		MamrotanieOff		=	0x828A,
352 		//	System flags controlled by script
353 		CURRMOB		=	0x8400,
354 		KOLOR		=	0x8402,
355 		MBFLAG		=	0x8404,
356 		MXFLAG		=	0x8406,
357 		MYFLAG		=	0x8408,
358 		SCROLLTYPE	=	0x840A,
359 		SCROLLVALUE	=	0x840C,
360 		SCROLLVALUE2	=	0x840E,
361 		TALKEXITCODE	=	0x8410,
362 		SPECROUTFLAG1	=	0x8412,
363 		SPECROUTFLAG2	=	0x8414,
364 		SPECROUTFLAG3	=	0x8416,
365 		TALKFLAGCODE	=	0x8418,
366 		CURRROOM	=	0x841A,
367 		Talker1Init	=	0x841C,
368 		Talker2Init	=	0x841E,
369 		RESTOREROOM	=	0x8420,
370 		INVALLOWED	=	0x8422,
371 		BOXSEL		=	0x8424,
372 		CURSEBLINK	=	0x8426,
373 		EXACTMOVE	=	0x8428,
374 		MOVEDESTX	=	0x842A,
375 		MOVEDESTY	=	0x842C,
376 		NOANTIALIAS	=	0x842E,
377 		ESCAPED		=	0x8430,
378 		ALLOW1OPTION	=	0x8432,
379 		VOICE_H_LINE	=	0x8434,
380 		VOICE_A_LINE	=	0x8436,
381 		VOICE_B_LINE	=	0x8438,
382 		VOICE_C_LINE	=	0x843A,
383 		NOHEROATALL	=	0x843C,
384 		MOUSEENABLED	=	0x843E,
385 		DIALINES	=	0x8440,
386 		//SELITEM		=	0x8442, // Redefinition
387 		SHANWALK	=	0x8444,
388 		SHANDOG		=	0x8446,
389 		GETACTIONBACK	=	0x8448,
390 		GETACTIONDATA	=	0x844C,
391 		GETACTION	=	0x8450,
392 		HEROFAST	=	0x8452,
393 		SELITEM		=	0x8454,
394 		LMOUSE		=	0x8456,
395 		MINMX		=	0x8458,
396 		MAXMX		=	0x845A,
397 		MINMY		=	0x845C,
398 		MAXMY		=	0x845E,
399 		TORX1		=	0x8460,
400 		TORY1		=	0x8462,
401 		TORX2		=	0x8464,
402 		TORY2		=	0x8466,
403 		POWER		=	0x8468,
404 		POWERENABLED	=	0x846A,
405 		FLCRESTORE	=	0x846C,
406 		NOCLSTEXT	=	0x846E,
407 		ESCAPED2	=	0x8470
408 	};
409 
410 	struct FlagDebug {
411 		Id id;
412 		char flagName[30];
413 	};
414 
415 	static const int kFlagDebugAmount = 368;
416 	static const FlagDebug _flagNames[kFlagDebugAmount];
417 };
418 
419 } // End of namespace Prince
420 
421 #endif
422