/** ** Reduce made unit-type from build list. ** ** @param pai Computer AI player. ** @param type Unit-type which is now available. */ void AiReduceMadeInBuilt(PlayerAi &pai, const CUnitType &type) { if (AiReduceMadeInBuilt2(pai, type)) { return; } // This could happen if an upgrade is ready, look for equivalent units. int equivs[UnitTypeMax + 1]; const unsigned int equivnb = AiFindUnitTypeEquiv(type, equivs); for (unsigned int i = 0; i < equivnb; ++i) { if (AiReduceMadeInBuilt2(pai, *UnitTypes[equivs[i]])) { return; } } if (pai.Player == ThisPlayer) { DebugPrint("My guess is that you built something under ai me. naughty boy!\n"); return; } fprintf(stderr, "Can't reduce %s from build list.\n", type.Ident.c_str()); }
/** ** Reduce made unit-type from build list. ** ** @param pai Computer AI player. ** @param type Unit-type which is now available. */ static void AiReduceMadeInBuilt(PlayerAi *pai, const CUnitType *type) { int equivs[UnitTypeMax + 1]; int equivnb; if (AiReduceMadeInBuilt2(pai, type)) { return; } // // This could happen if an upgrade is ready, look for equivalent units. // equivnb = AiFindUnitTypeEquiv(type, equivs); for (size_t i = 0; i < (size_t)equivnb; ++i) { if (AiReduceMadeInBuilt2(pai, UnitTypes[equivs[i]])) { return; } } Assert(0); }