/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2010, Dave Pare, Jeff Bailey, Thomas Ruschak,
- * Ken Stevens, Steve McClure
+ * Copyright (C) 1986-2014, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Ken Stevens, Steve McClure, Markus Armbruster
*
- * This program is free software; you can redistribute it and/or modify
+ * Empire is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* ---
*
* David Sharnoff, 1987
* Ken Stevens, 1995 (rewritten)
* Steve McClure, 1998-2000
- * Markus Armbruster, 2004-2009
+ * Markus Armbruster, 2004-2013
*/
#include <config.h>
#include <ctype.h>
#include "commands.h"
-#include "empobj.h"
#include "item.h"
#include "land.h"
#include "optlist.h"
move_amt = -amount - unit_amt;
else
move_amt = load_unload == LOAD ? amount : -amount;
- if (move_amt > unit_max - unit_amt)
- move_amt = unit_max - unit_amt;
- if (move_amt < -unit_amt)
- move_amt = -unit_amt;
- if (move_amt > sect_amt)
- move_amt = sect_amt;
- if (move_amt < sect_amt - ITEM_MAX)
- move_amt = sect_amt - ITEM_MAX;
+ move_amt = LIMIT_TO(move_amt, -unit_amt, unit_max - unit_amt);
+ move_amt = LIMIT_TO(move_amt, sect_amt - ITEM_MAX, sect_amt);
return move_amt;
}
-static int
+int
load_comm_ok(struct sctstr *sectp, natid unit_own,
i_type item, int move_amt)
{
gift(natid givee, natid giver, void *ptr, char *mesg)
{
if (giver != givee)
- wu(0, givee, "%s %s %s\n", cname(giver), obj_nameof(ptr), mesg);
+ wu(0, givee, "%s %s %s\n", cname(giver), unit_nameof(ptr), mesg);
unit_give_away(ptr, givee, 0);
}
} else if (sp->shp_x != pln.pln_x || sp->shp_y != pln.pln_y)
continue;
- if (!could_be_on_ship(&pln, sp, 0, 0, 0, 0)) {
+ if (!could_be_on_ship(&pln, sp)) {
if (noisy) {
if (plchr[(int)pln.pln_type].pl_flags & P_K)
p = "choppers";
int load_spy = 0;
if (load_unload == LOAD) {
- if (opt_LANDSPIES) {
- if ((mchr[(int)sp->shp_type].m_flags & M_SUB) &&
- (mchr[(int)sp->shp_type].m_nland == 0)) {
- if (shp_nland(sp) >= 2) {
- pr("Non-land unit carrying subs can only carry up to two spy units.\n");
- return 0;
- }
- /* Eh, let 'em load a spy only */
- load_spy = 1;
+ if ((mchr[(int)sp->shp_type].m_flags & M_SUB) &&
+ (mchr[(int)sp->shp_type].m_nland == 0)) {
+ if (shp_nland(sp) >= 2) {
+ pr("Non-land unit carrying subs can only carry up to two spy units.\n");
+ return 0;
}
+ /* Eh, let 'em load a spy only */
+ load_spy = 1;
}
if (!load_spy && shp_nland(sp) >= mchr[sp->shp_type].m_nland) {
if (noisy) {
/* Fit unit on ship */
if (load_unload == LOAD) {
/* We have to check again, since it may have changed */
- if (opt_LANDSPIES) {
- if ((mchr[(int)sp->shp_type].m_flags & M_SUB) &&
- (mchr[(int)sp->shp_type].m_nland == 0)) {
- if (shp_nland(sp) >= 2) {
- pr("Non-land unit carrying subs can only carry up to two spy units.\n");
- return 0;
- }
- /* Eh, let 'em load a spy only */
- load_spy = 1;
+ if ((mchr[(int)sp->shp_type].m_flags & M_SUB) &&
+ (mchr[(int)sp->shp_type].m_nland == 0)) {
+ if (shp_nland(sp) >= 2) {
+ pr("Non-land unit carrying subs can only carry up to two spy units.\n");
+ return 0;
}
+ /* Eh, let 'em load a spy only */
+ load_spy = 1;
}
if (!load_spy && shp_nland(sp) >= mchr[sp->shp_type].m_nland) {
if (noisy) {