yapf/yapf_node_rail.hpp
changeset 3978 30b43c605f21
parent 3900 2c84ed52709d
--- a/yapf/yapf_node_rail.hpp	Wed Jun 07 19:35:21 2006 +0000
+++ b/yapf/yapf_node_rail.hpp	Wed Jun 07 21:16:43 2006 +0000
@@ -70,17 +70,18 @@
 	CYapfRailSegment *m_segment;
 	uint16            m_num_signals_passed;
 	union {
-		byte            m_inherited_flags;
+		uint32          m_inherited_flags;
 		struct {
 			bool          m_targed_seen : 1;
+			bool          m_choice_seen : 1;
 			bool          m_last_signal_was_red : 1;
 		} flags_s;
 	} flags_u;
 	SignalType        m_last_red_signal_type;
 
-	FORCEINLINE void Set(CYapfRailNodeT* parent, TileIndex tile, Trackdir td)
+	FORCEINLINE void Set(CYapfRailNodeT* parent, TileIndex tile, Trackdir td, bool is_choice)
 	{
-		base::Set(parent, tile, td);
+		base::Set(parent, tile, td, is_choice);
 		m_segment = NULL;
 		if (parent == NULL) {
 			m_num_signals_passed      = 0;
@@ -91,6 +92,7 @@
 			flags_u.m_inherited_flags = parent->flags_u.m_inherited_flags;
 			m_last_red_signal_type    = parent->m_last_red_signal_type;
 		}
+		flags_u.flags_s.m_choice_seen |= is_choice;
 	}
 
 	FORCEINLINE TileIndex GetLastTile() const {assert(m_segment != NULL); return m_segment->m_last_tile;}