Resolve "Toggle Free Look with Hotkey"
[ryzomcore.git] / ryzom / client / src / 3d_notes.h
bloba794a89855a6b72fa532ee0c14232abeea981957
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 CL_3D_NOTES_H
19 #define CL_3D_NOTES_H
21 #include "nel/misc/types_nl.h"
23 #include "interface_v3/group_in_scene_bubble.h"
25 /**
26 * Class to manage 3d notes
27 * \author Vianney Lecroart
28 * \author Nevrax France
29 * \date 2003
31 class C3DNotes
33 public:
35 C3DNotes()
37 NextId = 1;
38 NotesAvailable = false;
41 void init();
42 void update();
43 void release();
45 void addNote(const NLMISC::CVector &pos, const std::string &note, sint id = 0);
46 void removeNote(sint id);
48 private:
50 void saveNotes();
52 NLMISC::CConfigFile NotesConfigFile;
54 // true if the config file is ok and notes are ready to use
55 bool NotesAvailable;
57 struct CNote
59 CNote(const NLMISC::CVector &pos, const std::string &note, sint id);
60 ~CNote();
62 sint Id;
63 NLMISC::CVector Position;
64 std::string Note;
65 CGroupInSceneBubble *Bubble;
68 std::list<CNote> Notes;
70 sint NextId;
72 friend struct commands_displayNotesClass;
73 friend struct commands_gotoNoteClass;
74 friend void cbNotesChanged();
78 #endif // CL_3D_NOTES_H
80 /* End of 3d_notes.h */