Feature #1233 ยป 0036-AI-Pass-civ_map-to-dai_choose_attacker.patch
ai/default/daimilitary.c | ||
---|---|---|
very wrong. FIXME, use amortize on time to build.
|
||
**************************************************************************/
|
||
static struct unit_type *dai_choose_attacker(struct ai_type *ait,
|
||
const struct civ_map *nmap,
|
||
struct city *pcity,
|
||
enum terrain_class tc,
|
||
bool allow_gold_upkeep)
|
||
... | ... | |
adv_want best = -1;
|
||
adv_want cur;
|
||
struct player *pplayer = city_owner(pcity);
|
||
const struct civ_map *nmap = &(wld.map);
|
||
simple_ai_unit_type_iterate(putype) {
|
||
if (!allow_gold_upkeep && utype_upkeep_cost(putype, pplayer, O_GOLD) > 0) {
|
||
... | ... | |
/* Check if we want a sailing attacker. Have to put sailing first
|
||
before we mung the seamap */
|
||
punittype = dai_choose_attacker(ait, pcity, TC_OCEAN, allow_gold_upkeep);
|
||
punittype = dai_choose_attacker(ait, nmap, pcity, TC_OCEAN, allow_gold_upkeep);
|
||
if (punittype) {
|
||
virtualunit = unit_virtual_create(
|
||
pplayer, pcity, punittype,
|
||
... | ... | |
/* Consider a land attacker or a ferried land attacker
|
||
* (in which case, we might want a ferry before an attacker)
|
||
*/
|
||
punittype = dai_choose_attacker(ait, pcity, TC_LAND, allow_gold_upkeep);
|
||
punittype = dai_choose_attacker(ait, nmap, pcity, TC_LAND, allow_gold_upkeep);
|
||
if (punittype) {
|
||
virtualunit = unit_virtual_create(pplayer, pcity, punittype, 1);
|
||
choice = kill_something_with(ait, pplayer, pcity, virtualunit, choice);
|