* Perform some operations before adding data into Todo set * The new and reverse direction is removed from _globset, because we are sure * it doesn't need to be checked again * Also, remove reverse direction from _tbdset * This is the 'core' part so the graph searching won't enter any tile twice * * @param t1 tile we are entering * @param d1 direction (tile side) we are entering * @param t
| 211 | * @return false iff reverse direction was in Todo set |
| 212 | */ |
| 213 | static inline bool CheckAddToTodoSet(TileIndex t1, DiagDirection d1, TileIndex t2, DiagDirection d2) |
| 214 | { |
| 215 | _globset.Remove(t1, d1); // it can be in Global but not in Todo |
| 216 | _globset.Remove(t2, d2); // remove in all cases |
| 217 | |
| 218 | assert(!_tbdset.IsIn(t1, d1)); // it really shouldn't be there already |
| 219 | |
| 220 | return !_tbdset.Remove(t2, d2); |
| 221 | } |
| 222 | |
| 223 | |
| 224 | /** |
no test coverage detected