equal
deleted
inserted
replaced
184 } |
184 } |
185 |
185 |
186 /** add multiple nodes - direct children of the given node */ |
186 /** add multiple nodes - direct children of the given node */ |
187 FORCEINLINE void AddMultipleNodes(Node* parent, TileIndex tile, TrackdirBits td_bits) |
187 FORCEINLINE void AddMultipleNodes(Node* parent, TileIndex tile, TrackdirBits td_bits) |
188 { |
188 { |
|
189 bool is_choice = (KillFirstBit2x64(td_bits) != 0); |
189 for (TrackdirBits rtds = td_bits; rtds != TRACKDIR_BIT_NONE; rtds = (TrackdirBits)KillFirstBit2x64(rtds)) { |
190 for (TrackdirBits rtds = td_bits; rtds != TRACKDIR_BIT_NONE; rtds = (TrackdirBits)KillFirstBit2x64(rtds)) { |
190 Trackdir td = (Trackdir)FindFirstBit2x64(rtds); |
191 Trackdir td = (Trackdir)FindFirstBit2x64(rtds); |
191 Node& n = Yapf().CreateNewNode(); |
192 Node& n = Yapf().CreateNewNode(); |
192 n.Set(parent, tile, td); |
193 n.Set(parent, tile, td, is_choice); |
193 Yapf().AddNewNode(n); |
194 Yapf().AddNewNode(n); |
194 } |
195 } |
195 } |
196 } |
196 |
197 |
197 /** AddNewNode() - called by Tderived::PfFollowNode() for each child node. |
198 /** AddNewNode() - called by Tderived::PfFollowNode() for each child node. |