/** * Append an orthogonal area of cleared tiles in _cleared_object_areas, then return the pointer. * @param cleared_tile The tile being cleared, which then causes the whole area to be cleared. * @param ta_tile The top most tile of the area to be appended as cleared. * @param w The width (x) of the area to be appended as cleared. * @param h The height (y) of the area to be appended as cleared. * @return The pointer to _cleared_object_areas with the appended cleared area. */ ClearedObjectArea *MakeClearedObjectArea(TileIndex cleared_tile, TileIndex ta_tile, uint w, uint h) { ClearedObjectArea *coa = FindClearedObject(cleared_tile); if (coa == NULL) { coa = _cleared_object_areas.Append(); coa->first_tile = cleared_tile; coa->area = TileArea(ta_tile, w, h); } return coa; }