Add infos into target window
[ryzomcore.git] / ryzom / server / src / entities_game_service / mission_pd.h
blob9d8baf07e864628a74aea0f9e35a73bb9867a73b
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/>.
18 #ifndef MISSION_PD_H
19 #define MISSION_PD_H
21 #include <nel/misc/types_nl.h>
22 #include <nel/misc/debug.h>
23 #include <nel/misc/common.h>
24 #include <nel/misc/entity_id.h>
25 #include <nel/misc/sheet_id.h>
26 #include <vector>
27 #include <map>
28 #include <pd_lib/pd_lib.h>
29 #include <game_share/persistent_data.h>
31 // User #includes
32 #include "mission_manager/mission_base_behaviour.h"
34 namespace EGSPD
38 // Forward declarations
44 // Typedefs & Enums
47 /** CActiveStepStatePD
48 * defined at entities_game_service/pd_scripts/mission.pds:6
50 class CActiveStepStatePD : public RY_PDS::IPDBaseData
53 public:
55 /// \name Accessors and Mutators methods
56 // @{
58 /**
59 * Use these methods to change a value, add or delete elements.
62 uint32 getIndex() const;
64 uint32 getState() const;
65 void setState(uint32 __v, bool forceWrite=false);
67 CActiveStepPD* getStep();
68 const CActiveStepPD* getStep() const;
70 // @}
73 public:
75 /// \name Public Management methods
76 // @{
78 /**
79 * Use these methods to create, load, unload and get
80 * an object from database.
84 /**
85 * Clear whole object content but key (delete subobjects if there are, key is left unmodified), default clear value is 0.
87 void clear();
89 /**
90 * Cast base object to CActiveStepStatePD
92 static CActiveStepStatePD* cast(RY_PDS::IPDBaseData* obj);
94 /**
95 * Cast base object to const CActiveStepStatePD
97 static const CActiveStepStatePD* cast(const RY_PDS::IPDBaseData* obj);
99 // @}
102 public:
104 /// \name Public constructor
105 // @{
108 * This constructor is public to allow direct instanciation of the class
111 CActiveStepStatePD();
112 ~CActiveStepStatePD();
114 // @}
117 public:
119 /// \name Persistent methods declaration
120 // @{
122 void apply(CPersistentDataRecord &__pdr);
123 void store(CPersistentDataRecord &__pdr) const;
125 // @}
128 protected:
130 /// \name Attributes
131 // @{
134 * Don't modify those value manually, use accessors and mutators above
137 uint32 _Index;
138 uint32 _State;
139 CActiveStepPD* _Step;
141 // @}
144 protected:
146 /// \name Internal Management methods
147 // @{
149 void pds__init(const uint32 &Index);
150 void pds__destroy();
151 void pds__fetch(RY_PDS::CPData &data);
152 void pds__register();
153 void pds__registerAttributes();
154 void pds__unregister();
155 void pds__unregisterAttributes();
156 void pds__setParent(CActiveStepPD* __parent);
157 void pds__setParentUnnotified(CActiveStepPD* __parent);
158 void pds__notifyInit();
159 void pds__notifyRelease();
160 static void pds_static__init();
162 // @}
165 protected:
167 /// \name Default Factory and Fetch methods
168 // @{
170 static RY_PDS::CIndexAllocator _IndexAllocator;
172 // @}
175 protected:
177 friend class CActiveStepPD;
178 friend class CMissionContainerPD;
179 friend class CMissionPD;
180 friend class RY_PDS::CPDSLib;
181 friend void EGSPD::init(uint32);
184 /** CActiveStepPD
185 * defined at entities_game_service/pd_scripts/mission.pds:13
187 class CActiveStepPD : public RY_PDS::IPDBaseData
190 public:
192 /// \name Accessors and Mutators methods
193 // @{
196 * Use these methods to change a value, add or delete elements.
199 uint32 getIndexInTemplate() const;
201 CActiveStepStatePD* getStates(const uint32& __k);
202 const CActiveStepStatePD* getStates(const uint32& __k) const;
203 std::map<uint32, CActiveStepStatePD>::iterator getStatesBegin();
204 std::map<uint32, CActiveStepStatePD>::iterator getStatesEnd();
205 std::map<uint32, CActiveStepStatePD>::const_iterator getStatesBegin() const;
206 std::map<uint32, CActiveStepStatePD>::const_iterator getStatesEnd() const;
207 const std::map<uint32, CActiveStepStatePD> & getStates() const;
208 CActiveStepStatePD* addToStates(const uint32 &__k);
209 void deleteFromStates(const uint32 &__k);
211 CMissionPD* getMission();
212 const CMissionPD* getMission() const;
214 // @}
217 public:
219 /// \name Public Management methods
220 // @{
223 * Use these methods to create, load, unload and get
224 * an object from database.
229 * Clear whole object content but key (delete subobjects if there are, key is left unmodified), default clear value is 0.
231 void clear();
234 * Cast base object to CActiveStepPD
236 static CActiveStepPD* cast(RY_PDS::IPDBaseData* obj);
239 * Cast base object to const CActiveStepPD
241 static const CActiveStepPD* cast(const RY_PDS::IPDBaseData* obj);
243 // @}
246 public:
248 /// \name Public constructor
249 // @{
252 * This constructor is public to allow direct instanciation of the class
255 CActiveStepPD();
256 ~CActiveStepPD();
258 // @}
261 public:
263 /// \name Persistent methods declaration
264 // @{
266 void apply(CPersistentDataRecord &__pdr);
267 void store(CPersistentDataRecord &__pdr) const;
269 // @}
272 protected:
274 /// \name Attributes
275 // @{
278 * Don't modify those value manually, use accessors and mutators above
281 uint32 _IndexInTemplate;
282 std::map<uint32, CActiveStepStatePD> _States;
283 CMissionPD* _Mission;
285 // @}
288 protected:
290 /// \name Internal Management methods
291 // @{
293 void pds__init(const uint32 &IndexInTemplate);
294 void pds__destroy();
295 void pds__fetch(RY_PDS::CPData &data);
296 void pds__register();
297 void pds__registerAttributes();
298 void pds__unregister();
299 void pds__unregisterAttributes();
300 void pds__setParent(CMissionPD* __parent);
301 void pds__setParentUnnotified(CMissionPD* __parent);
302 void pds__notifyInit();
303 void pds__notifyRelease();
304 static void pds_static__init();
306 // @}
309 protected:
311 /// \name Default Factory and Fetch methods
312 // @{
314 static RY_PDS::CIndexAllocator _IndexAllocator;
316 // @}
319 protected:
321 friend class CMissionContainerPD;
322 friend class CMissionPD;
323 friend class CActiveStepStatePD;
324 friend class RY_PDS::CPDSLib;
325 friend void EGSPD::init(uint32);
328 /** CDoneStepPD
329 * defined at entities_game_service/pd_scripts/mission.pds:20
331 class CDoneStepPD : public RY_PDS::IPDBaseData
334 public:
336 /// \name Accessors and Mutators methods
337 // @{
340 * Use these methods to change a value, add or delete elements.
343 uint32 getIndex() const;
345 CMissionPD* getMission();
346 const CMissionPD* getMission() const;
348 // @}
351 public:
353 /// \name Public Management methods
354 // @{
357 * Use these methods to create, load, unload and get
358 * an object from database.
363 * Clear whole object content but key (delete subobjects if there are, key is left unmodified), default clear value is 0.
365 void clear();
368 * Cast base object to CDoneStepPD
370 static CDoneStepPD* cast(RY_PDS::IPDBaseData* obj);
373 * Cast base object to const CDoneStepPD
375 static const CDoneStepPD* cast(const RY_PDS::IPDBaseData* obj);
377 // @}
380 public:
382 /// \name Public constructor
383 // @{
386 * This constructor is public to allow direct instanciation of the class
389 CDoneStepPD();
390 ~CDoneStepPD();
392 // @}
395 public:
397 /// \name Persistent methods declaration
398 // @{
400 void apply(CPersistentDataRecord &__pdr);
401 void store(CPersistentDataRecord &__pdr) const;
403 // @}
406 protected:
408 /// \name Attributes
409 // @{
412 * Don't modify those value manually, use accessors and mutators above
415 uint32 _Index;
416 CMissionPD* _Mission;
418 // @}
421 protected:
423 /// \name Internal Management methods
424 // @{
426 void pds__init(const uint32 &Index);
427 void pds__destroy();
428 void pds__fetch(RY_PDS::CPData &data);
429 void pds__register();
430 void pds__registerAttributes();
431 void pds__unregister();
432 void pds__unregisterAttributes();
433 void pds__setParent(CMissionPD* __parent);
434 void pds__setParentUnnotified(CMissionPD* __parent);
435 void pds__notifyInit();
436 void pds__notifyRelease();
437 static void pds_static__init();
439 // @}
442 protected:
444 /// \name Default Factory and Fetch methods
445 // @{
447 static RY_PDS::CIndexAllocator _IndexAllocator;
449 // @}
452 protected:
454 friend class CMissionContainerPD;
455 friend class CMissionPD;
456 friend class RY_PDS::CPDSLib;
457 friend void EGSPD::init(uint32);
460 /** CMissionCompassPD
461 * defined at entities_game_service/pd_scripts/mission.pds:27
463 class CMissionCompassPD : public RY_PDS::IPDBaseData
466 public:
468 /// \name Accessors and Mutators methods
469 // @{
472 * Use these methods to change a value, add or delete elements.
475 uint32 getIndex() const;
477 uint32 getPlace() const;
478 void setPlace(uint32 __v, bool forceWrite=false);
480 uint32 getBotId() const;
481 void setBotId(uint32 __v, bool forceWrite=false);
483 CMissionPD* getMission();
484 const CMissionPD* getMission() const;
486 // @}
489 public:
491 /// \name Public Management methods
492 // @{
495 * Use these methods to create, load, unload and get
496 * an object from database.
501 * Clear whole object content but key (delete subobjects if there are, key is left unmodified), default clear value is 0.
503 void clear();
506 * Cast base object to CMissionCompassPD
508 static CMissionCompassPD* cast(RY_PDS::IPDBaseData* obj);
511 * Cast base object to const CMissionCompassPD
513 static const CMissionCompassPD* cast(const RY_PDS::IPDBaseData* obj);
515 // @}
518 public:
520 /// \name User defined attributes and methods
521 // @{
524 * This code was verbatim copied from source file
527 // User code appended in mission.pds
528 uint32 NameStringId;
529 std::string NameString;
530 // @}
533 public:
535 /// \name Public constructor
536 // @{
539 * This constructor is public to allow direct instanciation of the class
542 CMissionCompassPD();
543 ~CMissionCompassPD();
545 // @}
548 public:
550 /// \name Persistent methods declaration
551 // @{
553 void apply(CPersistentDataRecord &__pdr);
554 void store(CPersistentDataRecord &__pdr) const;
556 // @}
559 protected:
561 /// \name Attributes
562 // @{
565 * Don't modify those value manually, use accessors and mutators above
568 uint32 _Index;
569 uint32 _Place;
570 uint32 _BotId;
571 CMissionPD* _Mission;
573 // @}
576 protected:
578 /// \name Internal Management methods
579 // @{
581 void pds__init(const uint32 &Index);
582 void pds__destroy();
583 void pds__fetch(RY_PDS::CPData &data);
584 void pds__register();
585 void pds__registerAttributes();
586 void pds__unregister();
587 void pds__unregisterAttributes();
588 void pds__setParent(CMissionPD* __parent);
589 void pds__setParentUnnotified(CMissionPD* __parent);
590 void pds__notifyInit();
591 void pds__notifyRelease();
592 static void pds_static__init();
594 // @}
597 protected:
599 /// \name Default Factory and Fetch methods
600 // @{
602 static RY_PDS::CIndexAllocator _IndexAllocator;
604 // @}
607 protected:
609 friend class CMissionContainerPD;
610 friend class CMissionPD;
611 friend class RY_PDS::CPDSLib;
612 friend void EGSPD::init(uint32);
615 /** CMissionTeleportPD
616 * defined at entities_game_service/pd_scripts/mission.pds:49
618 class CMissionTeleportPD : public RY_PDS::IPDBaseData
621 public:
623 /// \name Accessors and Mutators methods
624 // @{
627 * Use these methods to change a value, add or delete elements.
630 uint32 getIndex() const;
632 CMissionPD* getMission();
633 const CMissionPD* getMission() const;
635 // @}
638 public:
640 /// \name Public Management methods
641 // @{
644 * Use these methods to create, load, unload and get
645 * an object from database.
650 * Clear whole object content but key (delete subobjects if there are, key is left unmodified), default clear value is 0.
652 void clear();
655 * Cast base object to CMissionTeleportPD
657 static CMissionTeleportPD* cast(RY_PDS::IPDBaseData* obj);
660 * Cast base object to const CMissionTeleportPD
662 static const CMissionTeleportPD* cast(const RY_PDS::IPDBaseData* obj);
664 // @}
667 public:
669 /// \name Public constructor
670 // @{
673 * This constructor is public to allow direct instanciation of the class
676 CMissionTeleportPD();
677 ~CMissionTeleportPD();
679 // @}
682 public:
684 /// \name Persistent methods declaration
685 // @{
687 void apply(CPersistentDataRecord &__pdr);
688 void store(CPersistentDataRecord &__pdr) const;
690 // @}
693 protected:
695 /// \name Attributes
696 // @{
699 * Don't modify those value manually, use accessors and mutators above
702 uint32 _Index;
703 CMissionPD* _Mission;
705 // @}
708 protected:
710 /// \name Internal Management methods
711 // @{
713 void pds__init(const uint32 &Index);
714 void pds__destroy();
715 void pds__fetch(RY_PDS::CPData &data);
716 void pds__register();
717 void pds__registerAttributes();
718 void pds__unregister();
719 void pds__unregisterAttributes();
720 void pds__setParent(CMissionPD* __parent);
721 void pds__setParentUnnotified(CMissionPD* __parent);
722 void pds__notifyInit();
723 void pds__notifyRelease();
724 static void pds_static__init();
726 // @}
729 protected:
731 /// \name Default Factory and Fetch methods
732 // @{
734 static RY_PDS::CIndexAllocator _IndexAllocator;
736 // @}
739 protected:
741 friend class CMissionContainerPD;
742 friend class CMissionPD;
743 friend class RY_PDS::CPDSLib;
744 friend void EGSPD::init(uint32);
747 /** CMissionInsidePlacePD
748 * defined at entities_game_service/pd_scripts/mission.pds:55
750 class CMissionInsidePlacePD : public RY_PDS::IPDBaseData
753 public:
755 /// \name Accessors and Mutators methods
756 // @{
759 * Use these methods to change a value, add or delete elements.
762 uint32 getAlias() const;
764 uint32 getDelay() const;
765 void setDelay(uint32 __v, bool forceWrite=false);
767 CMissionPD* getMission();
768 const CMissionPD* getMission() const;
770 // @}
773 public:
775 /// \name Public Management methods
776 // @{
779 * Use these methods to create, load, unload and get
780 * an object from database.
785 * Clear whole object content but key (delete subobjects if there are, key is left unmodified), default clear value is 0.
787 void clear();
790 * Cast base object to CMissionInsidePlacePD
792 static CMissionInsidePlacePD* cast(RY_PDS::IPDBaseData* obj);
795 * Cast base object to const CMissionInsidePlacePD
797 static const CMissionInsidePlacePD* cast(const RY_PDS::IPDBaseData* obj);
799 // @}
802 public:
804 /// \name Public constructor
805 // @{
808 * This constructor is public to allow direct instanciation of the class
811 CMissionInsidePlacePD();
812 ~CMissionInsidePlacePD();
814 // @}
817 public:
819 /// \name Persistent methods declaration
820 // @{
822 void apply(CPersistentDataRecord &__pdr);
823 void store(CPersistentDataRecord &__pdr) const;
825 // @}
828 protected:
830 /// \name Attributes
831 // @{
834 * Don't modify those value manually, use accessors and mutators above
837 uint32 _Alias;
838 uint32 _Delay;
839 CMissionPD* _Mission;
841 // @}
844 protected:
846 /// \name Internal Management methods
847 // @{
849 void pds__init(const uint32 &Alias);
850 void pds__destroy();
851 void pds__fetch(RY_PDS::CPData &data);
852 void pds__register();
853 void pds__registerAttributes();
854 void pds__unregister();
855 void pds__unregisterAttributes();
856 void pds__setParent(CMissionPD* __parent);
857 void pds__setParentUnnotified(CMissionPD* __parent);
858 void pds__notifyInit();
859 void pds__notifyRelease();
860 static void pds_static__init();
862 // @}
865 protected:
867 /// \name Default Factory and Fetch methods
868 // @{
870 static RY_PDS::CIndexAllocator _IndexAllocator;
872 // @}
875 protected:
877 friend class CMissionContainerPD;
878 friend class CMissionPD;
879 friend class RY_PDS::CPDSLib;
880 friend void EGSPD::init(uint32);
883 /** CMissionOutsidePlacePD
884 * defined at entities_game_service/pd_scripts/mission.pds:61
886 class CMissionOutsidePlacePD : public RY_PDS::IPDBaseData
889 public:
891 /// \name Accessors and Mutators methods
892 // @{
895 * Use these methods to change a value, add or delete elements.
898 uint32 getAlias() const;
900 uint32 getDelay() const;
901 void setDelay(uint32 __v, bool forceWrite=false);
903 CMissionPD* getMission();
904 const CMissionPD* getMission() const;
906 // @}
909 public:
911 /// \name Public Management methods
912 // @{
915 * Use these methods to create, load, unload and get
916 * an object from database.
921 * Clear whole object content but key (delete subobjects if there are, key is left unmodified), default clear value is 0.
923 void clear();
926 * Cast base object to CMissionOutsidePlacePD
928 static CMissionOutsidePlacePD* cast(RY_PDS::IPDBaseData* obj);
931 * Cast base object to const CMissionOutsidePlacePD
933 static const CMissionOutsidePlacePD* cast(const RY_PDS::IPDBaseData* obj);
935 // @}
938 public:
940 /// \name Public constructor
941 // @{
944 * This constructor is public to allow direct instanciation of the class
947 CMissionOutsidePlacePD();
948 ~CMissionOutsidePlacePD();
950 // @}
953 public:
955 /// \name Persistent methods declaration
956 // @{
958 void apply(CPersistentDataRecord &__pdr);
959 void store(CPersistentDataRecord &__pdr) const;
961 // @}
964 protected:
966 /// \name Attributes
967 // @{
970 * Don't modify those value manually, use accessors and mutators above
973 uint32 _Alias;
974 uint32 _Delay;
975 CMissionPD* _Mission;
977 // @}
980 protected:
982 /// \name Internal Management methods
983 // @{
985 void pds__init(const uint32 &Alias);
986 void pds__destroy();
987 void pds__fetch(RY_PDS::CPData &data);
988 void pds__register();
989 void pds__registerAttributes();
990 void pds__unregister();
991 void pds__unregisterAttributes();
992 void pds__setParent(CMissionPD* __parent);
993 void pds__setParentUnnotified(CMissionPD* __parent);
994 void pds__notifyInit();
995 void pds__notifyRelease();
996 static void pds_static__init();
998 // @}
1001 protected:
1003 /// \name Default Factory and Fetch methods
1004 // @{
1006 static RY_PDS::CIndexAllocator _IndexAllocator;
1008 // @}
1011 protected:
1013 friend class CMissionContainerPD;
1014 friend class CMissionPD;
1015 friend class RY_PDS::CPDSLib;
1016 friend void EGSPD::init(uint32);
1019 /** CHandledAIGroupPD
1020 * defined at entities_game_service/pd_scripts/mission.pds:68
1022 class CHandledAIGroupPD : public RY_PDS::IPDBaseData
1025 public:
1027 /// \name Accessors and Mutators methods
1028 // @{
1031 * Use these methods to change a value, add or delete elements.
1034 uint32 getGroupAlias() const;
1036 uint32 getDespawnTime() const;
1037 void setDespawnTime(uint32 __v, bool forceWrite=false);
1039 CMissionPD* getMission();
1040 const CMissionPD* getMission() const;
1042 // @}
1045 public:
1047 /// \name Public Management methods
1048 // @{
1051 * Use these methods to create, load, unload and get
1052 * an object from database.
1057 * Clear whole object content but key (delete subobjects if there are, key is left unmodified), default clear value is 0.
1059 void clear();
1062 * Cast base object to CHandledAIGroupPD
1064 static CHandledAIGroupPD* cast(RY_PDS::IPDBaseData* obj);
1067 * Cast base object to const CHandledAIGroupPD
1069 static const CHandledAIGroupPD* cast(const RY_PDS::IPDBaseData* obj);
1071 // @}
1074 public:
1076 /// \name Public constructor
1077 // @{
1080 * This constructor is public to allow direct instanciation of the class
1083 CHandledAIGroupPD();
1084 ~CHandledAIGroupPD();
1086 // @}
1089 public:
1091 /// \name Persistent methods declaration
1092 // @{
1094 void apply(CPersistentDataRecord &__pdr);
1095 void store(CPersistentDataRecord &__pdr) const;
1097 // @}
1100 protected:
1102 /// \name Attributes
1103 // @{
1106 * Don't modify those value manually, use accessors and mutators above
1109 uint32 _GroupAlias;
1110 uint32 _DespawnTime;
1111 CMissionPD* _Mission;
1113 // @}
1116 protected:
1118 /// \name Internal Management methods
1119 // @{
1121 void pds__init(const uint32 &GroupAlias);
1122 void pds__destroy();
1123 void pds__fetch(RY_PDS::CPData &data);
1124 void pds__register();
1125 void pds__registerAttributes();
1126 void pds__unregister();
1127 void pds__unregisterAttributes();
1128 void pds__setParent(CMissionPD* __parent);
1129 void pds__setParentUnnotified(CMissionPD* __parent);
1130 void pds__notifyInit();
1131 void pds__notifyRelease();
1132 static void pds_static__init();
1134 // @}
1137 protected:
1139 /// \name Default Factory and Fetch methods
1140 // @{
1142 static RY_PDS::CIndexAllocator _IndexAllocator;
1144 // @}
1147 protected:
1149 friend class CMissionContainerPD;
1150 friend class CMissionPD;
1151 friend class RY_PDS::CPDSLib;
1152 friend void EGSPD::init(uint32);
1155 /** CMissionPD
1156 * defined at entities_game_service/pd_scripts/mission.pds:75
1158 class CMissionPD : public RY_PDS::IPDBaseData, public CMissionBaseBehaviour
1161 public:
1163 /// \name Accessors and Mutators methods
1164 // @{
1167 * Use these methods to change a value, add or delete elements.
1170 uint32 getTemplateId() const;
1172 uint32 getMainMissionTemplateId() const;
1173 void setMainMissionTemplateId(uint32 __v, bool forceWrite=false);
1175 uint32 getGiver() const;
1176 void setGiver(uint32 __v, bool forceWrite=false);
1178 float getHourLowerBound() const;
1179 void setHourLowerBound(float __v, bool forceWrite=false);
1181 float getHourUpperBound() const;
1182 void setHourUpperBound(float __v, bool forceWrite=false);
1184 CSeason::TSeason getSeason() const;
1185 void setSeason(CSeason::TSeason __v, bool forceWrite=false);
1187 uint32 getMonoEndDate() const;
1188 void setMonoEndDate(uint32 __v, bool forceWrite=false);
1190 uint32 getEndDate() const;
1191 void setEndDate(uint32 __v, bool forceWrite=false);
1193 uint32 getCriticalPartEndDate() const;
1194 void setCriticalPartEndDate(uint32 __v, bool forceWrite=false);
1196 uint32 getBeginDate() const;
1197 void setBeginDate(uint32 __v, bool forceWrite=false);
1199 uint32 getFailureIndex() const;
1200 void setFailureIndex(uint32 __v, bool forceWrite=false);
1202 uint32 getCrashHandlerIndex() const;
1203 void setCrashHandlerIndex(uint32 __v, bool forceWrite=false);
1205 uint32 getPlayerReconnectHandlerIndex() const;
1206 void setPlayerReconnectHandlerIndex(uint32 __v, bool forceWrite=false);
1208 bool getFinished() const;
1209 void setFinished(bool __v, bool forceWrite=false);
1211 bool getMissionSuccess() const;
1212 void setMissionSuccess(bool __v, bool forceWrite=false);
1214 uint32 getDescIndex() const;
1215 void setDescIndex(uint32 __v, bool forceWrite=false);
1217 uint32 getWaitingQueueId() const;
1218 void setWaitingQueueId(uint32 __v, bool forceWrite=false);
1220 CActiveStepPD* getSteps(const uint32& __k);
1221 const CActiveStepPD* getSteps(const uint32& __k) const;
1222 std::map<uint32, CActiveStepPD>::iterator getStepsBegin();
1223 std::map<uint32, CActiveStepPD>::iterator getStepsEnd();
1224 std::map<uint32, CActiveStepPD>::const_iterator getStepsBegin() const;
1225 std::map<uint32, CActiveStepPD>::const_iterator getStepsEnd() const;
1226 const std::map<uint32, CActiveStepPD> & getSteps() const;
1227 CActiveStepPD* addToSteps(const uint32 &__k);
1228 void deleteFromSteps(const uint32 &__k);
1230 CMissionCompassPD* getCompass(const uint32& __k);
1231 const CMissionCompassPD* getCompass(const uint32& __k) const;
1232 std::map<uint32, CMissionCompassPD>::iterator getCompassBegin();
1233 std::map<uint32, CMissionCompassPD>::iterator getCompassEnd();
1234 std::map<uint32, CMissionCompassPD>::const_iterator getCompassBegin() const;
1235 std::map<uint32, CMissionCompassPD>::const_iterator getCompassEnd() const;
1236 const std::map<uint32, CMissionCompassPD> & getCompass() const;
1237 CMissionCompassPD* addToCompass(const uint32 &__k);
1238 void deleteFromCompass(const uint32 &__k);
1240 CDoneStepPD* getStepsDone(const uint32& __k);
1241 const CDoneStepPD* getStepsDone(const uint32& __k) const;
1242 std::map<uint32, CDoneStepPD>::iterator getStepsDoneBegin();
1243 std::map<uint32, CDoneStepPD>::iterator getStepsDoneEnd();
1244 std::map<uint32, CDoneStepPD>::const_iterator getStepsDoneBegin() const;
1245 std::map<uint32, CDoneStepPD>::const_iterator getStepsDoneEnd() const;
1246 const std::map<uint32, CDoneStepPD> & getStepsDone() const;
1247 CDoneStepPD* addToStepsDone(const uint32 &__k);
1248 void deleteFromStepsDone(const uint32 &__k);
1250 CMissionTeleportPD* getTeleports(const uint32& __k);
1251 const CMissionTeleportPD* getTeleports(const uint32& __k) const;
1252 std::map<uint32, CMissionTeleportPD>::iterator getTeleportsBegin();
1253 std::map<uint32, CMissionTeleportPD>::iterator getTeleportsEnd();
1254 std::map<uint32, CMissionTeleportPD>::const_iterator getTeleportsBegin() const;
1255 std::map<uint32, CMissionTeleportPD>::const_iterator getTeleportsEnd() const;
1256 const std::map<uint32, CMissionTeleportPD> & getTeleports() const;
1257 CMissionTeleportPD* addToTeleports(const uint32 &__k);
1258 void deleteFromTeleports(const uint32 &__k);
1260 CMissionInsidePlacePD* getInsidePlaces(const uint32& __k);
1261 const CMissionInsidePlacePD* getInsidePlaces(const uint32& __k) const;
1262 std::map<uint32, CMissionInsidePlacePD>::iterator getInsidePlacesBegin();
1263 std::map<uint32, CMissionInsidePlacePD>::iterator getInsidePlacesEnd();
1264 std::map<uint32, CMissionInsidePlacePD>::const_iterator getInsidePlacesBegin() const;
1265 std::map<uint32, CMissionInsidePlacePD>::const_iterator getInsidePlacesEnd() const;
1266 const std::map<uint32, CMissionInsidePlacePD> & getInsidePlaces() const;
1267 CMissionInsidePlacePD* addToInsidePlaces(const uint32 &__k);
1268 void deleteFromInsidePlaces(const uint32 &__k);
1270 CMissionOutsidePlacePD* getOutsidePlaces(const uint32& __k);
1271 const CMissionOutsidePlacePD* getOutsidePlaces(const uint32& __k) const;
1272 std::map<uint32, CMissionOutsidePlacePD>::iterator getOutsidePlacesBegin();
1273 std::map<uint32, CMissionOutsidePlacePD>::iterator getOutsidePlacesEnd();
1274 std::map<uint32, CMissionOutsidePlacePD>::const_iterator getOutsidePlacesBegin() const;
1275 std::map<uint32, CMissionOutsidePlacePD>::const_iterator getOutsidePlacesEnd() const;
1276 const std::map<uint32, CMissionOutsidePlacePD> & getOutsidePlaces() const;
1277 CMissionOutsidePlacePD* addToOutsidePlaces(const uint32 &__k);
1278 void deleteFromOutsidePlaces(const uint32 &__k);
1280 CHandledAIGroupPD* getHandledAIGroups(const uint32& __k);
1281 const CHandledAIGroupPD* getHandledAIGroups(const uint32& __k) const;
1282 std::map<uint32, CHandledAIGroupPD>::iterator getHandledAIGroupsBegin();
1283 std::map<uint32, CHandledAIGroupPD>::iterator getHandledAIGroupsEnd();
1284 std::map<uint32, CHandledAIGroupPD>::const_iterator getHandledAIGroupsBegin() const;
1285 std::map<uint32, CHandledAIGroupPD>::const_iterator getHandledAIGroupsEnd() const;
1286 const std::map<uint32, CHandledAIGroupPD> & getHandledAIGroups() const;
1287 CHandledAIGroupPD* addToHandledAIGroups(const uint32 &__k);
1288 void deleteFromHandledAIGroups(const uint32 &__k);
1290 CMissionContainerPD* getContainer();
1291 const CMissionContainerPD* getContainer() const;
1293 // @}
1296 public:
1298 /// \name Public Management methods
1299 // @{
1302 * Use these methods to create, load, unload and get
1303 * an object from database.
1308 * Clear whole object content but key (delete subobjects if there are, key is left unmodified), default clear value is 0.
1310 virtual void clear();
1313 * Cast base object to CMissionPD
1315 static CMissionPD* cast(RY_PDS::IPDBaseData* obj);
1318 * Cast base object to const CMissionPD
1320 static const CMissionPD* cast(const RY_PDS::IPDBaseData* obj);
1323 * Set user factory for this class (as class is indicated as derived, a home made constructor must be provided)
1325 static void setFactory(RY_PDS::TPDFactory userFactory);
1328 * Create an object of the CMissionPD class, and declare it to the PDS.
1330 static CMissionPD* create(const uint32 &TemplateId);
1332 // @}
1335 public:
1337 /// \name Public constructor
1338 // @{
1341 * This constructor is public to allow direct instanciation of the class
1344 CMissionPD();
1345 virtual ~CMissionPD();
1347 // @}
1350 public:
1352 /// \name Persistent methods declaration
1353 // @{
1355 virtual void apply(CPersistentDataRecord &__pdr);
1356 virtual void store(CPersistentDataRecord &__pdr) const;
1358 // @}
1361 protected:
1363 /// \name User defined init and release methods
1364 // @{
1367 * Overload those methods to implement init and release behaviours
1370 virtual void init();
1371 virtual void release();
1373 // @}
1376 protected:
1378 /// \name Attributes
1379 // @{
1382 * Don't modify those value manually, use accessors and mutators above
1385 uint32 _TemplateId;
1386 uint32 _MainMissionTemplateId;
1387 uint32 _Giver;
1388 float _HourLowerBound;
1389 float _HourUpperBound;
1390 CSeason::TSeason _Season;
1391 uint32 _MonoEndDate;
1392 uint32 _EndDate;
1393 uint32 _CriticalPartEndDate;
1394 uint32 _BeginDate;
1395 uint32 _FailureIndex;
1396 uint32 _CrashHandlerIndex;
1397 uint32 _PlayerReconnectHandlerIndex;
1398 bool _Finished;
1399 bool _MissionSuccess;
1400 uint32 _DescIndex;
1401 uint32 _WaitingQueueId;
1402 std::map<uint32, CActiveStepPD> _Steps;
1403 std::map<uint32, CMissionCompassPD> _Compass;
1404 std::map<uint32, CDoneStepPD> _StepsDone;
1405 std::map<uint32, CMissionTeleportPD> _Teleports;
1406 std::map<uint32, CMissionInsidePlacePD> _InsidePlaces;
1407 std::map<uint32, CMissionOutsidePlacePD> _OutsidePlaces;
1408 std::map<uint32, CHandledAIGroupPD> _HandledAIGroups;
1409 CMissionContainerPD* _Container;
1411 // @}
1414 protected:
1416 /// \name Internal Management methods
1417 // @{
1419 virtual void pds__init(const uint32 &TemplateId);
1420 virtual void pds__destroy();
1421 virtual void pds__fetch(RY_PDS::CPData &data);
1422 virtual void pds__register();
1423 virtual void pds__registerAttributes();
1424 virtual void pds__unregister();
1425 virtual void pds__unregisterAttributes();
1426 void pds__setParent(CMissionContainerPD* __parent);
1427 void pds__setParentUnnotified(CMissionContainerPD* __parent);
1428 virtual void pds__notifyInit();
1429 virtual void pds__notifyRelease();
1430 static void pds_static__init();
1432 // @}
1435 protected:
1437 /// \name Default Factory and Fetch methods
1438 // @{
1440 static void pds_static__setFactory(RY_PDS::TPDFactory userFactory);
1441 static bool _FactoryInitialised;
1442 static RY_PDS::CIndexAllocator _IndexAllocator;
1443 static void pds_static__fetch(RY_PDS::IPDBaseData *object, RY_PDS::CPData &data);
1445 // @}
1448 protected:
1450 friend class CMissionContainerPD;
1451 friend class CActiveStepPD;
1452 friend class CDoneStepPD;
1453 friend class CHandledAIGroupPD;
1454 friend class CMissionCompassPD;
1455 friend class CMissionInsidePlacePD;
1456 friend class CMissionOutsidePlacePD;
1457 friend class CMissionTeleportPD;
1458 friend class RY_PDS::CPDSLib;
1459 friend void EGSPD::init(uint32);
1462 /** CMissionGuildPD
1463 * defined at entities_game_service/pd_scripts/mission.pds:135
1465 class CMissionGuildPD : public CMissionPD
1468 public:
1470 /// \name Public Management methods
1471 // @{
1474 * Use these methods to create, load, unload and get
1475 * an object from database.
1480 * Clear whole object content but key (delete subobjects if there are, key is left unmodified), default clear value is 0.
1482 virtual void clear();
1485 * Cast base object to CMissionGuildPD
1487 static CMissionGuildPD* cast(RY_PDS::IPDBaseData* obj);
1490 * Cast base object to const CMissionGuildPD
1492 static const CMissionGuildPD* cast(const RY_PDS::IPDBaseData* obj);
1495 * Set user factory for this class (as class is indicated as derived, a home made constructor must be provided)
1497 static void setFactory(RY_PDS::TPDFactory userFactory);
1500 * Create an object of the CMissionGuildPD class, and declare it to the PDS.
1502 static CMissionGuildPD* create(const uint32 &TemplateId);
1504 // @}
1507 public:
1509 /// \name Public constructor
1510 // @{
1513 * This constructor is public to allow direct instanciation of the class
1516 CMissionGuildPD();
1517 virtual ~CMissionGuildPD();
1519 // @}
1522 public:
1524 /// \name Persistent methods declaration
1525 // @{
1527 virtual void apply(CPersistentDataRecord &__pdr);
1528 virtual void store(CPersistentDataRecord &__pdr) const;
1530 // @}
1533 protected:
1535 /// \name User defined init and release methods
1536 // @{
1539 * Overload those methods to implement init and release behaviours
1542 virtual void init();
1543 virtual void release();
1545 // @}
1548 protected:
1550 /// \name Internal Management methods
1551 // @{
1553 virtual void pds__init(const uint32 &TemplateId);
1554 virtual void pds__destroy();
1555 virtual void pds__fetch(RY_PDS::CPData &data);
1556 virtual void pds__register();
1557 virtual void pds__registerAttributes();
1558 virtual void pds__unregister();
1559 virtual void pds__unregisterAttributes();
1560 virtual void pds__notifyInit();
1561 virtual void pds__notifyRelease();
1562 static void pds_static__init();
1564 // @}
1567 protected:
1569 /// \name Default Factory and Fetch methods
1570 // @{
1572 static void pds_static__setFactory(RY_PDS::TPDFactory userFactory);
1573 static bool _FactoryInitialised;
1574 static RY_PDS::CIndexAllocator _IndexAllocator;
1576 // @}
1579 protected:
1581 friend class RY_PDS::CPDSLib;
1582 friend void EGSPD::init(uint32);
1585 /** CMissionTeamPD
1586 * defined at entities_game_service/pd_scripts/mission.pds:139
1588 class CMissionTeamPD : public CMissionPD
1591 public:
1593 /// \name Public Management methods
1594 // @{
1597 * Use these methods to create, load, unload and get
1598 * an object from database.
1603 * Clear whole object content but key (delete subobjects if there are, key is left unmodified), default clear value is 0.
1605 virtual void clear();
1608 * Cast base object to CMissionTeamPD
1610 static CMissionTeamPD* cast(RY_PDS::IPDBaseData* obj);
1613 * Cast base object to const CMissionTeamPD
1615 static const CMissionTeamPD* cast(const RY_PDS::IPDBaseData* obj);
1618 * Set user factory for this class (as class is indicated as derived, a home made constructor must be provided)
1620 static void setFactory(RY_PDS::TPDFactory userFactory);
1623 * Create an object of the CMissionTeamPD class, and declare it to the PDS.
1625 static CMissionTeamPD* create(const uint32 &TemplateId);
1627 // @}
1630 public:
1632 /// \name Public constructor
1633 // @{
1636 * This constructor is public to allow direct instanciation of the class
1639 CMissionTeamPD();
1640 virtual ~CMissionTeamPD();
1642 // @}
1645 public:
1647 /// \name Persistent methods declaration
1648 // @{
1650 virtual void apply(CPersistentDataRecord &__pdr);
1651 virtual void store(CPersistentDataRecord &__pdr) const;
1653 // @}
1656 protected:
1658 /// \name User defined init and release methods
1659 // @{
1662 * Overload those methods to implement init and release behaviours
1665 virtual void init();
1666 virtual void release();
1668 // @}
1671 protected:
1673 /// \name Internal Management methods
1674 // @{
1676 virtual void pds__init(const uint32 &TemplateId);
1677 virtual void pds__destroy();
1678 virtual void pds__fetch(RY_PDS::CPData &data);
1679 virtual void pds__register();
1680 virtual void pds__registerAttributes();
1681 virtual void pds__unregister();
1682 virtual void pds__unregisterAttributes();
1683 virtual void pds__notifyInit();
1684 virtual void pds__notifyRelease();
1685 static void pds_static__init();
1687 // @}
1690 protected:
1692 /// \name Default Factory and Fetch methods
1693 // @{
1695 static void pds_static__setFactory(RY_PDS::TPDFactory userFactory);
1696 static bool _FactoryInitialised;
1697 static RY_PDS::CIndexAllocator _IndexAllocator;
1699 // @}
1702 protected:
1704 friend class RY_PDS::CPDSLib;
1705 friend void EGSPD::init(uint32);
1708 /** CMissionSoloPD
1709 * defined at entities_game_service/pd_scripts/mission.pds:144
1711 class CMissionSoloPD : public CMissionPD
1714 public:
1716 /// \name Public Management methods
1717 // @{
1720 * Use these methods to create, load, unload and get
1721 * an object from database.
1726 * Clear whole object content but key (delete subobjects if there are, key is left unmodified), default clear value is 0.
1728 virtual void clear();
1731 * Cast base object to CMissionSoloPD
1733 static CMissionSoloPD* cast(RY_PDS::IPDBaseData* obj);
1736 * Cast base object to const CMissionSoloPD
1738 static const CMissionSoloPD* cast(const RY_PDS::IPDBaseData* obj);
1741 * Set user factory for this class (as class is indicated as derived, a home made constructor must be provided)
1743 static void setFactory(RY_PDS::TPDFactory userFactory);
1746 * Create an object of the CMissionSoloPD class, and declare it to the PDS.
1748 static CMissionSoloPD* create(const uint32 &TemplateId);
1750 // @}
1753 public:
1755 /// \name Public constructor
1756 // @{
1759 * This constructor is public to allow direct instanciation of the class
1762 CMissionSoloPD();
1763 virtual ~CMissionSoloPD();
1765 // @}
1768 public:
1770 /// \name Persistent methods declaration
1771 // @{
1773 virtual void apply(CPersistentDataRecord &__pdr);
1774 virtual void store(CPersistentDataRecord &__pdr) const;
1776 // @}
1779 protected:
1781 /// \name User defined init and release methods
1782 // @{
1785 * Overload those methods to implement init and release behaviours
1788 virtual void init();
1789 virtual void release();
1791 // @}
1794 protected:
1796 /// \name Internal Management methods
1797 // @{
1799 virtual void pds__init(const uint32 &TemplateId);
1800 virtual void pds__destroy();
1801 virtual void pds__fetch(RY_PDS::CPData &data);
1802 virtual void pds__register();
1803 virtual void pds__registerAttributes();
1804 virtual void pds__unregister();
1805 virtual void pds__unregisterAttributes();
1806 virtual void pds__notifyInit();
1807 virtual void pds__notifyRelease();
1808 static void pds_static__init();
1810 // @}
1813 protected:
1815 /// \name Default Factory and Fetch methods
1816 // @{
1818 static void pds_static__setFactory(RY_PDS::TPDFactory userFactory);
1819 static bool _FactoryInitialised;
1820 static RY_PDS::CIndexAllocator _IndexAllocator;
1822 // @}
1825 protected:
1827 friend class RY_PDS::CPDSLib;
1828 friend void EGSPD::init(uint32);
1831 /** CMissionContainerPD
1832 * defined at entities_game_service/pd_scripts/mission.pds:148
1834 class CMissionContainerPD : public RY_PDS::IPDBaseData
1837 public:
1839 /// \name Accessors and Mutators methods
1840 // @{
1843 * Use these methods to change a value, add or delete elements.
1846 NLMISC::CEntityId getCharId() const;
1848 CMissionPD* getMissions(const uint32& __k);
1849 const CMissionPD* getMissions(const uint32& __k) const;
1850 std::map<uint32, CMissionPD*>::iterator getMissionsBegin();
1851 std::map<uint32, CMissionPD*>::iterator getMissionsEnd();
1852 std::map<uint32, CMissionPD*>::const_iterator getMissionsBegin() const;
1853 std::map<uint32, CMissionPD*>::const_iterator getMissionsEnd() const;
1854 const std::map<uint32, CMissionPD*> & getMissions() const;
1855 void setMissions(CMissionPD* __v);
1856 void deleteFromMissions(const uint32 &__k);
1858 // @}
1861 public:
1863 /// \name Public Management methods
1864 // @{
1867 * Use these methods to create, load, unload and get
1868 * an object from database.
1873 * Clear whole object content but key (delete subobjects if there are, key is left unmodified), default clear value is 0.
1875 void clear();
1878 * Cast base object to CMissionContainerPD
1880 static CMissionContainerPD* cast(RY_PDS::IPDBaseData* obj);
1883 * Cast base object to const CMissionContainerPD
1885 static const CMissionContainerPD* cast(const RY_PDS::IPDBaseData* obj);
1888 * Create an object of the CMissionContainerPD class, and declare it to the PDS.
1890 static CMissionContainerPD* create(const NLMISC::CEntityId &CharId);
1893 * Destroy an object from the PDS. Caution! Object will no longer exist in database.
1894 * Also children (that is objects that belong to this object) are also destroyed.
1896 static void remove(const NLMISC::CEntityId& CharId);
1899 * Retrieve an object from the database.
1900 * Data are sent asynchronously, so the load callback is called when data are ready.
1901 * Use get() to access to the loaded object.
1903 static void load(const NLMISC::CEntityId& CharId);
1906 * Setup load callback so client is warned that load succeded or failed.
1908 static void setLoadCallback(void (*callback)(const NLMISC::CEntityId& key, CMissionContainerPD* object));
1911 * Unload an object from the client memory. Object still exists in database and can be retrieved again using load.
1913 static void unload(const NLMISC::CEntityId &CharId);
1916 * Get an object in client. Object must have been previously loaded from database with a load.
1918 static CMissionContainerPD* get(const NLMISC::CEntityId &CharId);
1921 * Return the begin iterator of the global map of CMissionContainerPD
1923 static std::map<NLMISC::CEntityId, CMissionContainerPD*>::iterator begin();
1926 * Return the end iterator of the global map of CMissionContainerPD
1928 static std::map<NLMISC::CEntityId, CMissionContainerPD*>::iterator end();
1930 // @}
1933 public:
1935 /// \name Public constructor
1936 // @{
1939 * This constructor is public to allow direct instanciation of the class
1942 CMissionContainerPD();
1943 ~CMissionContainerPD();
1945 // @}
1948 public:
1950 /// \name Persistent methods declaration
1951 // @{
1953 void apply(CPersistentDataRecord &__pdr);
1954 void store(CPersistentDataRecord &__pdr) const;
1956 // @}
1959 protected:
1961 /// \name Attributes
1962 // @{
1965 * Don't modify those value manually, use accessors and mutators above
1968 NLMISC::CEntityId _CharId;
1969 std::map<uint32, CMissionPD*> _Missions;
1971 // @}
1974 protected:
1976 /// \name Internal Management methods
1977 // @{
1979 void pds__init(const NLMISC::CEntityId &CharId);
1980 void pds__destroy();
1981 void pds__fetch(RY_PDS::CPData &data);
1982 void pds__register();
1983 void pds__registerAttributes();
1984 void pds__unregister();
1985 void pds__unregisterAttributes();
1986 void pds__notifyInit();
1987 void pds__notifyRelease();
1988 void pds__unlinkMissions(uint32 __k);
1989 static void pds_static__init();
1991 // @}
1994 protected:
1996 static std::map<NLMISC::CEntityId,CMissionContainerPD*> _Map;
1998 protected:
2000 /// \name Default Factory and Fetch methods
2001 // @{
2003 static void pds_static__setFactory(RY_PDS::TPDFactory userFactory);
2004 static bool _FactoryInitialised;
2005 static void pds_static__notifyFailure(uint64 key);
2006 static void (*__pds__LoadCallback)(const NLMISC::CEntityId& key, CMissionContainerPD* object);
2007 static RY_PDS::CIndexAllocator _IndexAllocator;
2008 static RY_PDS::IPDBaseData* pds_static__factory();
2009 static void pds_static__fetch(RY_PDS::IPDBaseData *object, RY_PDS::CPData &data);
2011 // @}
2014 protected:
2016 friend class CMissionPD;
2017 friend class RY_PDS::CPDSLib;
2018 friend void EGSPD::init(uint32);
2022 } // End of EGSPD
2024 #endif