Resolve "Toggle Free Look with Hotkey"
[ryzomcore.git] / ryzom / client / src / client_sheets / village_sheet.cpp
blobd4f8c98368b3cb8b2fb1b7a9b40620c240675984
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 #include "stdpch.h"
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)
32 nlassert(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");
57 const UFormElm *elm;
58 if(item.getNodeByName (&elm, "IgList") && elm)
60 // Get number of ig
61 uint numIGs;
62 nlverify (elm->getArraySize (numIGs));
63 IGs.resize(numIGs);
65 // For each ig
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)
79 f.serial(Zone);
80 f.serial(Altitude);
81 f.serial(ForceLoadDist);
82 f.serial(LoadDist);
83 f.serial(UnloadDist);
84 f.serial(CenterX);
85 f.serial(CenterY);
86 f.serial(Width);
87 f.serial(Height);
88 f.serial(Rotation);
89 f.serial(Name);
90 f.serialCont(IGs);
93 CVillageSheet::CVillageSheet() : Altitude(0),
94 ForceLoadDist(0),
95 LoadDist(0),
96 UnloadDist(0),
97 CenterX(0),
98 CenterY(0),
99 Width(0),
100 Height(0),
101 Rotation(0)