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/>.
20 #include "village_sheet.h"
22 #include "nel/georges/u_form_elm.h"
24 using namespace NLGEORGES
;
27 //=====================================================================================================================
28 /**Tool fct to extract a value from a sheet, and to display a warning if it failed.
30 template <class T
> static void GetVillageFormValue(const NLGEORGES::UFormElm
&item
, T
&destItem
, const char *name
)
33 if (!item
.getValueByName(destItem
, name
)) nlwarning("VillageSheet : can't get %s value.", name
);
36 //=======================================================================
37 void CVillageIG::build(const NLGEORGES::UFormElm
&item
)
39 GetVillageFormValue(item
, IgName
, "IgName");
40 GetVillageFormValue(item
, ParentName
, "ParentName");
43 //=======================================================================
44 void CVillageSheet::build(const NLGEORGES::UFormElm
&item
)
46 GetVillageFormValue(item
, Zone
, "Zone");
47 GetVillageFormValue(item
, Altitude
, "Altitude");
48 GetVillageFormValue(item
, ForceLoadDist
, "ForceLoadDist");
49 GetVillageFormValue(item
, LoadDist
, "LoadDist"),
50 GetVillageFormValue(item
, UnloadDist
, "UnloadDist");
51 GetVillageFormValue(item
, CenterX
, "CenterX");
52 GetVillageFormValue(item
, CenterY
, "CenterY");
53 GetVillageFormValue(item
, Width
, "Width");
54 GetVillageFormValue(item
, Height
, "Height");
55 GetVillageFormValue(item
, Rotation
, "Rotation");
58 if(item
.getNodeByName (&elm
, "IgList") && elm
)
62 nlverify (elm
->getArraySize (numIGs
));
66 for(uint k
= 0; k
< numIGs
; ++k
)
68 const UFormElm
*igForm
;
69 if (elm
->getArrayNode (&igForm
, k
) && igForm
)
71 IGs
[k
].build(*igForm
);
76 //=======================================================================
77 void CVillageSheet::serial(NLMISC::IStream
&f
)
81 f
.serial(ForceLoadDist
);
93 CVillageSheet::CVillageSheet() : Altitude(0),