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.
flags = pln_caps(bomb_list);
if (opt_HIDDEN)
setcont(player->cnum, sect.sct_own, FOUND_FLY);
flags = pln_caps(bomb_list);
if (opt_HIDDEN)
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",
dchr[sect.sct_type].d_name, xyas(x, y, player->cnum));
pr("flying over %s at %s\n",
dchr[sect.sct_type].d_name, xyas(x, y, player->cnum));
- if (mission_flags & PM_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);
else
look_at_sect(§, 25);
satdisp_sect(§, flags & P_I ? 10 : 50);
else
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)
satdisp_units(sect.sct_x, sect.sct_y);
else {
if (flags & P_S)
satdisp_units(sect.sct_x, sect.sct_y);
else {
cname(cn), xyas(x, y, player->cnum));
}
}
cname(cn), xyas(x, y, player->cnum));
}
}
mpr(plane_owner, "flying over %s at %s\n",
dchr[sect.sct_type].d_name, xyas(x, y, plane_owner));
mpr(plane_owner, "flying over %s at %s\n",
dchr[sect.sct_type].d_name, xyas(x, y, plane_owner));
- changed += map_set(plane_owner, sect.sct_x, sect.sct_y,
- dchr[sect.sct_type].d_mnem, 0);
- }
+ changed += map_set(plane_owner, sect.sct_x, sect.sct_y,
+ dchr[sect.sct_type].d_mnem, 0);
evaded = do_evade(bomb_list, esc_list);
if (!evaded) {
evaded = do_evade(bomb_list, esc_list);
if (!evaded) {
+ 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++;
if (!dir || QEMPTY(bomb_list) || (val = diridx(dir)) == DIR_STOP)
break;
dir = *path++;
if (!dir || QEMPTY(bomb_list) || (val = diridx(dir)) == DIR_STOP)
break;