1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
2 // Copyright (C) 2010 Winch Gate Property Limited
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.
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/>.
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>
28 #include <pd_lib/pd_lib.h>
29 #include <game_share/persistent_data.h>
32 #include "mission_manager/mission_base_behaviour.h"
38 // Forward declarations
47 /** CActiveStepStatePD
48 * defined at entities_game_service/pd_scripts/mission.pds:6
50 class CActiveStepStatePD
: public RY_PDS::IPDBaseData
55 /// \name Accessors and Mutators methods
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;
75 /// \name Public Management methods
79 * Use these methods to create, load, unload and get
80 * an object from database.
85 * Clear whole object content but key (delete subobjects if there are, key is left unmodified), default clear value is 0.
90 * Cast base object to CActiveStepStatePD
92 static CActiveStepStatePD
* cast(RY_PDS::IPDBaseData
* obj
);
95 * Cast base object to const CActiveStepStatePD
97 static const CActiveStepStatePD
* cast(const RY_PDS::IPDBaseData
* obj
);
104 /// \name Public constructor
108 * This constructor is public to allow direct instanciation of the class
111 CActiveStepStatePD();
112 ~CActiveStepStatePD();
119 /// \name Persistent methods declaration
122 void apply(CPersistentDataRecord
&__pdr
);
123 void store(CPersistentDataRecord
&__pdr
) const;
134 * Don't modify those value manually, use accessors and mutators above
139 CActiveStepPD
* _Step
;
146 /// \name Internal Management methods
149 void pds__init(const uint32
&Index
);
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();
167 /// \name Default Factory and Fetch methods
170 static RY_PDS::CIndexAllocator _IndexAllocator
;
177 friend class CActiveStepPD
;
178 friend class CMissionContainerPD
;
179 friend class CMissionPD
;
180 friend class RY_PDS::CPDSLib
;
181 friend void EGSPD::init(uint32
);
185 * defined at entities_game_service/pd_scripts/mission.pds:13
187 class CActiveStepPD
: public RY_PDS::IPDBaseData
192 /// \name Accessors and Mutators methods
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;
219 /// \name Public Management methods
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.
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
);
248 /// \name Public constructor
252 * This constructor is public to allow direct instanciation of the class
263 /// \name Persistent methods declaration
266 void apply(CPersistentDataRecord
&__pdr
);
267 void store(CPersistentDataRecord
&__pdr
) const;
278 * Don't modify those value manually, use accessors and mutators above
281 uint32 _IndexInTemplate
;
282 std::map
<uint32
, CActiveStepStatePD
> _States
;
283 CMissionPD
* _Mission
;
290 /// \name Internal Management methods
293 void pds__init(const uint32
&IndexInTemplate
);
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();
311 /// \name Default Factory and Fetch methods
314 static RY_PDS::CIndexAllocator _IndexAllocator
;
321 friend class CMissionContainerPD
;
322 friend class CMissionPD
;
323 friend class CActiveStepStatePD
;
324 friend class RY_PDS::CPDSLib
;
325 friend void EGSPD::init(uint32
);
329 * defined at entities_game_service/pd_scripts/mission.pds:20
331 class CDoneStepPD
: public RY_PDS::IPDBaseData
336 /// \name Accessors and Mutators methods
340 * Use these methods to change a value, add or delete elements.
343 uint32
getIndex() const;
345 CMissionPD
* getMission();
346 const CMissionPD
* getMission() const;
353 /// \name Public Management methods
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.
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
);
382 /// \name Public constructor
386 * This constructor is public to allow direct instanciation of the class
397 /// \name Persistent methods declaration
400 void apply(CPersistentDataRecord
&__pdr
);
401 void store(CPersistentDataRecord
&__pdr
) const;
412 * Don't modify those value manually, use accessors and mutators above
416 CMissionPD
* _Mission
;
423 /// \name Internal Management methods
426 void pds__init(const uint32
&Index
);
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();
444 /// \name Default Factory and Fetch methods
447 static RY_PDS::CIndexAllocator _IndexAllocator
;
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
468 /// \name Accessors and Mutators methods
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;
491 /// \name Public Management methods
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.
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
);
520 /// \name User defined attributes and methods
524 * This code was verbatim copied from source file
527 // User code appended in mission.pds
529 std::string NameString
;
535 /// \name Public constructor
539 * This constructor is public to allow direct instanciation of the class
543 ~CMissionCompassPD();
550 /// \name Persistent methods declaration
553 void apply(CPersistentDataRecord
&__pdr
);
554 void store(CPersistentDataRecord
&__pdr
) const;
565 * Don't modify those value manually, use accessors and mutators above
571 CMissionPD
* _Mission
;
578 /// \name Internal Management methods
581 void pds__init(const uint32
&Index
);
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();
599 /// \name Default Factory and Fetch methods
602 static RY_PDS::CIndexAllocator _IndexAllocator
;
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
623 /// \name Accessors and Mutators methods
627 * Use these methods to change a value, add or delete elements.
630 uint32
getIndex() const;
632 CMissionPD
* getMission();
633 const CMissionPD
* getMission() const;
640 /// \name Public Management methods
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.
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
);
669 /// \name Public constructor
673 * This constructor is public to allow direct instanciation of the class
676 CMissionTeleportPD();
677 ~CMissionTeleportPD();
684 /// \name Persistent methods declaration
687 void apply(CPersistentDataRecord
&__pdr
);
688 void store(CPersistentDataRecord
&__pdr
) const;
699 * Don't modify those value manually, use accessors and mutators above
703 CMissionPD
* _Mission
;
710 /// \name Internal Management methods
713 void pds__init(const uint32
&Index
);
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();
731 /// \name Default Factory and Fetch methods
734 static RY_PDS::CIndexAllocator _IndexAllocator
;
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
755 /// \name Accessors and Mutators methods
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;
775 /// \name Public Management methods
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.
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
);
804 /// \name Public constructor
808 * This constructor is public to allow direct instanciation of the class
811 CMissionInsidePlacePD();
812 ~CMissionInsidePlacePD();
819 /// \name Persistent methods declaration
822 void apply(CPersistentDataRecord
&__pdr
);
823 void store(CPersistentDataRecord
&__pdr
) const;
834 * Don't modify those value manually, use accessors and mutators above
839 CMissionPD
* _Mission
;
846 /// \name Internal Management methods
849 void pds__init(const uint32
&Alias
);
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();
867 /// \name Default Factory and Fetch methods
870 static RY_PDS::CIndexAllocator _IndexAllocator
;
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
891 /// \name Accessors and Mutators methods
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;
911 /// \name Public Management methods
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.
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
);
940 /// \name Public constructor
944 * This constructor is public to allow direct instanciation of the class
947 CMissionOutsidePlacePD();
948 ~CMissionOutsidePlacePD();
955 /// \name Persistent methods declaration
958 void apply(CPersistentDataRecord
&__pdr
);
959 void store(CPersistentDataRecord
&__pdr
) const;
970 * Don't modify those value manually, use accessors and mutators above
975 CMissionPD
* _Mission
;
982 /// \name Internal Management methods
985 void pds__init(const uint32
&Alias
);
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();
1003 /// \name Default Factory and Fetch methods
1006 static RY_PDS::CIndexAllocator _IndexAllocator
;
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
1027 /// \name Accessors and Mutators methods
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;
1047 /// \name Public Management methods
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.
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
);
1076 /// \name Public constructor
1080 * This constructor is public to allow direct instanciation of the class
1083 CHandledAIGroupPD();
1084 ~CHandledAIGroupPD();
1091 /// \name Persistent methods declaration
1094 void apply(CPersistentDataRecord
&__pdr
);
1095 void store(CPersistentDataRecord
&__pdr
) const;
1102 /// \name Attributes
1106 * Don't modify those value manually, use accessors and mutators above
1110 uint32 _DespawnTime
;
1111 CMissionPD
* _Mission
;
1118 /// \name Internal Management methods
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();
1139 /// \name Default Factory and Fetch methods
1142 static RY_PDS::CIndexAllocator _IndexAllocator
;
1149 friend class CMissionContainerPD
;
1150 friend class CMissionPD
;
1151 friend class RY_PDS::CPDSLib
;
1152 friend void EGSPD::init(uint32
);
1156 * defined at entities_game_service/pd_scripts/mission.pds:75
1158 class CMissionPD
: public RY_PDS::IPDBaseData
, public CMissionBaseBehaviour
1163 /// \name Accessors and Mutators methods
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;
1298 /// \name Public Management methods
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
);
1337 /// \name Public constructor
1341 * This constructor is public to allow direct instanciation of the class
1345 virtual ~CMissionPD();
1352 /// \name Persistent methods declaration
1355 virtual void apply(CPersistentDataRecord
&__pdr
);
1356 virtual void store(CPersistentDataRecord
&__pdr
) const;
1363 /// \name User defined init and release methods
1367 * Overload those methods to implement init and release behaviours
1370 virtual void init();
1371 virtual void release();
1378 /// \name Attributes
1382 * Don't modify those value manually, use accessors and mutators above
1386 uint32 _MainMissionTemplateId
;
1388 float _HourLowerBound
;
1389 float _HourUpperBound
;
1390 CSeason::TSeason _Season
;
1391 uint32 _MonoEndDate
;
1393 uint32 _CriticalPartEndDate
;
1395 uint32 _FailureIndex
;
1396 uint32 _CrashHandlerIndex
;
1397 uint32 _PlayerReconnectHandlerIndex
;
1399 bool _MissionSuccess
;
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
;
1416 /// \name Internal Management methods
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();
1437 /// \name Default Factory and Fetch methods
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
);
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
);
1463 * defined at entities_game_service/pd_scripts/mission.pds:135
1465 class CMissionGuildPD
: public CMissionPD
1470 /// \name Public Management methods
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
);
1509 /// \name Public constructor
1513 * This constructor is public to allow direct instanciation of the class
1517 virtual ~CMissionGuildPD();
1524 /// \name Persistent methods declaration
1527 virtual void apply(CPersistentDataRecord
&__pdr
);
1528 virtual void store(CPersistentDataRecord
&__pdr
) const;
1535 /// \name User defined init and release methods
1539 * Overload those methods to implement init and release behaviours
1542 virtual void init();
1543 virtual void release();
1550 /// \name Internal Management methods
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();
1569 /// \name Default Factory and Fetch methods
1572 static void pds_static__setFactory(RY_PDS::TPDFactory userFactory
);
1573 static bool _FactoryInitialised
;
1574 static RY_PDS::CIndexAllocator _IndexAllocator
;
1581 friend class RY_PDS::CPDSLib
;
1582 friend void EGSPD::init(uint32
);
1586 * defined at entities_game_service/pd_scripts/mission.pds:139
1588 class CMissionTeamPD
: public CMissionPD
1593 /// \name Public Management methods
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
);
1632 /// \name Public constructor
1636 * This constructor is public to allow direct instanciation of the class
1640 virtual ~CMissionTeamPD();
1647 /// \name Persistent methods declaration
1650 virtual void apply(CPersistentDataRecord
&__pdr
);
1651 virtual void store(CPersistentDataRecord
&__pdr
) const;
1658 /// \name User defined init and release methods
1662 * Overload those methods to implement init and release behaviours
1665 virtual void init();
1666 virtual void release();
1673 /// \name Internal Management methods
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();
1692 /// \name Default Factory and Fetch methods
1695 static void pds_static__setFactory(RY_PDS::TPDFactory userFactory
);
1696 static bool _FactoryInitialised
;
1697 static RY_PDS::CIndexAllocator _IndexAllocator
;
1704 friend class RY_PDS::CPDSLib
;
1705 friend void EGSPD::init(uint32
);
1709 * defined at entities_game_service/pd_scripts/mission.pds:144
1711 class CMissionSoloPD
: public CMissionPD
1716 /// \name Public Management methods
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
);
1755 /// \name Public constructor
1759 * This constructor is public to allow direct instanciation of the class
1763 virtual ~CMissionSoloPD();
1770 /// \name Persistent methods declaration
1773 virtual void apply(CPersistentDataRecord
&__pdr
);
1774 virtual void store(CPersistentDataRecord
&__pdr
) const;
1781 /// \name User defined init and release methods
1785 * Overload those methods to implement init and release behaviours
1788 virtual void init();
1789 virtual void release();
1796 /// \name Internal Management methods
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();
1815 /// \name Default Factory and Fetch methods
1818 static void pds_static__setFactory(RY_PDS::TPDFactory userFactory
);
1819 static bool _FactoryInitialised
;
1820 static RY_PDS::CIndexAllocator _IndexAllocator
;
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
1839 /// \name Accessors and Mutators methods
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
);
1863 /// \name Public Management methods
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.
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();
1935 /// \name Public constructor
1939 * This constructor is public to allow direct instanciation of the class
1942 CMissionContainerPD();
1943 ~CMissionContainerPD();
1950 /// \name Persistent methods declaration
1953 void apply(CPersistentDataRecord
&__pdr
);
1954 void store(CPersistentDataRecord
&__pdr
) const;
1961 /// \name Attributes
1965 * Don't modify those value manually, use accessors and mutators above
1968 NLMISC::CEntityId _CharId
;
1969 std::map
<uint32
, CMissionPD
*> _Missions
;
1976 /// \name Internal Management methods
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();
1996 static std::map
<NLMISC::CEntityId
,CMissionContainerPD
*> _Map
;
2000 /// \name Default Factory and Fetch methods
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
);
2016 friend class CMissionPD
;
2017 friend class RY_PDS::CPDSLib
;
2018 friend void EGSPD::init(uint32
);