From 93aa604b67786a02f4fd84cb71fc5e7b0a5e3048 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 3 Feb 2013 18:09:28 +0100 Subject: [PATCH] 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 --- src/lib/commands/edit.c | 34 ++++++++++++++--------------- tests/actofgod/actofgod.xdump | 6 +++--- tests/actofgod/journal.log | 40 ++++++++++++++++++++++------------- 3 files changed, 45 insertions(+), 35 deletions(-) diff --git a/src/lib/commands/edit.c b/src/lib/commands/edit.c index 75ce200f..9f75e4a1 100644 --- a/src/lib/commands/edit.c +++ b/src/lib/commands/edit.c @@ -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); diff --git a/tests/actofgod/actofgod.xdump b/tests/actofgod/actofgod.xdump index 2a2bade5..dac43330 100644 --- a/tests/actofgod/actofgod.xdump +++ b/tests/actofgod/actofgod.xdump @@ -365,9 +365,9 @@ actor action victim times duration time 0 42 1 39 0 0 0 44 3 1 0 0 0 44 1 32 0 0 -0 43 2 5 0 0 +0 43 2 9 0 0 0 44 3 19 0 0 -0 43 1 67 0 0 +0 43 1 71 0 0 0 42 1 4 0 0 1 45 0 1 0 0 0 43 3 27 0 0 @@ -387,7 +387,7 @@ cnum stat flags cname passwd ip hostname userid xcap ycap xorg yorg update tgms 2 active (flash beep coastwatch sonar techlists) "2" "0123456789012345678" "" "" "" 2 0 2 0 0 1 0 255 0 0 0 0 0 0 0 0 100.000 100.000 100.000 100.000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () 3 active (flash beep coastwatch sonar techlists) "drei" "3" "" "" "" 0 0 0 0 0 1 0 255 640 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () 4 deity (flash beep coastwatch sonar techlists) "4" "4" "" "" "" 0 0 0 0 0 0 0 255 640 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () -5 deity (flash beep coastwatch sonar techlists) "5" "5" "" "" "" 0 0 0 0 0 0 0 255 640 0 0 0 0 0 0 0 1.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () +5 deity (flash beep coastwatch sonar techlists) "5" "5" "" "" "" 0 0 0 0 0 1 0 255 640 0 0 0 0 0 0 0 1.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () 6 unused (flash beep coastwatch sonar techlists) "6" "6" "" "" "" 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () 7 unused (flash beep coastwatch sonar techlists) "7" "7" "" "" "" 0 0 0 0 0 65535 0 255 0 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral neutral 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () 8 unused () "" "" "" "" "" 0 0 0 0 0 0 0 255 0 0 0 0 0 0 0 0 0.00000 0.00000 0.00000 0.00000 at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war at-war 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () diff --git a/tests/actofgod/journal.log b/tests/actofgod/journal.log index 872a83b7..0e1e74c1 100644 --- a/tests/actofgod/journal.log +++ b/tests/actofgod/journal.log @@ -1510,51 +1510,51 @@ Play#0 output Play#0 6 0 640 Play#0 input edit c 1 T 3.14 Play#0 command edit - Play#0 output Play#0 1 Tech changed from 0.00 to 3.14. + Play#0 output Play#0 1 Technology of 1 (#1) changed from 0.00 to 3.14 Play#0 output Play#0 6 0 640 Play#0 input edit c 2 T 100 Play#0 command edit - Play#0 output Play#0 1 Tech changed from 0.00 to 100.00. + Play#0 output Play#0 1 Technology of 2 (#2) changed from 0.00 to 100.00 Play#0 output Play#0 6 0 640 Play#0 input edit c 3 T -1 Play#0 command edit - Play#0 output Play#0 1 Tech changed from 0.00 to 0.00. + Play#0 output Play#0 1 Technology of 3 (#3) unchanged Play#0 output Play#0 6 0 640 Play#0 input edit c 1 R 3.14 Play#0 command edit - Play#0 output Play#0 1 Research changed from 0.00 to 3.14. + Play#0 output Play#0 1 Research of 1 (#1) changed from 0.00 to 3.14 Play#0 output Play#0 6 0 640 Play#0 input edit c 2 R 100 Play#0 command edit - Play#0 output Play#0 1 Research changed from 0.00 to 100.00. + Play#0 output Play#0 1 Research of 2 (#2) changed from 0.00 to 100.00 Play#0 output Play#0 6 0 640 Play#0 input edit c 3 R -1 Play#0 command edit - Play#0 output Play#0 1 Research changed from 0.00 to 0.00. + Play#0 output Play#0 1 Research of 3 (#3) unchanged Play#0 output Play#0 6 0 640 Play#0 input edit c 1 E 3.14 Play#0 command edit - Play#0 output Play#0 1 Education changed from 0.00 to 3.14. + Play#0 output Play#0 1 Education of 1 (#1) changed from 0.00 to 3.14 Play#0 output Play#0 6 0 640 Play#0 input edit c 2 E 100 Play#0 command edit - Play#0 output Play#0 1 Education changed from 0.00 to 100.00. + Play#0 output Play#0 1 Education of 2 (#2) changed from 0.00 to 100.00 Play#0 output Play#0 6 0 640 Play#0 input edit c 3 E -1 Play#0 command edit - Play#0 output Play#0 1 Education changed from 0.00 to 0.00. + Play#0 output Play#0 1 Education of 3 (#3) unchanged Play#0 output Play#0 6 0 640 Play#0 input edit c 1 H 3.14 Play#0 command edit - Play#0 output Play#0 1 Happiness changed from 0.00 to 3.14. + Play#0 output Play#0 1 Happiness of 1 (#1) changed from 0.00 to 3.14 Play#0 output Play#0 6 0 640 Play#0 input edit c 2 H 100 Play#0 command edit - Play#0 output Play#0 1 Happiness changed from 0.00 to 100.00. + Play#0 output Play#0 1 Happiness of 2 (#2) changed from 0.00 to 100.00 Play#0 output Play#0 6 0 640 Play#0 input edit c 3 H -1 Play#0 command edit - Play#0 output Play#0 1 Happiness changed from 0.00 to 0.00. + Play#0 output Play#0 1 Happiness of 3 (#3) unchanged Play#0 output Play#0 6 0 640 Play#0 input edit c 1 n POGO Play#0 command edit @@ -1621,7 +1621,7 @@ Play#0 output Play#0 1 BTU's changed from 0 to 640 Play#0 output Play#0 4 %c xxxxx -- thing value : Play#0 input T 1 - Play#0 output Play#0 1 Tech changed from 0.00 to 1.00. + Play#0 output Play#0 1 Technology of 5 (#5) changed from 0.00 to 1.00 Play#0 output Play#0 4 %c xxxxx -- thing value : Play#0 input Play#0 output Play#0 1 Country #: 5 @@ -1632,7 +1632,7 @@ Play#0 output Play#0 1 Technology : 1.00 Research : 0.00 Play#0 output Play#0 1 Education : 0.00 Happiness : 0.00 Play#0 output Play#0 1 Money : $ 0 - Play#0 output Play#0 1 Telegrams : 0 + Play#0 output Play#0 1 Telegrams : 1 Play#0 output Play#0 6 0 640 Play#0 input read 0 Play#0 command read @@ -1752,6 +1752,10 @@ Play#0 output Play#0 1 POGO gave you 9997 civilians in 6,6 Play#0 output Play#0 1 POGO stole 1 civilians from 8,6 Play#0 output Play#0 1 Money changed from 0 to -2147483648 by an act of POGO + Play#0 output Play#0 1 Technology changed from 0.00 to 3.14 by an act of POGO! + Play#0 output Play#0 1 Research changed from 0.00 to 3.14 by an act of POGO! + Play#0 output Play#0 1 Education changed from 0.00 to 3.14 by an act of POGO! + Play#0 output Play#0 1 Happiness changed from 0.00 to 3.14 by an act of POGO! Play#0 output Play#0 6 0 640 Play#0 input read 2 Play#0 command read @@ -1777,6 +1781,10 @@ Play#0 output Play#0 1 Retreat conditions of cs cargo ship (#2) changed by an act of POGO: group set Play#0 output Play#0 1 Retreat condition of sup supply #2 changed by an act of POGO: group set Play#0 output Play#0 1 Flags of f1 Sopwith Camel #2 changed by an act of POGO: airburst set + Play#0 output Play#0 1 Technology changed from 0.00 to 100.00 by an act of POGO! + Play#0 output Play#0 1 Research changed from 0.00 to 100.00 by an act of POGO! + Play#0 output Play#0 1 Education changed from 0.00 to 100.00 by an act of POGO! + Play#0 output Play#0 1 Happiness changed from 0.00 to 100.00 by an act of POGO! Play#0 output Play#0 6 0 640 Play#0 input read 3 Play#0 command read @@ -1871,7 +1879,9 @@ Play#0 output Play#0 6 0 640 Play#0 input read 5 Play#0 command read - Play#0 output Play#0 1 No telegrams for 5 at the moment... + Play#0 output Play#0 1 + Play#0 output Play#0 1 > BULLETIN from POGO, (#0) dated Thu Jan 1 00:00:00 1970 + Play#0 output Play#0 1 Technology changed from 0.00 to 1.00 by an act of POGO! Play#0 output Play#0 6 0 640 Play#0 input read 98 Play#0 command read