1 #ifndef __LUA_MAP_H
2 #define __LUA_MAP_H
3 
4 /*
5 LUA_MAP.H
6 
7 	Copyright (C) 2008 by Gregory Smith
8 
9 	This program is free software; you can redistribute it and/or modify
10 	it under the terms of the GNU General Public License as published by
11 	the Free Software Foundation; either version 3 of the License, or
12 	(at your option) any later version.
13 
14 	This program is distributed in the hope that it will be useful,
15 	but WITHOUT ANY WARRANTY; without even the implied warranty of
16 	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 	GNU General Public License for more details.
18 
19 	This license is contained in the file "COPYING",
20 	which is included with this source code; it is available online at
21 	http://www.gnu.org/licenses/gpl.html
22 
23 	Implements Lua map classes
24 */
25 
26 #include "cseries.h"
27 
28 #ifdef HAVE_LUA
29 extern "C"
30 {
31 #include "lua.h"
32 #include "lauxlib.h"
33 #include "lualib.h"
34 }
35 
36 #include "map.h"
37 #include "lightsource.h"
38 
39 #include "lua_templates.h"
40 
41 extern char Lua_AmbientSound_Name[]; // "ambient sound"
42 typedef L_Enum<Lua_AmbientSound_Name> Lua_AmbientSound;
43 
44 extern char Lua_AmbientSounds_Name[]; // "AmbientSounds"
45 typedef L_EnumContainer<Lua_AmbientSounds_Name, Lua_AmbientSound> Lua_AmbientSounds;
46 
47 extern char Lua_Collection_Name[]; // "collection"
48 typedef L_Enum<Lua_Collection_Name> Lua_Collection;
49 
50 extern char Lua_Collections_Name[]; // "Collections"
51 typedef L_EnumContainer<Lua_Collections_Name, Lua_Collection> Lua_Collections;
52 
53 extern char Lua_ControlPanelClass_Name[]; // "control_panel_class"
54 typedef L_Enum<Lua_ControlPanelClass_Name> Lua_ControlPanelClass;
55 
56 extern char Lua_ControlPanelClasses_Name[]; // "ControlPanelClasses"
57 typedef L_EnumContainer<Lua_ControlPanelClasses_Name, Lua_ControlPanelClass> Lua_ControlPanelClasses;
58 
59 extern char Lua_ControlPanelType_Name[]; // "control_panel_type"
60 typedef L_Enum<Lua_ControlPanelType_Name> Lua_ControlPanelType;
61 
62 extern char Lua_ControlPanelTypes_Name[]; // "ControlPanelTypes"
63 typedef L_EnumContainer<Lua_ControlPanelTypes_Name, Lua_ControlPanelType> Lua_ControlPanelTypes;
64 
65 extern char Lua_DamageType_Name[]; // "damage_type"
66 typedef L_Enum<Lua_DamageType_Name> Lua_DamageType;
67 
68 extern char Lua_DamageTypes_Name[]; // "DamageTypes"
69 typedef L_EnumContainer<Lua_DamageTypes_Name, Lua_DamageType> Lua_DamageTypes;
70 
71 extern char Lua_Line_Name[]; // "line"
72 typedef L_Class<Lua_Line_Name> Lua_Line;
73 
74 extern char Lua_Lines_Name[]; // "Lines"
75 typedef L_Container<Lua_Lines_Name, Lua_Line> Lua_Lines;
76 
77 extern char Lua_Polygon_Ceiling_Name[]; // "polygon_ceiling"
78 typedef L_Class<Lua_Polygon_Ceiling_Name> Lua_Polygon_Ceiling;
79 
80 extern char Lua_Polygon_Floor_Name[]; // "polygon_floor"
81 typedef L_Class<Lua_Polygon_Floor_Name> Lua_Polygon_Floor;
82 
83 extern char Lua_Platform_Name[]; // "platform"
84 typedef L_Class<Lua_Platform_Name> Lua_Platform;
85 
86 extern char Lua_Platforms_Name[]; // "Platforms";
87 typedef L_Container<Lua_Platforms_Name, Lua_Platform> Lua_Platforms;
88 
89 extern char Lua_PlatformType_Name[]; // "platform_type"
90 typedef L_Enum<Lua_PlatformType_Name> Lua_PlatformType;
91 
92 extern char Lua_PlatformTypes_Name[]; // "PlatformTypes"
93 typedef L_EnumContainer<Lua_PlatformTypes_Name, Lua_PlatformType> Lua_PlatformTypes;
94 
95 extern char Lua_Polygon_Name[]; // "polygon"
96 typedef L_Class<Lua_Polygon_Name> Lua_Polygon;
97 
98 extern char Lua_Polygons_Name[]; // "Polygons"
99 typedef L_Container<Lua_Polygons_Name, Lua_Polygon> Lua_Polygons;
100 
101 extern char Lua_Light_Name[]; // "light"
102 typedef L_Class<Lua_Light_Name> Lua_Light;
103 
104 extern char Lua_Lights_Name[]; // "Lights"
105 typedef L_Container<Lua_Lights_Name, Lua_Light> Lua_Lights;
106 
107 extern char Lua_Tag_Name[]; // "tag"
108 typedef L_Class<Lua_Tag_Name> Lua_Tag;
109 
110 extern char Lua_Tags_Name[]; // "Tags"
111 typedef L_Container<Lua_Tags_Name, Lua_Tag> Lua_Tags;
112 
113 extern char Lua_Terminal_Name[]; // "terminal"
114 typedef L_Class<Lua_Terminal_Name> Lua_Terminal;
115 
116 extern char Lua_Terminals_Name[]; // "Terminals"
117 typedef L_Container<Lua_Terminals_Name, Lua_Terminal> Lua_Terminals;
118 
119 extern char Lua_TransferMode_Name[]; // "transfer_mode"
120 typedef L_Enum<Lua_TransferMode_Name> Lua_TransferMode;
121 
122 extern char Lua_TransferModes_Name[]; // "TransferModes"
123 typedef L_EnumContainer<Lua_TransferModes_Name, Lua_TransferMode> Lua_TransferModes;
124 
125 extern char Lua_Side_Name[]; // "side"
126 typedef L_Class<Lua_Side_Name> Lua_Side;
127 
128 extern char Lua_Sides_Name[]; // "Sides"
129 typedef L_Container<Lua_Sides_Name, Lua_Side> Lua_Sides;
130 
131 extern char Lua_SideType_Name[]; // "side_type"
132 typedef L_Enum<Lua_SideType_Name> Lua_SideType;
133 
134 extern char Lua_SideTypes_Name[]; // "SideTypes"
135 typedef L_EnumContainer<Lua_SideTypes_Name, Lua_SideType> Lua_SideTypes;
136 
137 extern char Lua_Media_Name[]; // "media"
138 typedef L_Class<Lua_Media_Name> Lua_Media;
139 
140 extern char Lua_Medias_Name[]; // "Media"
141 typedef L_Container<Lua_Medias_Name, Lua_Media> Lua_Medias;
142 
143 int Lua_Map_register (lua_State *L);
144 
145 #endif
146 
147 #endif
148