/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2011, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2014, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure, Markus Armbruster
*
* Empire is free software: you can redistribute it and/or modify
* Known contributors to this file:
* David Muir Sharnoff
* Steve McClure, 1997
+ * Markus Armbruster, 2004-2013
*/
#include <config.h>
+#include "actofgod.h"
#include "commands.h"
#include "item.h"
#include "news.h"
return RET_SYN;
if ((amt = atoi(p)) == 0)
return RET_SYN;
- check_sect_ok(§);
+ if (!check_sect_ok(§))
+ return RET_FAIL;
n = sect.sct_item[ip->i_uid];
- if (amt < 0 && -amt > n) {
+ if (amt < 0 && n + amt < 0)
m = 0;
- } else if (amt > 0 && amt + n > ITEM_MAX) {
+ else if (amt > 0 && n > ITEM_MAX - amt)
m = ITEM_MAX;
- } else
+ else
m = n + amt;
sect.sct_item[ip->i_uid] = m;
putsect(§);
- if (sect.sct_own != 0 && m != n) {
- if (m > n) {
- if (opt_GODNEWS)
- nreport(player->cnum, N_GIFT, sect.sct_own, 1);
- wu(player->cnum, sect.sct_own, "%s gave you %d %s in %s\n",
- cname(player->cnum), m - n, ip->i_name,
- xyas(sect.sct_x, sect.sct_y, sect.sct_own));
- } else {
- if (opt_GODNEWS)
- nreport(sect.sct_own, N_TAKE, player->cnum, 1);
- wu(player->cnum, sect.sct_own, "%s stole %d %s from %s\n",
- cname(player->cnum), n - m, ip->i_name,
- xyas(sect.sct_x, sect.sct_y, sect.sct_own));
- }
- }
+ report_divine_gift(sect.sct_own, ip, m - n,
+ xyas(sect.sct_x, sect.sct_y, sect.sct_own));
+ if (m - n != amt)
+ pr("Only %d %s in %s\n", abs(m - n),
+ m - n >= 0 ? "given" : "taken",
+ xyas(sect.sct_x, sect.sct_y, player->cnum));
pr("%d %s in %s\n", m, ip->i_name,
xyas(sect.sct_x, sect.sct_y, player->cnum));
}