/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2018, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2020, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure, Markus Armbruster
*
* Empire is free software: you can redistribute it and/or modify
* Chad Zabel, 1994
* Steve McClure, 1998-2000
* Ron Koenderink, 2003-2009
- * Markus Armbruster, 2003-2017
+ * Markus Armbruster, 2003-2018
*/
#include <config.h>
break;
case 'F':
arg = LIMIT_TO(arg, 0, 127);
+ if (land->lnd_ship >= 0 || land->lnd_land >= 0)
+ arg = 0;
divine_unit_change((struct empobj *)land, "Fortification",
arg != land->lnd_harden, arg - land->lnd_harden,
"from %d to %d", land->lnd_harden, arg);
pln_set_tech(plane, arg);
break;
case 'F':
- arg = LIMIT_TO(arg, 0, pcp->pl_flags & P_M ? 127 : 0);
+ arg = LIMIT_TO(arg, 0, 127);
+ if (!(pcp->pl_flags & P_M)
+ || plane->pln_ship >= 0 || plane->pln_land >= 0)
+ arg = 0;
divine_unit_change((struct empobj *)plane, "Fortification",
arg != plane->pln_harden, arg - plane->pln_harden,
"from %d to %d", plane->pln_harden, arg);
divine_flag_change((struct empobj *)plane, "Flags",
plane->pln_flags, arg, plane_flags);
plane->pln_flags = arg;
+ if (pln_is_in_orbit(plane))
+ plane->pln_ship = plane->pln_land = -1;
break;
default:
pr("huh? (%s)\n", key);