Dachte eigentlich das ich da ein Array zurückgebe. Sonst würde ja der Stationsabriss nicht funktionieren.
Statt true sollte das Stations-Array zurückgegeben werden.
Aber ich hab inzwischen auch etwas den Überblick verloren.
check_station gibt true zurück, wenn es mit 
build = 0 aufgerufen wird. Was aber aktuell nicht passiert, da es in der Funktion selber auf 1 gesetzt wird und in rail_connector nicht angegeben ist. Das war ein Vorgriff für eine Prüfung bei der Planung.
Code:
function check_station(pl, starts_field, st_lenght, wt, select_station, build = 1) {
Code:
// check place and build station to c_start
 local s_src = check_station(pl, c_start, count, wt_rail, planned_station)
Ansonsten gibt check_station  das Ergebnis von expand_station zurück. Und das ist entweder false oder das Array fields.
Allerdings wird ggf c_start und c_end bereits in check_station neu gesetzt. Nämlich dann, wenn die Station quer ( mit anderer Ausrichtung ) gebaut wurde.
Code:
// build station
 if ( b_tile.len() == st_lenght && build == 1) {
   st_build = expand_station(pl, b_tile, wt, select_station, starts_field)
   if ( starts_field.x != b_tile[0].x || starts_field.y != b_tile[0].y ) {
     err = command_x.build_way(pl, starts_field, b_tile[0], planned_way, true)
     // station move then set c_start/c_end new
     if ( starts_field.x == c_start.x && starts_field.y == c_start.y ) {
       c_start = tile_x(b_tile[0].x, b_tile[0].y, b_tile[0].z)
     }
     if ( starts_field.x == c_end.x && starts_field.y == c_end.y ) {
       c_end = tile_x(b_tile[0].x, b_tile[0].y, b_tile[0].z)
     }
   }
  } else if ( b_tile.len() == st_lenght && build == 0 ) {
    st_build = true
  } else {
    b_tile.clear()
  }
}
Aktuell wohl nicht sehr elegant gelöst, hat sich aber so ergeben.
Funktioniert nur teilweise Dein Patch. Fehler _nexti kommt nicht mehr. way_get_dirs kommt noch.
Und die Änderung in astar.nut ist in einer unbenutzten Funktion.
function set_marker(pos) war als Reservierung gedacht. Nur Marker lassen sich überbauen auch von fremden Spielern.
Aber ich hab einen Verdacht, das expand_station ein leeres Array zurück gibt statt false.