yapf/yapf_base.hpp
changeset 3978 30b43c605f21
parent 3947 e0c77288dd56
child 4413 a65fe514b429
equal deleted inserted replaced
3977:513433ebd092 3978:30b43c605f21
   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.