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