Simutrans-Squirrel-API  124.3 (r11590 on 11-Jan-2025)
api_const.cc
Go to the documentation of this file.
1 /*
2  * This file is part of the Simutrans project under the Artistic License.
3  * (see LICENSE.txt)
4  */
5 
6 #include "api.h"
7 
10 #include "../api_param.h"
11 #include "../../obj/simobj.h"
12 #include "../../tool/simmenu.h"
13 #include "../../simunits.h"
14 
15 using namespace script_api;
16 
17 #define begin_enum(name) sq_pushconsttable(vm);
18 #define end_enum() sq_setconsttable(vm);
19 #define enum_slot create_slot<SQInteger>
20 
21 void export_global_constants(HSQUIRRELVM vm)
22 {
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);
50  // not needed? enum__slot(vm, "tool_schedule_add", TOOL_SCHEDULE_ADD | GENERAL_TOOL);
51  // not needed? enum__slot(vm, "tool_schedule_ins", TOOL_SCHEDULE_INS | 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);
94  // not needed? enum__slot(vm, "tool_sliced_and_underground_view", TOOL_SLICED_AND_UNDERGROUND_VIEW | 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);
113 
114  // simple tools
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);
125 
126  // tools to open certain windows
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);
137 
138  end_enum();
139 
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);
146  end_enum();
147 
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);
176  end_enum();
177 
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);
191  end_enum();
192 
193  // players
194  begin_enum("");
196  enum_slot(vm, "player_all", PLAYER_UNOWNED);
197  end_enum();
198 
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);
275 
276  end_enum();
277 
281  begin_enum("units");
283  enum_slot(vm, "CARUNITS_PER_TILE", (uint32)CARUNITS_PER_TILE);
284 
285  end_enum();
286 
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);
300  end_enum();
301 
302 }
@ CARUNITS_PER_TILE
The length of one side of a tile in car units.
Definition: api_const.cc:246