diff --git a/src/modules/butterflies/butterflies_actions.c b/src/modules/butterflies/butterflies_actions.c index 882a9593b611499e814a300de07610f60e3efe21..0fe97aa6b989a6689f20f2386a55d624e1e04ae6 100644 --- a/src/modules/butterflies/butterflies_actions.c +++ b/src/modules/butterflies/butterflies_actions.c @@ -7,7 +7,7 @@ #include "butterflies_main.h" #include "inline_overlays.h" #include "butterflies_populations.h" -#include "random_walk.h" + #include "butterflies_inline.h" #include "grids/grid_wrapper.h" #include "grids/gdal_save.h" @@ -16,6 +16,8 @@ #include "populations/population.h" #include "inline_population.h" #include "butterflies_generations.h" +#include "butterflies_dispersal.h" +#include "butterflies_overlays.h" inline void increase_custom_stat(struct statistics stats, int64_t stat_id, int64_t by) @@ -86,7 +88,7 @@ void grid_butterflies_dispersal(struct cats_grid *grid, struct cats_thread_info continue; } - butterflies_random_walk(grid, ts, row, col, false); + butterflies_cell_dispersal(grid, ts, row, col, false); } } // if (ts->temp) printf("thread %d: %ld random walks (%ld cells) avg %f\n", ts->id, ts->temp, ts->temp1, (float) ts->temp / (float) ts->temp1); @@ -222,7 +224,7 @@ enum action_status action_butterfly_update_generations(struct cats_grid *grid, s grid->param.initial_population.adjusted = true; } - threaded_action(&grid_update_generations, grid, conf, TS_DEFAULT); + threaded_action(&area_update_generations, grid, conf, TS_DEFAULT); return ACTION_RUN; } @@ -242,45 +244,13 @@ void reset_info_layer(const struct cats_grid *grid, struct grid_data_butterflies enum action_status action_butterflies_update_overlays(struct cats_grid *grid, struct cats_configuration *conf) { - - int module_id = CATS_MODULE_ID; - struct grid_data_butterflies *data = grid->grid_modules[module_id].module_data; - - if (conf->overlays.have_overlays == false) { - return ACTION_NOT_RUN; - } - - - const cats_dt_coord rows = grid->dimension.rows; - const cats_dt_coord cols = grid->dimension.cols; - - for (cats_dt_coord row = 0; row < rows; row++) { - for (cats_dt_coord col = 0; col < cols; col++) { - data->info_layer[row][col] = BF_CELL_CLEAR; - - if (cell_excluded_by_overlay(conf, row, col)) { - data->info_layer[row][col] |= BF_CELL_EXCLUDED; - } - - if (conf->overlays.overlay[OL_HABITAT_TYPE_CC].enabled && - conf->overlays.habitat_cc->data[row][col] > 0) { - data->info_layer[row][col] |= BF_CELL_HABITAT_OK; - } - - if (conf->overlays.overlay[OL_RESOURCE].enabled && - conf->overlays.resources->data[row][col] > 0) { - data->info_layer[row][col] |= BF_CELL_RESOURCE_AVAILABLE; - } - } - } - - return ACTION_RUN; + return butterflies_update_overlays(conf, grid); } enum action_status action_finish_generation(struct cats_grid *grid, struct cats_configuration *conf) { - int module_id = CATS_MODULE_ID; + const int module_id = CATS_MODULE_ID; struct grid_data_butterflies *data = grid->grid_modules[module_id].module_data;