diff -r edb5b94e2094 -r bfd412e43038 yapf/yapf_node_rail.hpp --- 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;}