1 /***************************************************************************
2  *   Copyright (C) 2005-2019 by the FIFE team                              *
3  *   http://www.fifengine.net                                              *
4  *   This file is part of FIFE.                                            *
5  *                                                                         *
6  *   FIFE is free software; you can redistribute it and/or                 *
7  *   modify it under the terms of the GNU Lesser General Public            *
8  *   License as published by the Free Software Foundation; either          *
9  *   version 2.1 of the License, or (at your option) any later version.    *
10  *                                                                         *
11  *   This library is distributed in the hope that it will be useful,       *
12  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
13  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU     *
14  *   Lesser General Public License for more details.                       *
15  *                                                                         *
16  *   You should have received a copy of the GNU Lesser General Public      *
17  *   License along with this library; if not, write to the                 *
18  *   Free Software Foundation, Inc.,                                       *
19  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA          *
20  ***************************************************************************/
21 
22 #ifndef FIFE_MODULES_H
23 #define FIFE_MODULES_H
24 
25 // Standard C++ library includes
26 
27 // 3rd party library includes
28 
29 // FIFE includes
30 // These includes are split up in two parts, separated by one empty line
31 // First block: files included from the FIFE root src directory
32 // Second block: files included from the same folder
33 
34 /** Modules available for logging
35  */
36 enum logmodule_t {
37 	LM_CORE = -1,
38 	LM_AUDIO,
39 	LM_CONTROLLER,
40 	LM_EVTCHANNEL,
41 	LM_GUI,
42 	LM_CONSOLE,
43 	LM_LOADERS,
44 	LM_NATIVE_LOADERS,
45 	LM_FO_LOADERS,
46     LM_SAVERS,
47     LM_NATIVE_SAVERS,
48 	LM_MODEL,
49 	LM_STRUCTURES,
50 	LM_INSTANCE,
51 	LM_LOCATION,
52 	LM_METAMODEL,
53 	LM_CELLGRID,
54 	LM_SQUAREGRID,
55 	LM_HEXGRID,
56 	LM_PATHFINDER,
57 	LM_UTIL,
58 	LM_RESMGR,
59 	LM_VFS,
60 	LM_VIDEO,
61 	LM_VIEW,
62 	LM_CAMERA,
63 	LM_VIEWVIEW,
64 	LM_XML,
65 	LM_EXCEPTION,
66 	LM_SCRIPT,
67 	LM_CURSOR,
68 	LM_MODULE_MAX // sentinel
69 };
70 
71 /** Module hierarchy definition + display strings
72  * format = module, module parent, module display name
73  */
74 #define MODULE_INFO_RELATIONSHIPS \
75 	ModuleInfo moduleInfos[] = { \
76 		{LM_AUDIO, LM_CORE, "Audio"}, \
77 		{LM_CONTROLLER, LM_CORE, "Controller"}, \
78 		{LM_EVTCHANNEL, LM_CORE, "Event Channel"}, \
79 		{LM_GUI, LM_CORE, "GUI"}, \
80 		  {LM_CONSOLE, LM_GUI, "Console"}, \
81 		{LM_LOADERS, LM_CORE, "Loaders"}, \
82 		  {LM_NATIVE_LOADERS, LM_LOADERS, "Native loaders"}, \
83 		  {LM_FO_LOADERS, LM_LOADERS, "Fallout loaders"}, \
84 		{LM_SAVERS, LM_CORE, "Savers"}, \
85           {LM_NATIVE_SAVERS, LM_CORE, "Native savers"}, \
86 		{LM_MODEL, LM_CORE, "Model"}, \
87 		  {LM_STRUCTURES, LM_MODEL, "Structures"}, \
88 		    {LM_INSTANCE, LM_STRUCTURES, "Instance"}, \
89 		    {LM_LOCATION, LM_STRUCTURES, "Location"}, \
90 		  {LM_METAMODEL, LM_MODEL, "Metamodel"}, \
91 		    {LM_CELLGRID, LM_METAMODEL, "Cellgrid"}, \
92 		    {LM_SQUAREGRID, LM_METAMODEL, "Squaregrid"}, \
93 		    {LM_HEXGRID, LM_METAMODEL, "Hexgrid"}, \
94 		{LM_PATHFINDER, LM_CORE, "Pathfinder"}, \
95 		{LM_UTIL, LM_CORE, "Util"}, \
96 		  {LM_RESMGR, LM_UTIL, "Resource Manager"}, \
97 		{LM_VFS, LM_CORE, "VFS"}, \
98 		{LM_VIDEO, LM_CORE, "Video" }, \
99 		{LM_VIEW, LM_CORE, "View"}, \
100 		  {LM_CAMERA, LM_VIEW, "Camera"}, \
101 		  {LM_VIEWVIEW, LM_VIEW, "View::View"}, \
102 		{LM_XML, LM_CORE, "XML"}, \
103 		{LM_EXCEPTION, LM_CORE, "Exception"}, \
104 		{LM_SCRIPT, LM_CORE, "Script"}, \
105 		{LM_CURSOR, LM_CORE, "Cursor"} \
106 	};
107 
108 #endif
109