launch edit: Take satellite off carrier on launch

Doesn't affect the stock game, because none of its satellites are
light, let alone x-light.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2018-05-12 09:46:51 +02:00
parent bf9cb33fc2
commit 6ce25bdd4f
2 changed files with 4 additions and 1 deletions

View file

@ -1186,6 +1186,8 @@ edit_plane(struct plnstr *plane, char *key, char *p)
divine_flag_change((struct empobj *)plane, "Flags", divine_flag_change((struct empobj *)plane, "Flags",
plane->pln_flags, arg, plane_flags); plane->pln_flags, arg, plane_flags);
plane->pln_flags = arg; plane->pln_flags = arg;
if (pln_is_in_orbit(plane))
plane->pln_ship = plane->pln_land = -1;
break; break;
default: default:
pr("huh? (%s)\n", key); pr("huh? (%s)\n", key);

View file

@ -30,7 +30,7 @@
* Dave Pare, 1986 * Dave Pare, 1986
* Ken Stevens, 1995 * Ken Stevens, 1995
* Steve McClure, 1998-2000 * Steve McClure, 1998-2000
* Markus Armbruster, 2005-2015 * Markus Armbruster, 2005-2018
*/ */
#include <config.h> #include <config.h>
@ -345,6 +345,7 @@ launch_sat(struct plnstr *pp)
CANT_HAPPEN(pp->pln_flags & PLN_LAUNCHED); CANT_HAPPEN(pp->pln_flags & PLN_LAUNCHED);
pp->pln_flags |= PLN_LAUNCHED; pp->pln_flags |= PLN_LAUNCHED;
pp->pln_mobil = pp->pln_mobil > dist ? pp->pln_mobil - dist : 0; pp->pln_mobil = pp->pln_mobil > dist ? pp->pln_mobil - dist : 0;
pp->pln_ship = pp->pln_land = -1;
putplane(pp->pln_uid, pp); putplane(pp->pln_uid, pp);
pr("%s positioned over %s, will be ready for use in %d time units\n", pr("%s positioned over %s, will be ready for use in %d time units\n",
prplane(pp), xyas(sx, sy, player->cnum), prplane(pp), xyas(sx, sy, player->cnum),