launch_missile() initializes @n to the target ship number only when
the target is a ship. It also uses it only then, to re-get the ship.
Clang is cool with this, but GCC gets confused and warns "ānā may be
used uninitialized".
Use target_ship.shp_uid instead of @n to avoid the warning.
Similar issue in c_fire(): use vship.shp_uid instead of for @vhsipno.
Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
target_ship.shp_x, target_ship.shp_y,
target_ship.shp_own, &sublaunch) < 0)
return RET_OK;
- getship(n, &target_ship);
+ /* @target_ship may have expended shells defending */
+ getship(target_ship.shp_uid, &target_ship);
if (!msl_hit(pp, shp_hardtarget(&target_ship), EF_SHIP,
N_SHP_MISS, N_SHP_SMISS, sublaunch,
target_ship.shp_own)) {
putsect(&vsect);
break;
default:
- getship(vshipno, &vship);
+ getship(vship.shp_uid, &vship);
shipdamage(&vship, dam);
if (vship.shp_effic < SHIP_MINEFF)
pr("%s sunk!\n", prsub(&vship));