Linux multi-monitor fullscreen support
[ryzomcore.git] / ryzom / common / src / game_share / brick_families.h
blobb916ee2bdf4f33201b7c2a9fce8e9f983b14592e
1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as
6 // published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
14 // You should have received a copy of the GNU Affero General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #ifndef RY_BRICK_FAMILIES_H
20 #define RY_BRICK_FAMILIES_H
22 #include "nel/misc/types_nl.h"
23 #include "brick_types.h"
25 namespace BRICK_FAMILIES
27 enum TBrickFamily
29 // COMBAT
30 // ********
31 BeginCombat= 0,
32 // ROOT COMBAT
33 BeginCombatRoot= BeginCombat,
34 BFPA= BeginCombatRoot,
35 EndCombatRoot= BFPA,
37 // MANDATORY COMBAT
38 //BeginCombatMandatory,
39 //EndCombatMandatory = ???,
41 // OPTION COMBAT
42 BeginCombatOption,
43 BFOA = BeginCombatOption,
44 BFOB,
45 BFOC,
46 BFOD,
47 BFOE,
48 BFOF,
49 EndCombatOption = BFOF,
51 // PARAMETER COMBAT
52 BeginCombatParameter,
53 BFMA = BeginCombatParameter,
54 BFMB,
55 BFMC,
56 BFMD,
57 BFME,
58 BFMF,
59 BFMG,
60 BFMH,
61 BFMRF, // Range dmg Fire
62 BFMRT, // Range dmg Poison
63 BFMRW, // Range dmg Shockwave
64 BFMRE, // Range dmg Electricity
66 BFHME,
67 BFAHHME,
68 BFAHCME,
69 BFAHAME,
70 BFAHHAME,
71 BFAHLME,
72 BFAHFME,
73 BFKME,
74 BFAKHME,
75 BFAKCME,
76 BFAKAME,
77 BFAKHAME,
78 BFAKLME,
79 BFAKFME,
80 BFQME,
81 BFAQHME,
82 BFAQCME,
83 BFAQAME,
84 BFAQHAME,
85 BFAQLME,
86 BFAQFME,
88 // deprecated: only used in saibricks
89 BFM1MC,
90 BFM2MC,
91 BFM1HMC,
92 BFM1PMC,
93 BFM1BMC,
94 BFM1SMC,
95 BFM2PMC,
96 BFM2BMC,
97 BFM2SMC,
98 BFR1MC,
99 BFR2MC,
100 BFM1MD,
101 BFM2MD,
102 BFR1MD,
103 BFR2MD,
104 BFM1ME,
105 BFM2ME,
106 BFR1ME,
107 BFR2ME,
108 BFM1MF,
109 BFM2MF,
110 BFR1MF,
111 BFR2MF,
112 BFM1BMG,
113 BFM2BMG,
114 BFM2SMG,
115 BFM1BMH,
116 BFM2BMH,
117 BFM2SMH,
118 BFM1BMI,
119 BFM2BMI,
120 BFM1SMJ,
121 BFM1PMK,
122 BFM2PMK,
123 BFR2LFML,
124 BFM2SSFML,
125 BFM2SAFML,
126 BFM1SAFML,
127 BFM1BMTMM,
128 BFM2BMTMM,
129 BFR1HTMM,
130 BFR1BTMM,
131 BFM1BSZMN,
132 BFM1PSZMN,
133 BFR2BZMN,
134 BFM2PPZMN,
135 BFM1PDMMO,
136 BFR1PMMO,
137 BFM1SSMMO,
138 BFR2RMMO,
139 BFMMQ,
140 BFMR,
141 BFMK,
142 BFMP,
143 // end deprecated
144 EndCombatParameter = BFMP,
146 // CREDIT COMBAT
147 BeginCombatCredit,
148 BFCA = BeginCombatCredit,
149 BFCB,
150 BFCC,
151 BFCD,
152 BFCE,
153 BFCF,
154 BFCG,
155 EndCombatCredit = BFCG,
156 EndCombat= EndCombatCredit,
158 // MAGIC
159 // ********
160 BeginMagic,
161 // ROOT MAGIC
162 BeginMagicRoot= BeginMagic,
163 BMPA = BeginMagicRoot,
164 EndMagicRoot = BMPA,
166 // MANDATORY MAGIC
167 BeginMagicMandatory,
168 BMDALEA = BeginMagicMandatory,
169 BMDHTEA,
170 BMOALEA,
171 BMOELEA,
172 BMOETEA,
173 BMSTEA,
174 EndMagicMandatory = BMSTEA,
176 // OPTION MAGIC
177 BeginMagicOption,
178 BMOF = BeginMagicOption,
179 BMOG,
180 BMOH,
181 BMOR,
182 BMOV,
183 EndMagicOption = BMOV,
185 // PARAMETER MAGIC
186 BeginMagicParameter,
187 BMTODMB = BeginMagicParameter,
188 BMDALMF,
189 BMDALMM,
190 BMDALMS,
191 BMDHTMA,
192 BMDHTMP,
193 BMDHTMT,
194 BMOALMA,
195 BMOALMB,
196 BMOALMD,
197 BMOALMM,
198 BMOALMR,
199 BMOELMA,
200 BMOELMC,
201 BMOELME,
202 BMOELMF,
203 BMOELMP,
204 BMOELMR,
205 BMOELMS,
206 BMOETMA,
207 BMOETMC,
208 BMOETME,
209 BMOETMF,
210 BMOETMP,
211 BMOETMR,
212 BMOETMS,
213 BMSTMA,
214 BMSTMC,
215 BMSTMP,
216 BMSTMT,
217 EndMagicParameter = BMSTMT,
219 // CREDIT MAGIC
220 BeginMagicCredit,
221 BMCA = BeginMagicCredit,
222 BMCC,
223 BMCP,
224 BMCR,
225 EndMagicCredit = BMCR,
226 EndMagic= EndMagicCredit ,
228 // FABER
229 // ********
230 BeginFaber,
231 // ROOT FABER
232 BeginFaberRoot= BeginFaber,
233 BCPA= BeginFaberRoot,
234 EndFaberRoot= BCPA,
236 // MANDATORY FABER
237 BeginFaberMandatory,
238 BCCMEA = BeginFaberMandatory,
239 BCCREA,
240 BCCPEA,
241 BCCAEA,
242 BCCAEB,
243 BCCAEC,
244 BCCAED,
245 BCCSEA,
246 BCBMEA,
247 BCBREA,
248 BCFMEA,
249 BCFREA,
250 BCFPEA,
251 BCFAEA,
252 BCFAEB,
253 BCFAEC,
254 BCFAED,
255 BCFSEA,
256 BCFJEA,
257 BCMMEA,
258 BCMREA,
259 BCMPEA,
260 BCMAEA,
261 BCMAEB,
262 BCMAEC,
263 BCMAED,
264 BCMSEA,
265 BCMJEA,
266 BCTMEA,
267 BCTREA,
268 BCTPEA,
269 BCTAEA,
270 BCTAEB,
271 BCTAEC,
272 BCTAED,
273 BCTSEA,
274 BCTJEA,
275 BCZMEA,
276 BCZREA,
277 BCZPEA,
278 BCZAEA,
279 BCZAEB,
280 BCZAEC,
281 BCZAED,
282 BCZSEA,
283 BCZJEA,
284 BCRMEA,
285 BCRAEA,
286 BCKAMMI,
287 BCKARMI,
288 BCOKAMM01,
289 BCOKAMR01,
290 BCOKAMT01,
291 BCOKARM01,
292 BCOKARR01,
293 BCOKART01,
294 BCOKAMM02,
295 BCOKAMR02,
296 BCOKAMT02,
297 BCOKARM02,
298 BCOKARR02,
299 BCOKART02,
300 EndFaberMandatory = BCOKART02,
302 // OPTION FABER
303 BeginFaberOption,
304 BCOA = BeginFaberOption,
305 BCOB,
306 BCOC,
307 BCOD,
308 BCFAOA,
309 BCFMOA,
310 BCFROA,
311 BCFPOA,
312 BCFSOA,
313 BCFJOA,
314 BCMAOA,
315 BCMMOA,
316 BCMROA,
317 BCMPOA,
318 BCMSOA,
319 BCMJOA,
320 BCTAOA,
321 BCTMOA,
322 BCTROA,
323 BCTPOA,
324 BCTSOA,
325 BCTJOA,
326 BCZAOA,
327 BCZMOA,
328 BCZROA,
329 BCZPOA,
330 BCZSOA,
331 BCZJOA,
332 BCFAOB,
333 BCFMOB,
334 BCFROB,
335 BCFPOB,
336 BCFSOB,
337 BCFJOB,
338 BCMAOB,
339 BCMMOB,
340 BCMROB,
341 BCMPOB,
342 BCMSOB,
343 BCMJOB,
344 BCTAOB,
345 BCTMOB,
346 BCTROB,
347 BCTPOB,
348 BCTSOB,
349 BCTJOB,
350 BCZAOB,
351 BCZMOB,
352 BCZROB,
353 BCZPOB,
354 BCZSOB,
355 BCZJOB,
356 BCFAOC,
357 BCFMOC,
358 BCFROC,
359 BCFPOC,
360 BCFSOC,
361 BCFJOC,
362 BCMAOC,
363 BCMMOC,
364 BCMROC,
365 BCMPOC,
366 BCMSOC,
367 BCMJOC,
368 BCTAOC,
369 BCTMOC,
370 BCTROC,
371 BCTPOC,
372 BCTSOC,
373 BCTJOC,
374 BCZAOC,
375 BCZMOC,
376 BCZROC,
377 BCZPOC,
378 BCZSOC,
379 BCZJOC,
380 BCFAOD,
381 BCFMOD,
382 BCFROD,
383 BCFPOD,
384 BCFSOD,
385 BCFJOD,
386 BCMAOD,
387 BCMMOD,
388 BCMROD,
389 BCMPOD,
390 BCMSOD,
391 BCMJOD,
392 BCTAOD,
393 BCTMOD,
394 BCTROD,
395 BCTPOD,
396 BCTSOD,
397 BCTJOD,
398 BCZAOD,
399 BCZMOD,
400 BCZROD,
401 BCZPOD,
402 BCZSOD,
403 BCZJOD,
404 EndFaberOption = BCZJOD,
406 // CREDIT FABER
407 BeginFaberCredit,
408 BCFACA = BeginFaberCredit,
409 BCFMCA,
410 BCFRCA,
411 BCFPCA,
412 BCFSCA,
413 BCFJCA,
414 BCCMCA,
415 BCCRCA,
416 BCCPCA,
417 BCMACA,
418 BCMMCA,
419 BCMRCA,
420 BCMPCA,
421 BCMSCA,
422 BCMJCA,
423 BCTACA,
424 BCTMCA,
425 BCTRCA,
426 BCTPCA,
427 BCTSCA,
428 BCTJCA,
429 BCZACA,
430 BCZMCA,
431 BCZRCA,
432 BCZPCA,
433 BCZSCA,
434 BCZJCA,
435 BCKAMBCA,
436 BCKARBCA,
437 BCFTCA,
438 BCMTCA,
439 BCTTCA,
440 BCZTCA,
441 EndFaberCredit = BCZTCA,
443 // MISC FABER
444 BeginFaberRawMaterial,
445 FARawMaterial = BeginFaberRawMaterial,
446 EndFaberRawMaterial = FARawMaterial,
448 BeginFaberTool,
449 FATool = BeginFaberTool,
450 EndFaberTool = FATool,
451 EndFaber= EndFaberTool,
453 // FORAGE PROSPECTION
454 // ******************
455 BeginForageProspection,
456 BeginForageProspectionRoot= BeginForageProspection,
457 BHFPPA = BeginForageProspectionRoot,
458 BHFSPA,
459 BHFGPA,
460 EndForageProspectionRoot = BHFGPA,
462 BeginForageProspectionOption,
463 BHFPPOA = BeginForageProspectionOption,
464 BHFPPOB,
465 BHFPPOC,
466 BHFPPOD,
467 BHFPPOE,
468 BHFPPOF,
469 BHFPPOG,
470 BHFPPOH,
471 BHFPPOI,
472 BHFPPOJ,
473 BHFPPOK,
474 BHFPPOL,
475 BHFPSOA,
476 EndForageProspectionOption = BHFPSOA,
478 BeginForageProspectionParameter,
479 BHFPMA = BeginForageProspectionParameter,
480 BHFPMB,
481 BHFPRMFMA,
482 BHFPRMFMB,
483 BHFPRMFMC,
484 BHFPRMFMD,
485 BHFPRMFME,
486 BHFPRMFMF,
487 BHFPRMFMG,
488 BHFPRMFMH,
489 BHFPRMFMI,
490 BHFPRMFMJ,
491 BHFPRMFMK,
492 BHFPRMFML,
493 BHFPRMFMM,
494 BHFPRMFMN,
495 BHFPRMFMO,
496 BHFPRMFMP,
497 BHFPRMFMQ,
498 BHFPRMFMR,
499 BHFPRMFMS,
500 BHFPRMFMT,
501 BHFPRMFMU,
502 BHFPRMFMV,
503 BHFPRMFMW,
504 BHFPRMFMX,
505 BHFPMC,
506 BHFPMD,
507 BHFPME,
508 BHFPMF,
509 BHFPMG,
510 BHFPMH,
511 BHFPMI,
512 BHFPMJ,
513 BHFPMK,
514 BHFPML,
515 BHFPMM,
516 EndForageProspectionParameter = BHFPMM,
518 BeginForageProspectionCredit,
519 BHFPCA = BeginForageProspectionCredit,
520 EndForageProspectionCredit = BHFPCA,
522 EndForageProspection = EndForageProspectionCredit,
524 // FORAGE EXTRACTION
525 // *****************
526 BeginForageExtraction,
527 BeginForageExtractionRoot= BeginForageExtraction,
528 BHFEPA = BeginForageExtractionRoot,
529 EndForageExtractionRoot = BHFEPA,
531 BeginForageExtractionOption,
532 BHFEOA = BeginForageExtractionOption,
533 BHFEOB,
534 BHFEOC,
535 BHFEOD,
536 BHFEOE,
537 BHFEOF,
538 BHFEOG,
539 BHFEOH,
540 EndForageExtractionOption = BHFEOH,
542 BeginForageExtractionMandatory,
543 BHFEEA = BeginForageExtractionMandatory,
544 BHFEEB,
545 BHFEEC,
546 EndForageExtractionMandatory = BHFEEC,
548 BeginForageExtractionParameter,
549 BHFEMA = BeginForageExtractionParameter,
550 BHFEMB,
551 BHFEMC,
552 BHFEMD,
553 BHFEME,
554 BHFEMF,
555 BHFEMG,
556 BHFEMK,
557 EndForageExtractionParameter = BHFEMK,
559 BeginForageExtractionCredit,
560 BHFECA = BeginForageExtractionCredit,
561 EndForageExtractionCredit = BHFECA,
563 EndForageExtraction = EndForageExtractionCredit,
565 // HARVEST
566 // ********
567 BeginHarvest,
568 BeginHarvestRoot= BeginHarvest,
569 RootHarvest,
570 EndHarvestRoot= RootHarvest,
571 EndHarvest = EndHarvestRoot,
573 // TRAINING
574 // ********
575 BeginTraining,
576 BTFOC = BeginTraining,
577 BTHP,
578 BTSAP,
579 BTSTA,
581 // special for carac buying
582 BeginCharacBuy,
583 BPPC = BeginCharacBuy,
584 BPPM,
585 BPPI,
586 BPPW,
587 BPPS,
588 BPPB,
589 BPPD,
590 BPPL,
591 EndCharacBuy = BPPL,
593 EndTraining = EndCharacBuy,
595 // Bonuses
596 BeginBonus,
597 BPBCA = BeginBonus, // Craft: Durability Bonus
598 BPBHFEA, // Harvest Forage Extraction: Time Bonus
599 BPBGLA, // Generic Landmark: Extender Bonus
600 EndBonus = BPBGLA,
602 // TITLE
603 // ******
604 BeginTitle,
605 BPTEA = BeginTitle,
606 EndTitle = BPTEA,
608 // SPECIAL FOR INTERFACE (no interaction)
609 // ********
610 BeginInterface,
611 BIF = BeginInterface, // Interface for Fight Action representation
612 BIG, // Interface General bricks.
613 EndInterface = BIG,
615 // FOR SPECIAL POWERS
616 // ********
617 BeginSpecialPowers,
618 // root power
619 BeginPowerRoot = BeginSpecialPowers,
620 BSXPA = BeginSpecialPowers, // root power/aura
621 EndPowerRoot = BSXPA,
623 // mndatory power
624 BeginPowerMandatory,
625 BSXEA = BeginPowerMandatory, // power
626 BSXEB, // aura
627 BSCEA, // consumable power
628 EndPowerMandatory = BSCEA,
630 // parameters power
631 BeginPowerParameter,
632 BeginFightPowerParameter = BeginPowerParameter,
633 BSFMA = BeginFightPowerParameter, // taunt power
634 BSFMB, // shielding power
635 BSFMC, // stamina aura
636 BSFMD, // protection aura
637 BSFME, // umbrella aura
638 BSFMF, // berserk
639 BSFMG, // war cry
640 BSFMH, // heal stamina
641 BSFMI, // fire wall
642 BSFMJ, // thorn wall
643 BSFMK, // water wall
644 BSFML, // lightning
645 EndFightPowerParameter = BSFML,
647 BSXMA, // life aura
648 BSXMB, // invulnerability
649 BSXMC, // heal Hp
651 BSDMA, // speed
653 // G for general ??
654 BSGMA, // heal focus
655 BSGMB, // enchant weapon
656 BSGMBA,
657 BSGMBC,
658 BSGMBE,
659 BSGMBF,
660 BSGMBP,
661 BSGMBR,
662 BSGMBS,
664 BeginMagicPowerParameter,
665 BSMMA = BeginMagicPowerParameter, // sap aura
666 BSMMB, // anti magic shield
667 BSMMC, // balance hp
668 BSMMD, // heal sap
669 EndMagicPowerParameter = BSMMD,
671 // consumable powers
672 BSCMA, // heal Hp
673 BSCMB, // heal Sap
674 BSCMC, // heal Sta
675 BSCMD, // heal Focus
676 EndPowerParameter = BSCMD,
678 BeginMagicPowerCredit,
679 BSXCA = BeginMagicPowerCredit, // recast time
680 EndMagicPowerCredit = BSXCA,
682 EndSpecialPowers = EndMagicPowerCredit,
684 // FOR TIMED ACTIONS
685 // ********
686 BeginTimedActions,
687 BAPA = BeginTimedActions,
688 EndTimedActions = BAPA,
690 /* If you add a new brick Type, you should change
691 isRootFamily(), isMandatoryFamily(), isOptionFamily(), isCreditFamily()
692 brickType()
694 BeginProcEnchantement,
695 BEPA = BeginProcEnchantement,
696 EndProcEnchantement = BEPA,
699 NbFamilies,
700 Unknown,
702 // Yoyo: just for code below work (isRoot etc....). remove entries when true families described
703 AutoCodeCheck,
705 BeginCombatMandatory= AutoCodeCheck,
706 EndCombatMandatory= AutoCodeCheck,
708 BeginFaberParameter= AutoCodeCheck,
709 EndFaberParameter= AutoCodeCheck,
711 BeginHarvestMandatory= AutoCodeCheck,
712 EndHarvestMandatory= AutoCodeCheck,
713 BeginHarvestOption= AutoCodeCheck,
714 EndHarvestOption= AutoCodeCheck,
715 BeginHarvestCredit= AutoCodeCheck,
716 EndHarvestCredit= AutoCodeCheck,
717 BeginHarvestParameter= AutoCodeCheck,
718 EndHarvestParameter= AutoCodeCheck,
720 BeginForageProspectionMandatory= AutoCodeCheck,
721 EndForageProspectionMandatory= AutoCodeCheck
725 * get the right brick family from the input string
726 * \param str the input string
727 * \return the TBrickFamily associated to this string (Unknown if the string cannot be interpreted)
729 TBrickFamily toSBrickFamily(const std::string &str);
732 * get the string associated to a brick family
733 * \param family the TBrickFamily to convert into a string
734 * \return the family as a string
736 const std::string &toString(TBrickFamily family);
739 * \return true if the family is a root one
741 inline bool isRootFamily(TBrickFamily family)
743 return ( (family >= BeginCombatRoot && family <=EndCombatRoot) ||
744 (family >= BeginMagicRoot && family <=EndMagicRoot) ||
745 (family >= BeginFaberRoot && family <=EndFaberRoot) ||
746 (family >= BeginHarvestRoot && family <=EndHarvestRoot) ||
747 (family >= BeginForageProspectionRoot && family <=EndForageProspectionRoot) ||
748 (family >= BeginForageExtractionRoot && family <=EndForageExtractionRoot) ||
749 (family >= BeginPowerRoot && family <=EndPowerRoot) ||
750 (family >= BeginProcEnchantement && family <=EndProcEnchantement)
755 * \return true if the family is a mandatory one
757 inline bool isMandatoryFamily(TBrickFamily family)
759 return ( (family >= BeginCombatMandatory && family <=EndCombatMandatory) ||
760 (family >= BeginMagicMandatory && family <=EndMagicMandatory) ||
761 (family >= BeginFaberMandatory && family <=EndFaberMandatory) ||
762 (family >= BeginHarvestMandatory && family <=EndHarvestMandatory) ||
763 (family >= BeginForageProspectionMandatory && family <=EndForageProspectionMandatory) ||
764 (family >= BeginForageExtractionMandatory && family <=EndForageExtractionMandatory) ||
765 (family >= BeginPowerMandatory && family <=EndPowerMandatory)
770 * \return true if the family is a optional one
772 inline bool isOptionFamily(TBrickFamily family)
774 return ( (family >= BeginCombatOption && family <=EndCombatOption) ||
775 (family >= BeginMagicOption && family <=EndMagicOption) ||
776 (family >= BeginFaberOption && family <=EndFaberOption) ||
777 (family >= BeginHarvestOption && family <=EndHarvestOption) ||
778 (family >= BeginForageProspectionOption && family <=EndForageProspectionOption) ||
779 (family >= BeginForageExtractionOption && family <=EndForageExtractionOption)
784 * \return true if the family is a cred one
786 inline bool isCreditFamily(TBrickFamily family)
788 return ( (family >= BeginCombatCredit && family <=EndCombatCredit) ||
789 (family >= BeginMagicCredit && family <=EndMagicCredit) ||
790 (family >= BeginFaberCredit && family <=EndFaberCredit) ||
791 (family >= BeginHarvestCredit && family <=EndHarvestCredit) ||
792 (family >= BeginForageProspectionCredit && family <=EndForageProspectionCredit) ||
793 (family >= BeginForageExtractionCredit && family <=EndForageExtractionCredit) ||
794 (family >= BeginMagicPowerCredit && family <=EndMagicPowerCredit)
799 * \return true if the family is a parameter one
801 inline bool isParameterFamily(TBrickFamily family)
803 return ( (family >= BeginCombatParameter && family <=EndCombatParameter) ||
804 (family >= BeginMagicParameter && family <=EndMagicParameter) ||
805 (family >= BeginFaberParameter && family <=EndFaberParameter) ||
806 (family >= BeginHarvestParameter && family <=EndHarvestParameter) ||
807 (family >= BeginForageProspectionParameter && family <=EndForageProspectionParameter) ||
808 (family >= BeginForageExtractionParameter && family <=EndForageExtractionParameter) ||
809 (family >= BeginPowerParameter && family <=EndPowerParameter)
814 * \return true if the family is a special charac buy family
816 inline bool isCharacBuyFamily(TBrickFamily family)
818 return (family >= BeginCharacBuy && family <=EndCharacBuy);
822 * get the brick type from the brick family
824 BRICK_TYPE::EBrickType brickType( TBrickFamily family );
827 }; // BRICK_TYPE
829 #endif // RY_BRICK_FAMILIES_H
830 /* End of brick_families.h */