10 #include "../api_param.h"
11 #include "../../obj/simobj.h"
12 #include "../../tool/simmenu.h"
13 #include "../../simunits.h"
15 using namespace script_api;
17 #define begin_enum(name) sq_pushconsttable(vm);
18 #define end_enum() sq_setconsttable(vm);
19 #define enum_slot create_slot<SQInteger>
21 void export_global_constants(HSQUIRRELVM vm)
27 begin_enum(
"tool_ids");
29 enum_slot(vm,
"tool_remover", TOOL_REMOVER | GENERAL_TOOL);
31 enum_slot(vm,
"tool_raise_land", TOOL_RAISE_LAND | GENERAL_TOOL);
33 enum_slot(vm,
"tool_lower_land", TOOL_LOWER_LAND | GENERAL_TOOL);
35 enum_slot(vm,
"tool_setslope", TOOL_SETSLOPE | GENERAL_TOOL);
37 enum_slot(vm,
"tool_restoreslope", TOOL_RESTORESLOPE | GENERAL_TOOL);
39 enum_slot(vm,
"tool_set_marker", TOOL_MARKER | GENERAL_TOOL);
41 enum_slot(vm,
"tool_clear_reservation", TOOL_CLEAR_RESERVATION | GENERAL_TOOL);
43 enum_slot(vm,
"tool_build_transformer", TOOL_TRANSFORMER | GENERAL_TOOL);
45 enum_slot(vm,
"tool_add_city", TOOL_ADD_CITY | GENERAL_TOOL);
47 enum_slot(vm,
"tool_change_city_size", TOOL_CHANGE_CITY_SIZE | GENERAL_TOOL);
49 enum_slot(vm,
"tool_plant_tree", TOOL_PLANT_TREE | GENERAL_TOOL);
53 enum_slot(vm,
"tool_build_groundobj", TOOL_PLANT_GROUNDOBJ | GENERAL_TOOL);
55 enum_slot(vm,
"tool_build_way", TOOL_BUILD_WAY | GENERAL_TOOL);
57 enum_slot(vm,
"tool_build_bridge", TOOL_BUILD_BRIDGE | GENERAL_TOOL);
59 enum_slot(vm,
"tool_build_tunnel", TOOL_BUILD_TUNNEL | GENERAL_TOOL);
61 enum_slot(vm,
"tool_remove_way", TOOL_WAYREMOVER | GENERAL_TOOL);
63 enum_slot(vm,
"tool_build_wayobj", TOOL_BUILD_WAYOBJ | GENERAL_TOOL);
65 enum_slot(vm,
"tool_build_station", TOOL_BUILD_STATION | GENERAL_TOOL);
67 enum_slot(vm,
"tool_build_roadsign", TOOL_BUILD_ROADSIGN | GENERAL_TOOL);
69 enum_slot(vm,
"tool_build_depot", TOOL_BUILD_DEPOT | GENERAL_TOOL);
71 enum_slot(vm,
"tool_build_house", TOOL_BUILD_HOUSE | GENERAL_TOOL);
73 enum_slot(vm,
"tool_land_chain", TOOL_BUILD_LAND_CHAIN | GENERAL_TOOL);
75 enum_slot(vm,
"tool_city_chain", TOOL_CITY_CHAIN | GENERAL_TOOL);
77 enum_slot(vm,
"tool_build_factory", TOOL_BUILD_FACTORY | GENERAL_TOOL);
79 enum_slot(vm,
"tool_link_factory", TOOL_LINK_FACTORY | GENERAL_TOOL);
81 enum_slot(vm,
"tool_headquarter", TOOL_HEADQUARTER | GENERAL_TOOL);
83 enum_slot(vm,
"tool_lock_game", TOOL_LOCK_GAME | GENERAL_TOOL);
85 enum_slot(vm,
"tool_add_citycar", TOOL_ADD_CITYCAR | GENERAL_TOOL);
87 enum_slot(vm,
"tool_forest", TOOL_FOREST | GENERAL_TOOL);
89 enum_slot(vm,
"tool_stop_mover", TOOL_STOP_MOVER | GENERAL_TOOL);
91 enum_slot(vm,
"tool_make_stop_public", TOOL_MAKE_STOP_PUBLIC | GENERAL_TOOL);
93 enum_slot(vm,
"tool_remove_wayobj", TOOL_REMOVE_WAYOBJ | GENERAL_TOOL);
96 enum_slot(vm,
"tool_buy_house", TOOL_BUY_HOUSE | GENERAL_TOOL);
98 enum_slot(vm,
"tool_build_cityroad", TOOL_BUILD_CITYROAD | GENERAL_TOOL);
100 enum_slot(vm,
"tool_change_water_height", TOOL_CHANGE_WATER_HEIGHT | GENERAL_TOOL);
102 enum_slot(vm,
"tool_set_climate", TOOL_SET_CLIMATE | GENERAL_TOOL);
104 enum_slot(vm,
"tool_rotate_building", TOOL_ROTATE_BUILDING | GENERAL_TOOL);
106 enum_slot(vm,
"tool_merge_stop", TOOL_MERGE_STOP | GENERAL_TOOL);
108 enum_slot(vm,
"tool_exec_script", TOOL_EXEC_SCRIPT | GENERAL_TOOL);
110 enum_slot(vm,
"tool_exec_two_click_script", TOOL_EXEC_TWO_CLICK_SCRIPT | GENERAL_TOOL);
112 enum_slot(vm,
"tool_set_owner", TOOL_SET_OWNER | GENERAL_TOOL);
116 enum_slot(vm,
"tool_increase_industry", TOOL_INCREASE_INDUSTRY | SIMPLE_TOOL);
118 enum_slot(vm,
"tool_switch_player", TOOL_SWITCH_PLAYER | SIMPLE_TOOL);
120 enum_slot(vm,
"tool_step_year", TOOL_STEP_YEAR | SIMPLE_TOOL);
122 enum_slot(vm,
"tool_fill_trees", TOOL_FILL_TREES | SIMPLE_TOOL);
124 enum_slot(vm,
"tool_set_traffic_level", TOOL_TRAFFIC_LEVEL | SIMPLE_TOOL);
128 enum_slot(vm,
"dialog_edit_factory", DIALOG_EDIT_FACTORY | DIALOGE_TOOL);
130 enum_slot(vm,
"dialog_edit_attraction", DIALOG_EDIT_ATTRACTION | DIALOGE_TOOL);
132 enum_slot(vm,
"dialog_edit_house", DIALOG_EDIT_HOUSE | DIALOGE_TOOL);
134 enum_slot(vm,
"dialog_edit_tree", DIALOG_EDIT_TREE | DIALOGE_TOOL);
136 enum_slot(vm,
"dialog_enlarge_map", DIALOG_ENLARGE_MAP | DIALOGE_TOOL);
143 begin_enum(
"tool_flags");
144 enum_slot(vm,
"shift_pressed", tool_t::WFL_SHIFT);
145 enum_slot(vm,
"ctrl_pressed", tool_t::WFL_CTRL);
151 begin_enum(
"way_types");
153 enum_slot(vm,
"wt_all", ignore_wt);
155 enum_slot(vm,
"wt_road", road_wt);
157 enum_slot(vm,
"wt_rail", track_wt);
159 enum_slot(vm,
"wt_water", water_wt);
161 enum_slot(vm,
"wt_monorail", monorail_wt);
163 enum_slot(vm,
"wt_maglev", maglev_wt);
165 enum_slot(vm,
"wt_tram", tram_wt);
167 enum_slot(vm,
"wt_narrowgauge", narrowgauge_wt);
169 enum_slot(vm,
"wt_air", air_wt);
171 enum_slot(vm,
"wt_power", powerline_wt);
173 enum_slot(vm,
"wt_decoration", decoration_wt);
175 enum_slot(vm,
"wt_invalid", invalid_wt);
182 begin_enum(
"way_system_types");
184 enum_slot(vm,
"st_flat", type_flat);
186 enum_slot(vm,
"st_elevated", type_elevated);
188 enum_slot(vm,
"st_runway", type_runway);
190 enum_slot(vm,
"st_tram", type_tram);
196 enum_slot(vm,
"player_all", PLAYER_UNOWNED);
202 begin_enum(
"map_objects");
204 enum_slot(vm,
"mo_tree", obj_t::baum);
206 enum_slot(vm,
"mo_pointer", obj_t::zeiger);
208 enum_slot(vm,
"mo_cloud", obj_t::cloud);
210 enum_slot(vm,
"mo_building", obj_t::gebaeude);
212 enum_slot(vm,
"mo_signal", obj_t::signal);
214 enum_slot(vm,
"mo_bridge", obj_t::bruecke);
216 enum_slot(vm,
"mo_tunnel", obj_t::tunnel);
218 enum_slot(vm,
"mo_depot_rail", obj_t::bahndepot);
220 enum_slot(vm,
"mo_depot_road", obj_t::strassendepot);
222 enum_slot(vm,
"mo_depot_water", obj_t::schiffdepot);
224 enum_slot(vm,
"mo_powerline", obj_t::leitung);
226 enum_slot(vm,
"mo_transformer_s", obj_t::pumpe);
228 enum_slot(vm,
"mo_transformer_c", obj_t::senke);
230 enum_slot(vm,
"mo_roadsign", obj_t::roadsign);
232 enum_slot(vm,
"mo_pillar", obj_t::pillar);
234 enum_slot(vm,
"mo_depot_air", obj_t::airdepot);
236 enum_slot(vm,
"mo_depot_monorail", obj_t::monoraildepot);
238 enum_slot(vm,
"mo_depot_tram", obj_t::tramdepot);
240 enum_slot(vm,
"mo_depot_maglev", obj_t::maglevdepot);
242 enum_slot(vm,
"mo_wayobj", obj_t::wayobj);
244 enum_slot(vm,
"mo_way", obj_t::way);
246 enum_slot(vm,
"mo_label", obj_t::label);
248 enum_slot(vm,
"mo_field", obj_t::field);
250 enum_slot(vm,
"mo_crossing", obj_t::crossing);
252 enum_slot(vm,
"mo_groundobj", obj_t::groundobj);
254 enum_slot(vm,
"mo_depot_narrowgauge", obj_t::narrowgaugedepot);
256 enum_slot(vm,
"mo_pedestrian", obj_t::pedestrian);
258 enum_slot(vm,
"mo_city_car", obj_t::road_user);
260 enum_slot(vm,
"mo_car", obj_t::road_vehicle);
262 enum_slot(vm,
"mo_train", obj_t::rail_vehicle);
264 enum_slot(vm,
"mo_monorail", obj_t::monorail_vehicle);
266 enum_slot(vm,
"mo_maglev", obj_t::maglev_vehicle);
268 enum_slot(vm,
"mo_narrowgauge", obj_t::narrowgauge_vehicle);
270 enum_slot(vm,
"mo_ship", obj_t::water_vehicle);
272 enum_slot(vm,
"mo_airplane", obj_t::air_vehicle);
274 enum_slot(vm,
"mo_moving_object", obj_t::movingobj);
291 begin_enum(
"climates");
292 enum_slot(vm,
"cl_water", water_climate);
293 enum_slot(vm,
"cl_desert", desert_climate);
294 enum_slot(vm,
"cl_tropic", tropic_climate);
295 enum_slot(vm,
"cl_mediterran", mediterran_climate);
296 enum_slot(vm,
"cl_temperate", temperate_climate);
297 enum_slot(vm,
"cl_tundra", tundra_climate);
298 enum_slot(vm,
"cl_rocky", rocky_climate);
299 enum_slot(vm,
"cl_arctic", arctic_climate);
@ CARUNITS_PER_TILE
The length of one side of a tile in car units.