mirror of
https://github.com/godotengine/godot.git
synced 2025-12-08 06:09:55 +00:00
Skip copying values constructed immediately before returning
This commit is contained in:
parent
9283328fe7
commit
754d49ac81
14 changed files with 35 additions and 60 deletions
|
|
@ -571,23 +571,19 @@ void TileMap::set_pattern(int p_layer, const Vector2i &p_position, const Ref<Til
|
|||
}
|
||||
|
||||
HashMap<Vector2i, TileSet::TerrainsPattern> TileMap::terrain_fill_constraints(int p_layer, const Vector<Vector2i> &p_to_replace, int p_terrain_set, const RBSet<TerrainConstraint> &p_constraints) {
|
||||
HashMap<Vector2i, TileSet::TerrainsPattern> err_value;
|
||||
TILEMAP_CALL_FOR_LAYER_V(p_layer, err_value, terrain_fill_constraints, p_to_replace, p_terrain_set, p_constraints);
|
||||
TILEMAP_CALL_FOR_LAYER_V(p_layer, (HashMap<Vector2i, TileSet::TerrainsPattern>()), terrain_fill_constraints, p_to_replace, p_terrain_set, p_constraints);
|
||||
}
|
||||
|
||||
HashMap<Vector2i, TileSet::TerrainsPattern> TileMap::terrain_fill_connect(int p_layer, const Vector<Vector2i> &p_coords_array, int p_terrain_set, int p_terrain, bool p_ignore_empty_terrains) {
|
||||
HashMap<Vector2i, TileSet::TerrainsPattern> err_value;
|
||||
TILEMAP_CALL_FOR_LAYER_V(p_layer, err_value, terrain_fill_connect, p_coords_array, p_terrain_set, p_terrain, p_ignore_empty_terrains);
|
||||
TILEMAP_CALL_FOR_LAYER_V(p_layer, (HashMap<Vector2i, TileSet::TerrainsPattern>()), terrain_fill_connect, p_coords_array, p_terrain_set, p_terrain, p_ignore_empty_terrains);
|
||||
}
|
||||
|
||||
HashMap<Vector2i, TileSet::TerrainsPattern> TileMap::terrain_fill_path(int p_layer, const Vector<Vector2i> &p_coords_array, int p_terrain_set, int p_terrain, bool p_ignore_empty_terrains) {
|
||||
HashMap<Vector2i, TileSet::TerrainsPattern> err_value;
|
||||
TILEMAP_CALL_FOR_LAYER_V(p_layer, err_value, terrain_fill_path, p_coords_array, p_terrain_set, p_terrain, p_ignore_empty_terrains);
|
||||
TILEMAP_CALL_FOR_LAYER_V(p_layer, (HashMap<Vector2i, TileSet::TerrainsPattern>()), terrain_fill_path, p_coords_array, p_terrain_set, p_terrain, p_ignore_empty_terrains);
|
||||
}
|
||||
|
||||
HashMap<Vector2i, TileSet::TerrainsPattern> TileMap::terrain_fill_pattern(int p_layer, const Vector<Vector2i> &p_coords_array, int p_terrain_set, TileSet::TerrainsPattern p_terrains_pattern, bool p_ignore_empty_terrains) {
|
||||
HashMap<Vector2i, TileSet::TerrainsPattern> err_value;
|
||||
TILEMAP_CALL_FOR_LAYER_V(p_layer, err_value, terrain_fill_pattern, p_coords_array, p_terrain_set, p_terrains_pattern, p_ignore_empty_terrains);
|
||||
TILEMAP_CALL_FOR_LAYER_V(p_layer, (HashMap<Vector2i, TileSet::TerrainsPattern>()), terrain_fill_pattern, p_coords_array, p_terrain_set, p_terrains_pattern, p_ignore_empty_terrains);
|
||||
}
|
||||
|
||||
void TileMap::set_cells_terrain_connect(int p_layer, TypedArray<Vector2i> p_cells, int p_terrain_set, int p_terrain, bool p_ignore_empty_terrains) {
|
||||
|
|
|
|||
|
|
@ -2391,9 +2391,9 @@ HashMap<Vector2i, TileSet::TerrainsPattern> TileMapLayer::terrain_fill_constrain
|
|||
}
|
||||
|
||||
HashMap<Vector2i, TileSet::TerrainsPattern> TileMapLayer::terrain_fill_connect(const Vector<Vector2i> &p_coords_array, int p_terrain_set, int p_terrain, bool p_ignore_empty_terrains) const {
|
||||
ERR_FAIL_COND_V(tile_set.is_null(), (HashMap<Vector2i, TileSet::TerrainsPattern>()));
|
||||
ERR_FAIL_INDEX_V(p_terrain_set, tile_set->get_terrain_sets_count(), (HashMap<Vector2i, TileSet::TerrainsPattern>()));
|
||||
HashMap<Vector2i, TileSet::TerrainsPattern> output;
|
||||
ERR_FAIL_COND_V(tile_set.is_null(), output);
|
||||
ERR_FAIL_INDEX_V(p_terrain_set, tile_set->get_terrain_sets_count(), output);
|
||||
|
||||
// Build list and set of tiles that can be modified (painted and their surroundings).
|
||||
Vector<Vector2i> can_modify_list;
|
||||
|
|
@ -2491,14 +2491,13 @@ HashMap<Vector2i, TileSet::TerrainsPattern> TileMapLayer::terrain_fill_connect(c
|
|||
}
|
||||
|
||||
// Fill the terrains.
|
||||
output = terrain_fill_constraints(can_modify_list, p_terrain_set, constraints);
|
||||
return output;
|
||||
return terrain_fill_constraints(can_modify_list, p_terrain_set, constraints);
|
||||
}
|
||||
|
||||
HashMap<Vector2i, TileSet::TerrainsPattern> TileMapLayer::terrain_fill_path(const Vector<Vector2i> &p_coords_array, int p_terrain_set, int p_terrain, bool p_ignore_empty_terrains) const {
|
||||
ERR_FAIL_COND_V(tile_set.is_null(), (HashMap<Vector2i, TileSet::TerrainsPattern>()));
|
||||
ERR_FAIL_INDEX_V(p_terrain_set, tile_set->get_terrain_sets_count(), (HashMap<Vector2i, TileSet::TerrainsPattern>()));
|
||||
HashMap<Vector2i, TileSet::TerrainsPattern> output;
|
||||
ERR_FAIL_COND_V(tile_set.is_null(), output);
|
||||
ERR_FAIL_INDEX_V(p_terrain_set, tile_set->get_terrain_sets_count(), output);
|
||||
|
||||
// Make sure the path is correct and build the peering bit list while doing it.
|
||||
Vector<TileSet::CellNeighbor> neighbor_list;
|
||||
|
|
@ -2564,14 +2563,13 @@ HashMap<Vector2i, TileSet::TerrainsPattern> TileMapLayer::terrain_fill_path(cons
|
|||
}
|
||||
|
||||
// Fill the terrains.
|
||||
output = terrain_fill_constraints(can_modify_list, p_terrain_set, constraints);
|
||||
return output;
|
||||
return terrain_fill_constraints(can_modify_list, p_terrain_set, constraints);
|
||||
}
|
||||
|
||||
HashMap<Vector2i, TileSet::TerrainsPattern> TileMapLayer::terrain_fill_pattern(const Vector<Vector2i> &p_coords_array, int p_terrain_set, TileSet::TerrainsPattern p_terrains_pattern, bool p_ignore_empty_terrains) const {
|
||||
ERR_FAIL_COND_V(tile_set.is_null(), (HashMap<Vector2i, TileSet::TerrainsPattern>()));
|
||||
ERR_FAIL_INDEX_V(p_terrain_set, tile_set->get_terrain_sets_count(), (HashMap<Vector2i, TileSet::TerrainsPattern>()));
|
||||
HashMap<Vector2i, TileSet::TerrainsPattern> output;
|
||||
ERR_FAIL_COND_V(tile_set.is_null(), output);
|
||||
ERR_FAIL_INDEX_V(p_terrain_set, tile_set->get_terrain_sets_count(), output);
|
||||
|
||||
// Build list and set of tiles that can be modified (painted and their surroundings).
|
||||
Vector<Vector2i> can_modify_list;
|
||||
|
|
@ -2616,8 +2614,7 @@ HashMap<Vector2i, TileSet::TerrainsPattern> TileMapLayer::terrain_fill_pattern(c
|
|||
}
|
||||
|
||||
// Fill the terrains.
|
||||
output = terrain_fill_constraints(can_modify_list, p_terrain_set, constraints);
|
||||
return output;
|
||||
return terrain_fill_constraints(can_modify_list, p_terrain_set, constraints);
|
||||
}
|
||||
|
||||
TileMapCell TileMapLayer::get_cell(const Vector2i &p_coords) const {
|
||||
|
|
@ -3596,11 +3593,10 @@ TileMapLayer::~TileMapLayer() {
|
|||
}
|
||||
|
||||
HashMap<Vector2i, TileSet::CellNeighbor> TerrainConstraint::get_overlapping_coords_and_peering_bits() const {
|
||||
ERR_FAIL_COND_V(is_center_bit(), (HashMap<Vector2i, TileSet::CellNeighbor>()));
|
||||
ERR_FAIL_COND_V(tile_set.is_null(), (HashMap<Vector2i, TileSet::CellNeighbor>()));
|
||||
HashMap<Vector2i, TileSet::CellNeighbor> output;
|
||||
|
||||
ERR_FAIL_COND_V(is_center_bit(), output);
|
||||
ERR_FAIL_COND_V(tile_set.is_null(), output);
|
||||
|
||||
TileSet::TileShape shape = tile_set->get_tile_shape();
|
||||
if (shape == TileSet::TILE_SHAPE_SQUARE) {
|
||||
switch (bit) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue