]> git.pond.sub.org Git - empserver/commitdiff
edit: Improve tech, research, edu, happiness change reporting
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 3 Feb 2013 17:09:28 +0000 (18:09 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Thu, 6 Jun 2013 17:55:02 +0000 (19:55 +0200)
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>
src/lib/commands/edit.c
tests/actofgod/actofgod.xdump
tests/actofgod/journal.log

index 75ce200f5a2d141b2f5c4500c767a5adbf67b26c..9f75e4a1ea7c84981f64ea08f1c02ec3f0bb2e3f 100644 (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);
index 2a2bade53858c3b4e24aa36f042587e3a56b9ffb..dac433305768b49b03fb7dcd359e630ec4d7399f 100644 (file)
@@ -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 () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () ()
index 872a83b7d7c399f685fde5ae0224b2b2c1bbb66f..0e1e74c1a1bc1328acca1af721e560d7badbf2ce 100644 (file)
     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
     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
     Play#0 output Play#0 1 Technology <T>: 1.00                Research <R>: 0.00
     Play#0 output Play#0 1 Education <E>: 0.00         Happiness <H>: 0.00
     Play#0 output Play#0 1 Money <M>: $     0
-    Play#0 output Play#0 1 Telegrams <t>:      0
+    Play#0 output Play#0 1 Telegrams <t>:      1
     Play#0 output Play#0 6 0 640
     Play#0 input read 0
     Play#0 command read
     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
     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
     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