Synonyme hinzugefuegt (Arathorn).

Ausserdem Funktionstypen.

Change-Id: I008ec70e7e53ec26f9ffa1cba09330fcec2ebc75
diff --git a/d/seher/haeuser/special/seherfaqmobil.c b/d/seher/haeuser/special/seherfaqmobil.c
index 250db4b..b7513a8 100644
--- a/d/seher/haeuser/special/seherfaqmobil.c
+++ b/d/seher/haeuser/special/seherfaqmobil.c
@@ -1,7 +1,7 @@
 // tragbare Seher-FAQ, gibt es im Seherladen zu kaufen bzw. automatisch zur Seherwerdung
 // Rikus@mg.mud.de
 
-inherit "std/thing";
+inherit "/std/thing";
 
 #include <properties.h>
 #include <wizlevels.h>
@@ -11,51 +11,92 @@
 
 static string *seite;
 
-mapping synonym = ([]);
+mapping synonym = ([
+  "neuigkeiten":"0",
+  "transport":"1",
+  "transporter":"1",
+  "transportmoeglichkeit":"1",
+  "transportmoeglichkeiten":"1",
+  "portale":"1",
+  "seherportale":"1",
+  "sehertore":"1",
+  "quest":"2",
+  "quests":"2",
+  "seherquest":"2",
+  "seherquests":"2",
+  "fluchtrichtung":"3",
+  "level":"4",
+  "seherlevel":"4",
+  "kommunikation":"5",
+  "kugel":"6",
+  "magische kugel":"6",
+  "seherkugel":"6",
+  "kristallkugel":"6",
+  "seherladen":"7",
+  "designer-seher":"8",
+  "designerseher":"8",
+  "fehlermeldung":"9",
+  "paralleldimension":"10",
+  "portal":"11",
+  "paraportal":"11",
+  "para-portal":"11",
+  "finger":"12",
+  "finger-befehl":"12",
+  "fingerbefehl":"12",
+  "echo":"13",
+  "remote":"13",
+  "r-emote":"13",
+  "haus":"14",
+  "haeuser":"14",
+  "seherhaus":"14",
+  "seherhaeuser":"14",
+  "nachwort":"15",
+  "danksagung":"16",
+  "danksagungen":"16",
+]);
 
-create()
-{
-//  if (!clonep(this_object())) return;
+protected void create() {
+  if ( !clonep() ) {
+    set_next_reset(-1);
+    return;
+  }
   ::create();
+  
   SetProp(P_SHORT,"Die SeherFAQ");
   SetProp(P_NAME,"SeherFAQ");
   SetProp(P_GENDER,FEMALE); 
-  SetProp(P_LONG,"Dies ist die SeherFAQ. Wenn Du weitere Fragen oder "+
-          "Anregungen zu dieser FAQ\nhast, sei so nett und schicke Sting "+
-          "einen kurzen Brief. Zum Inhalt der FAQ\nkommst Du mit "+
-          ">lies inhalt<\n");
+  SetProp(P_LONG, break_string(
+    "Dies ist die SeherFAQ. Wenn Du weitere Fragen oder Anregungen zu "
+    "dieser FAQ hast, sei so nett und schicke dem Regionsmagier Seher oder "
+    "einem Erzmagier einen kurzen Brief. Zum Inhalt der FAQ kommst Du mit "
+    "dem Befehl 'lies inhalt'",78));
   SetProp(P_WEIGHT,100);
   SetProp(P_VALUE,1000);
   AddId(({"faq","seherfaq"}));
   AddCmd("lies","lesen");
-  restore_object(FAQ("faq"));
   seite = get_dir(FAQ("*"))-({".","..","faq.o"});
 }
 
-init()
-{
-  object o;
-  ::init();
-  if ((o=environment()) && query_once_interactive(o) && !IS_SEER(o))
-     call_out("wech",0);
+public varargs void init(object oldenv) {
+  ::init(oldenv);
+  object o = environment();
+  if ( objectp(o) && query_once_interactive(o) && !IS_SEER(o) )
+    call_out("wech",0);
 }
 
-wech()
-{
-   write("Die Seher-FAQ lacht Dich aus und loest sich in Wohlgefallen auf.\n");
-   remove();
+void wech() {
+  write("Die Seher-FAQ lacht Dich aus und loest sich in Wohlgefallen auf.\n");
+  remove();
 }
 
-int lesen(string str)
-{
+int lesen(string str) {
   if (!str || str == "") {
     notify_fail("Was willst Du denn lesen?\n");
     return 0;
   }
-  if (environment()!=this_player()) 
-  {
-     notify_fail("Du musst die FAQ schon erst nehmen!\n");
-     return 0;
+  if (environment()!=this_player()) {
+    notify_fail("Du musst die FAQ schon erst nehmen!\n");
+    return 0;
   }
   str = lower_case(this_player()->_unparsed_args());
   if (member(seite,str)<0) {
@@ -70,10 +111,10 @@
   return 1;
 }
 
-string _query_extralook()
-{
-   object o;
-   if ((o=environment()) && (o->QueryProp(P_GENDER)==FEMALE))
-      return "Mit ihrer Seher-FAQ outet sie sich als Wurstseherin.\n";
-   return "Mit seiner Seher-FAQ outet er sich als Wurstseher.\n";
+string _query_extralook() {
+  object owner = environment();
+  return sprintf("Mit %s Seher-FAQ outet %s sich als Wurstseher%s.\n",
+           owner->QueryPossPronoun(this_object(), WEM, SINGULAR),
+           owner->QueryPronoun(WER),
+           owner->QueryProp(P_GENDER)==FEMALE ? "in" : "" );
 }