edit: Improve tech, research, edu, happiness change reporting

Print "Technology" instead of "Tech".  Print "FOO of CNAME (#CNUM)"
instead of just "FOO".  Print "unchanged" instead of "changed from X
to X" on no-op.

Send a bulletin to the unit owner and report news on change.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2013-02-03 18:09:28 +01:00
parent e6c1476c2f
commit 93aa604b67
3 changed files with 45 additions and 35 deletions

View file

@ -624,13 +624,25 @@ edit_sect(struct sctstr *sect, char *key, char *p)
return RET_OK;
}
static void
edit_level(struct natstr *np, int lvl, char *name, char *p)
{
float new = (float)atof(p);
new = MAX(0.0, new);
divine_nat_change(np, name,
new != np->nat_level[lvl],
(new > np->nat_level[lvl]) - (new < np->nat_level[lvl]),
"from %.2f to %.2f", np->nat_level[lvl], new);
np->nat_level[lvl] = new;
}
static int
edit_nat(struct natstr *np, char *key, char *p)
{
coord newx, newy;
natid nat = np->nat_cnum;
int arg = atoi(p);
float farg = (float)atof(p);
switch (*key) {
case 'n':
@ -703,28 +715,16 @@ edit_nat(struct natstr *np, char *key, char *p)
np->nat_money = arg;
break;
case 'T':
farg = MAX(0.0, farg);
pr("Tech changed from %.2f to %.2f.\n",
np->nat_level[NAT_TLEV], farg);
np->nat_level[NAT_TLEV] = farg;
edit_level(np, NAT_TLEV, "Technology", p);
break;
case 'R':
farg = MAX(0.0, farg);
pr("Research changed from %.2f to %.2f.\n",
np->nat_level[NAT_RLEV], farg);
np->nat_level[NAT_RLEV] = farg;
edit_level(np, NAT_RLEV, "Research", p);
break;
case 'E':
farg = MAX(0.0, farg);
pr("Education changed from %.2f to %.2f.\n",
np->nat_level[NAT_ELEV], farg);
np->nat_level[NAT_ELEV] = farg;
edit_level(np, NAT_ELEV, "Education", p);
break;
case 'H':
farg = MAX(0.0, farg);
pr("Happiness changed from %.2f to %.2f.\n",
np->nat_level[NAT_HLEV], farg);
np->nat_level[NAT_HLEV] = farg;
edit_level(np, NAT_HLEV, "Happiness", p);
break;
default:
pr("huh? (%s)\n", key);