Closed Andarix closed 1 year ago
Du willst abfragen, ob da ein Kreuzungsobjekt liegt? Brauchst du noch mehr Informationen ueber die Kreuzung (max-Geschwindigkeit) ?
Die erweiterten Infos bekommt man ja über find_object.
Hier geht es nur darum, ob man auf dem Tile einen Abzweig bauen kann oder nicht. Also True und False reichen als Rückgabe. Ist ja bei den anderen Abfragen auch so.
if ( nexttile[i-way_len].get_slope() == 0 && !nexttile[i-way_len].is_bridge() && nexttile[i-way_len].find_object(mo_crossing) == null ) {
Würde halt den Umweg über find_object ersparen.
PS
Ok, has_two_ways() liefert das ja.
Wobei 2 Wege nicht unbedingt heist, das sie sich rechtwinkelig kreuzen. Stolperstein Namensgebung.
Straße mit Straßenbahn bzw. Straße mit erhöhtem Weg jeweils in gleicher Ausrichtung.
wenn es nur um die Abfrage geht, ob gebaut werden darf, dann sollte das mit is_allowed_step schon moeglich sein.
wenn es nur um die Abfrage geht, ob gebaut werden darf, dann sollte das mit is_allowed_step schon moeglich sein.
Das sieht nicht so aus, das ich das einfach so aufrufen kann.
An dieser Stelle kenne ich die Nachbarfelder noch nicht. Müsste also erst dazu gebaut werden.
Das andere ist, is_allowed_step ist dann true, wenn das passende Slope vorhanden ist. Das wäre aber Kontraproduktiv. Denn dann gebe es nur 3 Möglichkeiten für true (eben, Hang in Baurichtung hoch/runter).
Das nächste Problem wäre dann noch, wenn zufällig bereits ein Gleis des gleichen Spielers dort liegt. Dann geht das bauen auch, ist aber hier unerwünscht, weil es sich um das Startfeld einer Ausweichstelle handelt.
is_crossing ist jetzt implementiert:
https://github.com/aburch/simutrans/commit/e08462eed0c76f071fa39f6b7fb971c305c18a51
danke
classtile__x.html