MCPcopy Create free account
hub / github.com/OpenTTD/OpenTTD / VehicleEnter_Road

Function VehicleEnter_Road

src/road_cmd.cpp:2286–2310  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2284};
2285
2286static VehicleEnterTileStates VehicleEnter_Road(Vehicle *v, TileIndex tile, int, int)
2287{
2288 switch (GetRoadTileType(tile)) {
2289 case RoadTileType::Depot: {
2290 if (v->type != VEH_ROAD) break;
2291
2292 RoadVehicle *rv = RoadVehicle::From(v);
2293 if (rv->frame == RVC_DEPOT_STOP_FRAME &&
2294 _roadveh_enter_depot_dir[GetRoadDepotDirection(tile)] == rv->state) {
2295 rv->state = RVSB_IN_DEPOT;
2296 rv->vehstatus.Set(VehState::Hidden);
2297 rv->direction = ReverseDir(rv->direction);
2298 if (rv->Next() == nullptr) VehicleEnterDepot(rv->First());
2299 rv->tile = tile;
2300
2301 InvalidateWindowData(WC_VEHICLE_DEPOT, rv->tile);
2302 return VehicleEnterTileState::EnteredWormhole;
2303 }
2304 break;
2305 }
2306
2307 default: break;
2308 }
2309 return {};
2310}
2311
2312
2313static void ChangeTileOwner_Road(TileIndex tile, Owner old_owner, Owner new_owner)

Callers

nothing calls this directly

Calls 8

GetRoadTileTypeFunction · 0.85
GetRoadDepotDirectionFunction · 0.85
ReverseDirFunction · 0.85
VehicleEnterDepotFunction · 0.85
InvalidateWindowDataFunction · 0.70
SetMethod · 0.45
NextMethod · 0.45
FirstMethod · 0.45

Tested by

no test coverage detected