Planes get to sweep and sonar only after flak and interception
If defenders get to shoot before bombs are dropped, they surely get to shoot before time-consuming missions like sweep and sonar. Sweep and sonar used to happen after air defense, but before flak and interception. Air defense existed from Chainsaw 3 to v4.3.19.
This commit is contained in:
parent
ceee05eb7e
commit
a5c2a24db6
1 changed files with 14 additions and 12 deletions
|
@ -140,19 +140,14 @@ ac_encounter(struct emp_qelem *bomb_list, struct emp_qelem *esc_list,
|
||||||
flags = pln_caps(bomb_list);
|
flags = pln_caps(bomb_list);
|
||||||
if (opt_HIDDEN)
|
if (opt_HIDDEN)
|
||||||
setcont(player->cnum, sect.sct_own, FOUND_FLY);
|
setcont(player->cnum, sect.sct_own, FOUND_FLY);
|
||||||
if (sect.sct_type == SCT_WATER) {
|
if (sect.sct_type == SCT_WATER)
|
||||||
pr("flying over %s at %s\n",
|
pr("flying over %s at %s\n",
|
||||||
dchr[sect.sct_type].d_name, xyas(x, y, player->cnum));
|
dchr[sect.sct_type].d_name, xyas(x, y, player->cnum));
|
||||||
if (mission_flags & PM_S)
|
else if (flags & P_S)
|
||||||
plane_sweep(bomb_list, x, y);
|
|
||||||
if (flags & P_A)
|
|
||||||
plane_sona(bomb_list, x, y, &head);
|
|
||||||
} else if (flags & P_S)
|
|
||||||
satdisp_sect(§, flags & P_I ? 10 : 50);
|
satdisp_sect(§, flags & P_I ? 10 : 50);
|
||||||
else
|
else
|
||||||
look_at_sect(§, 25);
|
look_at_sect(§, 25);
|
||||||
changed += map_set(player->cnum, sect.sct_x, sect.sct_y,
|
|
||||||
dchr[sect.sct_type].d_mnem, 0);
|
|
||||||
if (flags & P_S)
|
if (flags & P_S)
|
||||||
satdisp_units(sect.sct_x, sect.sct_y);
|
satdisp_units(sect.sct_x, sect.sct_y);
|
||||||
else {
|
else {
|
||||||
|
@ -167,12 +162,11 @@ ac_encounter(struct emp_qelem *bomb_list, struct emp_qelem *esc_list,
|
||||||
cname(cn), xyas(x, y, player->cnum));
|
cname(cn), xyas(x, y, player->cnum));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else
|
||||||
mpr(plane_owner, "flying over %s at %s\n",
|
mpr(plane_owner, "flying over %s at %s\n",
|
||||||
dchr[sect.sct_type].d_name, xyas(x, y, plane_owner));
|
dchr[sect.sct_type].d_name, xyas(x, y, plane_owner));
|
||||||
changed += map_set(plane_owner, sect.sct_x, sect.sct_y,
|
changed += map_set(plane_owner, sect.sct_x, sect.sct_y,
|
||||||
dchr[sect.sct_type].d_mnem, 0);
|
dchr[sect.sct_type].d_mnem, 0);
|
||||||
}
|
|
||||||
|
|
||||||
evaded = do_evade(bomb_list, esc_list);
|
evaded = do_evade(bomb_list, esc_list);
|
||||||
if (!evaded) {
|
if (!evaded) {
|
||||||
|
@ -209,6 +203,14 @@ ac_encounter(struct emp_qelem *bomb_list, struct emp_qelem *esc_list,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mission_flags & PM_R) {
|
||||||
|
flags = pln_caps(bomb_list);
|
||||||
|
if (sect.sct_type == SCT_WATER && mission_flags & PM_S)
|
||||||
|
plane_sweep(bomb_list, x, y);
|
||||||
|
if (sect.sct_type == SCT_WATER && flags & P_A)
|
||||||
|
plane_sona(bomb_list, x, y, &head);
|
||||||
|
}
|
||||||
|
|
||||||
dir = *path++;
|
dir = *path++;
|
||||||
if (!dir || QEMPTY(bomb_list) || (val = diridx(dir)) == DIR_STOP)
|
if (!dir || QEMPTY(bomb_list) || (val = diridx(dir)) == DIR_STOP)
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue