- for (y = 1; y <= PRI_MAX; y++) {
- for (z = 0; z <= PRI_MAX; z++)
- if (np->nat_priorities[z] == y)
- switch (z) {
- case PRI_SMAINT:
- tmp_money = lnd_money[player->cnum];
- *ships = prod_ship(etu, player->cnum, bp, 0);
- *smaint = lnd_money[player->cnum] - tmp_money;
- sm = 1;
- break;
- case PRI_SBUILD:
- tmp_money = sea_money[player->cnum];
- *nsbuild = prod_ship(etu, player->cnum, bp, 1);
- *sbuild = sea_money[player->cnum] - tmp_money;
- sb = 1;
- break;
- case PRI_LMAINT:
- tmp_money = lnd_money[player->cnum];
- *units = prod_land(etu, player->cnum, bp, 0);
- *lmaint = lnd_money[player->cnum] - tmp_money;
- lm = 1;
- break;
- case PRI_LBUILD:
- tmp_money = lnd_money[player->cnum];
- *nlbuild = prod_land(etu, player->cnum, bp, 1);
- *lbuild = lnd_money[player->cnum] - tmp_money;
- lb = 1;
- break;
- case PRI_PMAINT:
- tmp_money = air_money[player->cnum];
- *planes = prod_plane(etu, player->cnum, bp, 0);
- *pmaint = air_money[player->cnum] - tmp_money;
- pm = 1;
- break;
- case PRI_PBUILD:
- tmp_money = air_money[player->cnum];
- *npbuild = prod_plane(etu, player->cnum, bp, 1);
- *pbuild = air_money[player->cnum] - tmp_money;
- pb = 1;
- break;
- default:
- produce_sect(player->cnum, etu, bp, p_sect, z);
- break;
- }
- }
- /* 0 is maintain, 1 is build */
- if (!sm) {
- tmp_money = sea_money[player->cnum];
- *ships = prod_ship(etu, player->cnum, bp, 0);
- *smaint = sea_money[player->cnum] - tmp_money;
- }
- if (!sb) {
- tmp_money = sea_money[player->cnum];
- *nsbuild = prod_ship(etu, player->cnum, bp, 1);
- *sbuild = sea_money[player->cnum] - tmp_money;
- }
- if (!lm) {
- tmp_money = lnd_money[player->cnum];
- *units = prod_land(etu, player->cnum, bp, 0);
- *lmaint = lnd_money[player->cnum] - tmp_money;
- }
- if (!lb) {
- tmp_money = lnd_money[player->cnum];
- *nlbuild = prod_land(etu, player->cnum, bp, 1);
- *lbuild = lnd_money[player->cnum] - tmp_money;
- }
- if (!pm) {
- tmp_money = air_money[player->cnum];
- *planes = prod_plane(etu, player->cnum, bp, 0);
- *pmaint = air_money[player->cnum] - tmp_money;
- }
- if (!pb) {
- tmp_money = air_money[player->cnum];
- *npbuild = prod_plane(etu, player->cnum, bp, 1);
- *pbuild = air_money[player->cnum] - tmp_money;
- }
-
- /* produce all sects that haven't produced yet */
- produce_sect(player->cnum, etu, bp, p_sect, -1);