diff --git a/src/simutrans/tool/simtool.cc b/src/simutrans/tool/simtool.cc
index fdcfd8e5d..41e870b93 100644
--- a/src/simutrans/tool/simtool.cc
+++ b/src/simutrans/tool/simtool.cc
@@ -3826,24 +3826,13 @@ bool tool_build_wayobj_t::init( player_t *player )
bool tool_build_wayobj_t::calc_route( route_t &verbindung, player_t *player, const koord3d& start, const koord3d& to )
{
- waytype_t waytype = wt;
+ waytype_t waytype = wt==tram_wt? track_wt: wt;
if( waytype == decoration_wt ) {
waytype = welt->lookup(start)->get_weg(wt)->get_waytype();
}
- // special treatment for deports, since track electrication cannot "drive" into tram depot
- if( waytype == track_wt ) {
- if( depot_t *dp = welt->lookup(start)->get_depot() ) {
- waytype = dp->get_waytype();
- }
- else if( depot_t *dp = welt->lookup(to)->get_depot() ) {
- waytype = dp->get_waytype();
- }
- }
+
// get a default vehicle
- vehicle_desc_t remover_desc( waytype, 500, vehicle_desc_t::diesel );
- vehicle_t* test_vehicle = vehicle_builder_t::build(start, player, NULL, &remover_desc);
- test_vehicle->set_flag( obj_t::not_on_map );
- test_driver_t* test_driver = scenario_checker_t::apply(test_vehicle, player, this);
+ test_driver_t *test_driver = new way_checker_t(waytype);
bool can_built;
if( start != to ) {
@@ -5664,10 +5653,8 @@ built_sign:
bool tool_build_roadsign_t::calc_route(route_t &route, player_t *player, const koord3d &from, const koord3d &to)
{
// get a default vehicle
- vehicle_desc_t rs_desc( desc->get_wtyp(), 500, vehicle_desc_t::diesel);
- vehicle_t *test_vehicle = vehicle_builder_t::build(from, player, NULL, &rs_desc);
- test_vehicle->set_flag(obj_t::not_on_map);
- test_driver_t *test_driver = scenario_checker_t::apply(test_vehicle, player, this);
+ waytype_t waytype = desc->get_waytype()==tram_wt? track_wt: desc->get_waytype();
+ test_driver_t *test_driver = new way_checker_t(waytype);
bool can_build = false;
I write and debug it. When we use way_checker_t for build_wayobj, we do not need to care about the depot waytype(tram/track).Quote from: Andarix on January 12, 2026, 04:06:29 PMThe idea is correct, but the value is wrong.
The `tool_id` is correct. Only the object name is passed differently.
The name is passed via the button.
The value 1 is passed via the key "s".
Docu function
is_work_allowed_here()
The description doesn't seem to be entirely correct either. There, "name" is defined as "coord3d".
I think this is a simutrans bug, not a tutorial bug.