In single-player missions, the "Set as Player Ship" button is supposed to make
the selected ship the one and only player start. FRED did this correctly, but
qtFRED routed the button through the same setPlayer() toggle used by the
multiplayer "Player Ship" checkbox, which only promoted the selected ship and
never demoted the previous player start. Since the checkbox is disabled in
single player, there was no way to demote the old start, so single-player
missions could accumulate multiple player starts.
Consolidate the exclusive logic into a shared helper,
set_single_player_start() in missioneditor/common.cpp, and call it from both
FRED's OnSetAsPlayerShip() and a new qtFRED model method,
makeSolePlayerStart(), which the button now uses. This also avoids
setPlayer()'s early return on stale dialog state, which could cause the button
to silently do nothing.
Follow-up to #7600.
Co-authored-by: Claude Fable 5 <[email protected]>