Linux multi-monitor fullscreen support
[ryzomcore.git] / ryzom / client / src / client_sheets / fx_sheet.h
blobc230f62eecf908f3514d1dd301af61d4d9b57380
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/>.
20 #ifndef CL_FX_SHEET_H
21 #define CL_FX_SHEET_H
24 /////////////
25 // INCLUDE //
26 /////////////
27 #include "nel/misc/types_nl.h"
28 #include "entity_sheet.h"
29 #include <vector>
30 #include <string>
33 ///////////
34 // USING //
35 ///////////
38 ///////////
39 // CLASS //
40 ///////////
41 namespace NLGEORGES
43 class UFormElm;
45 /**
46 * Class to manage the FX sheet.
48 * CFxCL used a part of this sheet class:
49 * In the first item in PSList:
50 * - PSName
51 * - 'Standard' user params 0 and 1 (see CFXSheet::CPSStruct::StandardIndex)
53 * \author Guillaume PUZIN (GUIGUI)
54 * \author Nevrax France
55 * \date 2001
57 class CFXSheet : public CEntitySheet
59 public:
60 class CPSStruct
62 public:
63 class CPSUserParamStruct
65 public:
66 /// Value for the USer Param 0
67 float UserParam0;
68 /// Value for the USer Param 1
69 float UserParam1;
70 /// Value for the USer Param 2
71 float UserParam2;
72 /// Value for the USer Param 3
73 float UserParam3;
75 /// Constructor
76 CPSUserParamStruct()
78 UserParam0 = 0.f;
79 UserParam1 = 0.f;
80 UserParam2 = 0.f;
81 UserParam3 = 0.f;
84 /// Serialize character sheet into binary data file.
85 virtual void serial(NLMISC::IStream &f)
87 f.serial(UserParam0);
88 f.serial(UserParam1);
89 f.serial(UserParam2);
90 f.serial(UserParam3);
94 /// PS Filename.
95 std::string PSName;
96 /// PS launch according the animation or at the beginning.
97 bool Anim;
98 /// Parameters by Power.
99 std::vector<CPSUserParamStruct> Power;
100 /// Index of the 'Standard' power
101 static uint StandardIndex;
104 /// Constructor
105 CPSStruct()
107 Anim = false;
110 /// Serialize character sheet into binary data file.
111 virtual void serial(NLMISC::IStream &f)
113 f.serial(PSName);
114 f.serial(Anim);
115 f.serialCont(Power);
119 std::vector<std::string> TrailList;
120 std::vector<CPSStruct> PSList;
122 /// Constructor
123 CFXSheet();
125 /// Build the sheet from an external script.
126 virtual void build(const NLGEORGES::UFormElm &item);
128 /// Serialize character sheet into binary data file.
129 virtual void serial(NLMISC::IStream &f);
133 #endif // CL_FX_SHEET_H
135 /* End of fx_sheet.h */