Skip to content

Commit 0c03d90

Browse files
committed
planer: moved setup_preview_graphics() logic to building params class
1 parent 7e609d8 commit 0c03d90

File tree

3 files changed

+15
-16
lines changed

3 files changed

+15
-16
lines changed

src/building/building.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "grid/random.h"
2525
#include "grid/image.h"
2626
#include "grid/routing/routing_terrain.h"
27+
#include "construction/build_planner.h"
2728
#include "grid/floodplain.h"
2829
#include "grid/terrain.h"
2930
#include "grid/tiles.h"
@@ -1098,6 +1099,12 @@ void building_impl::static_params::load(archive arch) {
10981099
}
10991100

11001101
void building_impl::static_params::setup_preview_graphics(build_planner &planer) const {
1102+
int img_id = anim[animkeys().base].first_img();
1103+
if (!img_id) {
1104+
img_id = anim[animkeys().preview].first_img();
1105+
}
1106+
img_id += planer_relative_orientation * planer.relative_orientation;
1107+
planer.set_tiles_building(img_id, building_size);
11011108
}
11021109

11031110
io_buffer* iob_building_highest_id = new io_buffer([](io_buffer* iob, size_t version) {

src/building/construction/build_planner.cpp

+6-15
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ static int has_nearby_enemy(int x_start, int y_start, int x_end, int y_end) {
311311
return 0;
312312
}
313313

314-
static int place_houses(bool measure_only, int x_start, int y_start, int x_end, int y_end) {
314+
int build_planner::place_houses(bool measure_only, int x_start, int y_start, int x_end, int y_end) {
315315
grid_area area = map_grid_get_area(tile2i(x_start, y_start), tile2i(x_end, y_end));
316316

317317
int needs_road_warning = 0;
@@ -548,6 +548,7 @@ void build_planner::set_tiles_building(int image_id, int size_xx) {
548548
set_graphics_row(row, empty_row, size.x);
549549
}
550550
}
551+
551552
void build_planner::set_graphics_array(int* image_set, int size_x, int size_y) {
552553
init_tiles(size_x, size_y);
553554
// int (*image_array)[size_y][size_x] = (int(*)[size_y][size_x])image_set;
@@ -748,7 +749,7 @@ void build_planner::setup_build_flags() {
748749
}
749750

750751
void build_planner::setup_build_graphics() {
751-
const auto &props = building_impl::params(build_type);
752+
const auto &params = building_impl::params(build_type);
752753

753754
vec2i init_tiles_size;
754755
switch (build_type) {
@@ -883,13 +884,13 @@ void build_planner::setup_build_graphics() {
883884
break;
884885

885886
case BUILDING_WATER_LIFT:
886-
set_tiles_building(props.anim[animkeys().base].first_img() + relative_orientation + variant * 4, props.building_size);
887+
set_tiles_building(params.anim[animkeys().base].first_img() + relative_orientation + variant * 4, params.building_size);
887888
break;
888889

889890
case BUILDING_DOCK:
890891
case BUILDING_WARSHIP_WHARF:
891892
case BUILDING_TRANSPORT_WHARF:
892-
set_tiles_building(props.anim[animkeys().base].first_img() + relative_orientation, props.building_size);
893+
set_tiles_building(params.anim[animkeys().base].first_img() + relative_orientation, props.building_size);
893894
break;
894895

895896
case BUILDING_LOW_BRIDGE:
@@ -946,17 +947,7 @@ void build_planner::setup_build_graphics() {
946947
break;
947948

948949
default: // regular buildings
949-
{
950-
const auto &params = building_impl::params(build_type);
951-
params.setup_preview_graphics(*this);
952-
953-
int img_id = props.anim[animkeys().base].first_img();
954-
if (!img_id) {
955-
img_id = params.anim[animkeys().preview].first_img();
956-
}
957-
img_id += params.planer_relative_orientation * relative_orientation;
958-
set_tiles_building(img_id, props.building_size);
959-
}
950+
params.setup_preview_graphics(*this);
960951
break;
961952
}
962953
}

src/building/construction/build_planner.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ class build_planner {
6969

7070
void init_tiles(int size_x, int size_y);
7171
void set_graphics_row(int row, int* image_ids, int total);
72-
void set_tiles_building(int image_id, int size_xx);
7372
void set_graphics_array(int* image_set, int size_x, int size_y);
7473

7574
void setup_build_flags();
@@ -92,6 +91,7 @@ class build_planner {
9291
bool map_is_straight_road_for_canal(int grid_offset);
9392
bool is_road_tile_for_canal(int grid_offset, int gate_orientation);
9493
void draw_entertainment_venue(tile2i tile, vec2i pixel, e_building_type type, painter &ctx);
94+
int place_houses(bool measure_only, int x_start, int y_start, int x_end, int y_end);
9595

9696
public:
9797
e_building_type build_type;
@@ -134,6 +134,7 @@ class build_planner {
134134
void draw(painter &ctx);
135135
bool place();
136136

137+
void set_tiles_building(int image_id, int size_xx);
137138
static int is_blocked_for_farm(tile2i tile, int size, blocked_tile_vec &blocked_tiles);
138139
static void draw_building_ghost(painter &ctx, int image_id, vec2i pixel, color color_mask = COLOR_MASK_GREEN);
139140
static void draw_flat_tile(painter &ctx, vec2i pixel, color color_mask);

0 commit comments

Comments
 (0)