Review: Approve
LGTM - just 1 nit for a comment. Please merge once it's fixed :)
Diff comments:
>
> === modified file 'src/ai/defaultai.cc'
> --- src/ai/defaultai.cc 2018-04-02 08:44:26 +0000
> +++ src/ai/defaultai.cc 2018-04-06 10:10:52 +0000
> @@ -1471,10 +1471,23 @@
> }
> }
>
> - // counting fields with fish
> - if (field.water_nearby > 0 && (field.fish_nearby == kUncalculated ||
> resource_count_now)) {
> - field.fish_nearby = map.find_fields(Area<FCoords>(field.coords,
> kProductionArea), nullptr,
> -
> FindNodeResource(world.get_resource("fish")));
> + // counting fields with fish, doing it roughly every 10-th minute is
> enough
> + if (field.water_nearby > 0 && (field.fish_nearby == kUncalculated ||
> (resource_count_now && gametime % 10 == 0))) {
> + CheckStepWalkOn fisher_cstep(MOVECAPS_WALK, true);
> + static std::vector<Coords> fish_fields_list; // pity this
> contains duplicities
duplicities -> duplicates
> + fish_fields_list.clear();
> + map.find_reachable_fields(Area<FCoords>(field.coords,
> kProductionArea),
> + &fish_fields_list, fisher_cstep,
> FindNodeResource(world.get_resource("fish")));
> +
> + // This is "list" of unique fields in fish_fields_list we got
> above
> + static std::set<Coords> counted_fields;
> + counted_fields.clear();
> + field.fish_nearby = 0;
> + for (auto fish_coords : fish_fields_list) {
> + if (counted_fields.insert(fish_coords).second) {
> + field.fish_nearby +=
> map.get_fcoords(fish_coords).field->get_resources_amount();
> + }
> + }
> }
>
> // Counting resources that do not change fast
--
https://code.launchpad.net/~widelands-dev/widelands/ai_fisher_fix/+merge/342427
Your team Widelands Developers is subscribed to branch
lp:~widelands-dev/widelands/ai_fisher_fix.
_______________________________________________
Mailing list: https://launchpad.net/~widelands-dev
Post to : [email protected]
Unsubscribe : https://launchpad.net/~widelands-dev
More help : https://help.launchpad.net/ListHelp