--- 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;}