Aenderungen fuer wieder funktionierendes strict_types

- Deklarative Casts hinzugefuegt
- Typen gefixt

Change-Id: I44c6082d907efb241a35da248774809054f8c5ab
diff --git a/secure/merlin.c b/secure/merlin.c
index 21a4333..d010058 100644
--- a/secure/merlin.c
+++ b/secure/merlin.c
@@ -73,8 +73,8 @@
   move("/gilden/abenteurer",0);
   MBanishListe = m_allocate(0,2);
   restore_object(SAVEFILE);
-  EVENTD->RegisterEvent(EVT_LIB_PLAYER_CREATION, "player_change", ME);
-  EVENTD->RegisterEvent(EVT_LIB_LOGIN, "player_change", ME);
+  ({int})EVENTD->RegisterEvent(EVT_LIB_PLAYER_CREATION, "player_change", ME);
+  ({int})EVENTD->RegisterEvent(EVT_LIB_LOGIN, "player_change", ME);
   // absichtlich kein EVT_LIB_LOGOUT, s. Kommentar zu notify_player_leave().
 }
 
@@ -112,7 +112,7 @@
 {
   if (!stringp(str)||str=="")
     return 0;
-  return call_other(this_object(),"_query_"+str);
+  return ({mixed})call_other(this_object(),"_query_"+str);
 }
 
 varargs int id(string str)
@@ -144,7 +144,7 @@
 
 string long()
 {
-  EPMASTER->GiveExplorationPoint("merlin");
+  ({int})EPMASTER->GiveExplorationPoint("merlin");
   return break_string(
       "Merlin - der maechtige Urvater aller Magier - ist ein hagerer "
       "Mann, der einen blauen, mit Monden und Sternen uebersaeten Umhang "
@@ -227,7 +227,7 @@
 string QueryPossPronoun( mixed what, int casus, int number )
 {
   int gen2;
-  gen2 = ( intp( what ) ) ? what : what->QueryProp(P_GENDER);
+  gen2 = ( intp( what ) ) ? what : ({int})what->QueryProp(P_GENDER);
   return "sein" + query_g_suffix( gen2, casus, number );
 }
 
@@ -273,7 +273,7 @@
   mixed *art;
 
   art=({"stufen","Merlin",0,0,sprintf("%s ist jetzt ein%s Seher%s!",who,(g==2?"e":""),(g==2?"in":"")),sprintf("\nAm %s hat %s die noetigen Bedingungen\nerfuellt und ist vom Spielerstatus zum Seherstatus aufgestiegen. \n\n Herzlichen Glueckwunsch, %s!\n",dtime(time()),who,who)});
-  "/secure/news"->WriteNote(art,1);
+  ({int})"/secure/news"->WriteNote(art,1);
 }
 
 static void PostMagier(string who, string prom, int gender)
@@ -282,7 +282,7 @@
 
   art=({"stufen","Merlin",0,0,sprintf("%s ist jetzt ein%s Magier%s!",who,(gender==2?"e":""),(gender==2?"in":"")),sprintf("\nAm %s hat %s %s zu%s Magier%s\nberufen. Herzlichen Glueckwunsch, %s. Glueckwuensche auch an Dich,\n %s, zu Deine%s neuen %s!\n",dtime(time()),prom,who,(gender==2?"r":"m"),(gender==2?"in":""),who,prom,
 (gender==2?"r":"m"),(gender==2?"Tochter":"Sohn"))});
-  "/secure/news"->WriteNote(art,1);
+  ({int})"/secure/news"->WriteNote(art,1);
 }
 
 
@@ -290,9 +290,9 @@
   if (!objectp(wiz))
       return;
 
-  clone_object(FEHLERTEUFEL)->move(wiz, M_NOCHECK|M_GET);
+  ({int})clone_object(FEHLERTEUFEL)->move(wiz, M_NOCHECK|M_GET);
   tell_object(wiz, break_string(
-    "Huhu "+wiz->Name(WER) + "! Ich habe gesehen, dass Du keinen "
+    "Huhu "+({string})wiz->Name(WER) + "! Ich habe gesehen, dass Du keinen "
     "Fehlerteufel hast. Dieses Tool ist zum Debuggen von Fehlern im "
     "Mud sehr praktisch. Bitte schau ihn Dir mal an. :-) Die Hilfe zum "
     "Fehlerteufel kannst Du mit 'man fehlerteufel' lesen. BTW: Wenn "
@@ -324,7 +324,7 @@
   object ob = find_player(who);
   if (ob && rein && IS_WIZARD(ob)
       && !present_clone(FEHLERTEUFEL,ob)
-      && ob->QueryProp(P_LAST_LOGOUT) < 1237329604 )
+      && ({int})ob->QueryProp(P_LAST_LOGOUT) < 1237329604 )
     GibFehlerteufel(ob);
 }
 
@@ -343,7 +343,7 @@
     return;
   }
 
-  if (!pl->QueryGuest()) {
+  if (!({int})pl->QueryGuest()) {
   string plname = ({string})pl->Name(WER);
     CHMASTER->send("Anfaenger", this_object(),
       sprintf("%s macht nun ebenfalls das Morgengrauen unsicher. "
@@ -373,16 +373,16 @@
         tell_object(pl,break_string(sprintf("Huhu %s, um einen Bug in "
                 "Deinem Spielerobjekt zu beheben, wirst Du in ca. 8s "
                 "neugeladen. Bitte warte bis dahin ab und bleibe, wo "
-                "Du gerade bist.",pl->Name()),78,"Merlin teilt Dir mit: "));
+                "Du gerade bist.",({string})pl->Name()),78,"Merlin teilt Dir mit: "));
         return;
     }
 
     plname=getuid(pl);
     tell_object(pl,break_string(sprintf("Huhu %s, um einen Bug in "
             "Deinem Spielerobjekt zu beheben, wirst Du jetzt "
-            "neugeladen.",pl->Name()),78,"Merlin teilt Dir mit: "));
+            "neugeladen.",({string})pl->Name()),78,"Merlin teilt Dir mit: "));
 
-    if (err=catch(master()->renew_player_object(pl);publish)) {
+    if (err=catch(({int})master()->renew_player_object(pl);publish)) {
         log_file("zesstra/failed_rewew.log",sprintf("%s: Fehler %O beim "
               "Renew von %s\n",dtime(time()),err,plname));
         tell_object(pl,break_string("Beim Neuladen Deines Spielerobjekts "
@@ -444,7 +444,7 @@
   write("Merlin gibt Dir eine schallende Ohrfeige.\n");
   say(sprintf("Merlin gibt %s eine schallende Ohrfeige.\n",
               capitalize((string)this_player()->name(WEM))), this_player());
-  en->StopHuntFor(this_object(), 1);
+  ({int})en->StopHuntFor(this_object(), 1);
 }
 */
 void shoutansw()
@@ -455,11 +455,11 @@
 
   if (!(env=environment()))
     return;
-  if (!(ti=this_interactive())||ti->QueryProp(P_LEVEL)<19||ti->QueryProp(P_GHOST))
+  if (!(ti=this_interactive())||({int})ti->QueryProp(P_LEVEL)<19||({int})ti->QueryProp(P_GHOST))
     return;
   tell_object(ti,"Du spuerst einen sengenden Schmerz.\n");
-  ti->do_damage( ti->QueryProp(P_HP) / 2 + 5);
-  if(ti->QueryProp(P_GHOST)) return;
+  ({int})ti->do_damage( ({int})ti->QueryProp(P_HP) / 2 + 5);
+  if(({int})ti->QueryProp(P_GHOST)) return;
   ans="ich hab nicht die leiseste Idee, wo ich hier bin ...\n";
   path=old_explode(object_name(env),"/");
   if (path[0]=="d")
@@ -526,8 +526,8 @@
                 if( path[0]=="p" && path[1]=="verein" ) {
                         ans="ich stehe in Port Vain.";
                 }
-  if (!this_interactive()->QueryProp(P_INVIS))
-    ans=this_interactive()->Name(WER)+", "+ans;
+  if (!({int})this_interactive()->QueryProp(P_INVIS))
+    ans=({string})this_interactive()->Name(WER)+", "+ans;
   else ans=capitalize(ans);
   call_out("myshout",0,break_string(ans, 78, "Merlin ruft: "));
 }
@@ -577,7 +577,7 @@
     if (sscanf(str,"%s sagt: %s",name,message)!=2)
       return;
 
-  if (!name || !sizeof(name) || !master()->find_userinfo(name))
+  if (!name || !sizeof(name) || !({int})master()->find_userinfo(name))
     return;
 
   if (name!=getuid(this_interactive()) && !ARCH_SECURITY)
@@ -646,7 +646,7 @@
   if (IS_SEER(pl))
     return 1;
   
-  if (LEPMASTER->QueryReadyForWiz(pl)==1)
+  if (({int})LEPMASTER->QueryReadyForWiz(pl)==1)
     return 1;
 
   s=({string})LEPMASTER->QueryReadyForWizText(pl); 
@@ -660,7 +660,7 @@
                                78, "Merlin teilt Dir mit: "));
 
   if (environment() == environment(pl))
-    say(pl->name(WER)
+    say(({string})pl->name(WER)
         +" erfuellt noch nicht alle Anforderungen fuer den "+was+
         "status.\n",pl);
   
@@ -689,11 +689,11 @@
   //
   // player is second?
   //
-  if (who->QueryProp(P_SECOND))
+  if (({string})who->QueryProp(P_SECOND))
   {
      tell_object(who,"Du bist ein Zweitspieler und kannst als solcher kein Magier werden.\n"
           +"Versuchs Doch mal mit Deinem Erstie.\n");
-     write("Du kannst "+who->name()+" nicht zum Magier machen. Das geht bei "
+     write("Du kannst "+({string})who->name()+" nicht zum Magier machen. Das geht bei "
           +"Zweities\nleider nicht. Frag doch mal nach dem Erstie.\n");
      return 1;
   }
@@ -713,15 +713,15 @@
   {
     tell_object(promoter,capitalize(who)+" darf nur von einem Erzmagier zum "+
                     "Magier gemacht werden.\n");
-    say(promoter->name(WER)+" ist kein Erzmagier und darf "+capitalize(who)+
+    say(({string})promoter->name(WER)+" ist kein Erzmagier und darf "+capitalize(who)+
             " nicht zum Magier machen.\n");
     return 1;
   }
   //
   // player has PK?
   //
-  if (who->QueryProp("playerkills")) {
-     tell_room(environment(who),who->name()+" hat noch einen Playerkill und kann somit kein Magier werden.\n"
+  if (({string})who->QueryProp("playerkills")) {
+     tell_room(environment(who),({string})who->name()+" hat noch einen Playerkill und kann somit kein Magier werden.\n"
                            "Am besten den Sheriff oder einen Erzmagier verstaendigen.\n");
          return 1;
   }
@@ -741,7 +741,7 @@
   {
     if (!ARCH_SECURITY) {
       Write("Dich kann nur ein Erzmagier zum \"richtigen\" Magier machen!\n");
-      Say("Nur ein Erzmagier kann "+who->name(WEN)+" zum \"richtigen\" Magier machen!\n");
+      Say("Nur ein Erzmagier kann "+({string})who->name(WEN)+" zum \"richtigen\" Magier machen!\n");
       return 0;
     }
     ret=({int})"secure/master"->advance_wizlevel(geteuid(who),21);
@@ -750,11 +750,11 @@
       say("Merlin: error "+ret+"\n");
       write("Merlin: error "+ret+"\n");
     }
-    write("Merlin ruft: "+who->name(WER)+" ist in den Kreis der Magier "+
+    write("Merlin ruft: "+({string})who->name(WER)+" ist in den Kreis der Magier "+
               "aufgenommen worden!\n");
-    shout("Merlin ruft: "+who->name(WER)+" ist in den Kreis der Magier "+
+    shout("Merlin ruft: "+({string})who->name(WER)+" ist in den Kreis der Magier "+
               "aufgenommen worden!\n");
-    "secure/master"->renew_player_object(who);
+    ({int})"secure/master"->renew_player_object(who);
     return 1;
   }
 
@@ -766,7 +766,7 @@
     domains=({string*})"secure/master"->get_domain_homes(getuid(who));
     if (!domains || !pointerp(domains) || !sizeof(domains))
     {
-      Say(who->name(WER)+" gehoert noch keiner Region an und kann daher noch "+
+      Say(({string})who->name(WER)+" gehoert noch keiner Region an und kann daher noch "+
               "kein Voll-\nmagier werden.\n");
       Write("Du gehoerst noch keiner Region an. Schliess Dich zunaechst einer "+
                 "an und komm\ndann wieder!\n");
@@ -775,8 +775,8 @@
     ret=({int})"secure/master"->advance_wizlevel(geteuid(who),25);
     if(ret>0)
     {
-      shout(who->name(WER)+" arbeitet jetzt an einer Region mit!\n");
-      "secure/master"->renew_player_object(who);
+      shout(({string})who->name(WER)+" arbeitet jetzt an einer Region mit!\n");
+      ({int})"secure/master"->renew_player_object(who);
       return 1;
     }
     write("RETURNVALUE "+ret+"\n");
@@ -791,7 +791,7 @@
   {
     if (!ARCH_SECURITY) {
       Write("Dich kann nur ein Erzmagier zum \"richtigen\" Magier machen!\n");
-      Say("Nur ein Erzmagier kann "+who->name(WEN)+" zum \"richtigen\" Magier machen!\n");
+      Say("Nur ein Erzmagier kann "+({string})who->name(WEN)+" zum \"richtigen\" Magier machen!\n");
       return 0;
     }
     ret=({int})"secure/master"->advance_wizlevel(geteuid(who),20);
@@ -801,7 +801,7 @@
       write("Merlin: error "+ret+"\n");
     }
     string wizname = ({string})who->query_real_name();
-    "secure/master"->renew_player_object(who);
+    ({int})"secure/master"->renew_player_object(who);
     // Fehlerteufel geben
     call_out(#'GibFehlerteufel,4,find_player(wizname));
     return 1;
@@ -815,7 +815,7 @@
     tell_object(promoter,"Du musst derzeit mindestens Level "+
                     (DOMAINMEMBER_LVL+1)+" haben, um jemanden befoerden zu "+
                                 "koennen.\n");
-    say(promoter->name(WER)+" ist kein Vollmagier und darf daher niemanden "+
+    say(({string})promoter->name(WER)+" ist kein Vollmagier und darf daher niemanden "+
             "zum Vollmagier machen.\n");
     return 1;
   }
@@ -824,19 +824,19 @@
   // Er schlaegt fehl, wenn der Vertrag der Clone einer alten BP ist.
   if (!(vertrag=present_clone("/obj/vertrag",who)) ||
       object_name(blueprint(vertrag))!="/obj/vertrag" ||
-      !(vertrag->is_unterschrieben()) )
+      !(({int})vertrag->is_unterschrieben()) )
   {
     Write("Du hast ja gar keinen unterschriebenen Vertrag bei Dir. Besorg Dir "+
               "einen Ver-\ntrag, unterschreibe ihn und komm dann wieder!\n");
-    Say(who->name(WER)+" hat keinen unterschriebenen Vertrag.\n");
+    Say(({string})who->name(WER)+" hat keinen unterschriebenen Vertrag.\n");
     return 1;
   }
   if (geteuid(vertrag)!=secure_euid())
   {
     tell_object(promoter,"Das geht nicht, er hat einen Vertrag von "+
                     capitalize(geteuid(vertrag))+" bei sich.\n");
-    say(promoter->name(WER)+" versucht, "+who->name(WER)+" zum Magier zu "+
-            "machen, doch "+who->name(WER)+" hat einen Vertrag\nvon "+
+    say(({string})promoter->name(WER)+" versucht, "+({string})who->name(WER)+" zum Magier zu "+
+            "machen, doch "+({string})who->name(WER)+" hat einen Vertrag\nvon "+
                 capitalize(geteuid(vertrag))+" bei sich.\n",promoter);
     return 0;
   }
@@ -847,18 +847,18 @@
   {
     PostMagier(capitalize(getuid(who)),
                capitalize(secure_euid()),
-               who->QueryProp(P_GENDER));
+               ({int})who->QueryProp(P_GENDER));
     write_file("/log/SPONSOR",dtime(time())+": "+capitalize(getuid(promoter))+" macht "+
-             who->name(WER)+" zum Learner.\n");
-    write(who->name(WER)+" ist in den Kreis der Magier aufgenommen worden!\n");
-    shout(who->name(WER)+" ist in den Kreis der Magier aufgenommen worden!\n");
-    if ("secure/master"->set_player_object(geteuid(who),"/std/shells/magier")
+             ({string})who->name(WER)+" zum Learner.\n");
+    write(({string})who->name(WER)+" ist in den Kreis der Magier aufgenommen worden!\n");
+    shout(({string})who->name(WER)+" ist in den Kreis der Magier aufgenommen worden!\n");
+    if (({int})"secure/master"->set_player_object(geteuid(who),"/std/shells/magier")
             <=0)
     {
       say("MERLIN: konnte Magiershell nicht einstellen.\n");
       write("MERLIN: konnte Magiershell nicht einstellen.\n");
     }
-    "secure/master"->renew_player_object(who);
+    ({int})"secure/master"->renew_player_object(who);
     return 1;
   }
   write(" --RETURNVALUE IS "+ret+"\n");
@@ -904,7 +904,7 @@
                        +"um %s herum auf.\n\nDie Aura verschwindet langsam.\n",
                        plname),78,0,1), ({player}));
  
-  if ("secure/master"->advance_wizlevel(geteuid(player),1)<=0)
+  if (({int})"secure/master"->advance_wizlevel(geteuid(player),1)<=0)
   {
     write("Merlin sagt: Da geht was schief ... sag mal Zook Bescheid.\n");
     say("Merlin sagt: Da geht was schief ... sag mal Zook Bescheid.\n");
@@ -912,18 +912,18 @@
     return;
   }
   playername = geteuid(player);
-  "secure/master"->renew_player_object(player);
+  ({int})"secure/master"->renew_player_object(player);
   player = find_player(playername);
   text = sprintf(" ist jetzt ein%s Seher%s!\n",
-    ((player->QueryProp(P_GENDER))==2?"e":""),
-    ((player->QueryProp(P_GENDER))==2?"in":""));
+    ((({int})player->QueryProp(P_GENDER))==2?"e":""),
+    ((({int})player->QueryProp(P_GENDER))==2?"in":""));
   write("Merlin ruft: "+capitalize(playername)+text);
   shout("Merlin ruft: "+capitalize(playername)+text);
   PostSeher(capitalize(playername),({int})player->QueryProp(P_GENDER));
   if(!catch(
         faq=clone_object("/d/seher/haeuser/special/seherfaqmobil") ;publish))
   {
-    faq->move(player,M_NOCHECK);
+    ({int})faq->move(player,M_NOCHECK);
     tell_object(player, "Aus dem Nichts erscheint eine kleine Belohnung fuer Dich.\n");
   }
   
@@ -971,7 +971,7 @@
             break_string(sprintf("Das ist eine grosse Freude. %s hat sich "
      "tapfer durch das "MUDNAME" geschlagen und mittlerweile alle "
      "Anforderungen erfuellt, um %s zu werden.",                                  
-     plname, (player->QueryProp(P_GENDER))==1?"Seher":"Seherin"),
+     plname, (({int})player->QueryProp(P_GENDER))==1?"Seher":"Seherin"),
               78, "Merlin sagt: "));
 
   call_out("seer_sequenz2", 4, player, plname);
@@ -997,7 +997,7 @@
                                    "erfuellt. Warte einen Moment...", 78,
                                    "Merlin teilt Dir mit: "));
   busy=1;
-  call_out("seer_sequenz1",4,player, player->Name());
+  call_out("seer_sequenz1",4,player, ({string})player->Name());
   return(0); //non-void funktion
 }
 
@@ -1019,8 +1019,8 @@
 }
 
 public int remove(int silent) {
-  EVENTD->UnregisterEvent(EVT_LIB_LOGIN, ME);
-  EVENTD->UnregisterEvent(EVT_LIB_PLAYER_CREATION, ME);
+  ({int})EVENTD->UnregisterEvent(EVT_LIB_LOGIN, ME);
+  ({int})EVENTD->UnregisterEvent(EVT_LIB_PLAYER_CREATION, ME);
   destruct(this_object());
   return 1;
 }
@@ -1044,7 +1044,7 @@
   foreach(object ob: all_inventory(environment()))
   {
     if (interactive(ob) && query_idle(ob)<180
-        && ob->QueryProp(P_XP)>999999)
+        && ({int})ob->QueryProp(P_XP)>999999)
       return;
   }
   // Ausgaenge durchsuchen
@@ -1082,17 +1082,17 @@
 {
   string descr;
 
-  if( IS_LEARNER(who) && who->QueryProp( P_WANTS_TO_LEARN ) )
+  if( IS_LEARNER(who) && ({int})who->QueryProp( P_WANTS_TO_LEARN ) )
     descr = "[" + object_name(ME) + "]\n";
   else
     descr = "";
   descr+="Du bist im Wizclub 'Zum lustigen Merlin'. Dieser Wizclub ist etwas besonderes -\ner hat keinen festen Standort, sondern wandert im Mud herum. Ausserdem kann er\nSpieler zu Magiern machen - aber nur, wenn man ihn von aussen aus darauf\nanspricht.\n";
-  if ( who->QueryProp(P_SHOW_EXITS) )
+  if ( ({int})who->QueryProp(P_SHOW_EXITS) )
     descr += "Es gibt 2 sichtbare Ausgaenge: raus und gilde.\n";
   descr += make_invlist(who, all_inventory(ME) - ({ who }));
   if( environment())
     descr += "\nAusserhalb siehst Du:\n"
-      + environment()->int_short(who,ME);
+      + ({string})environment()->int_short(who,ME);
   return descr;
 }
 
@@ -1102,7 +1102,7 @@
   string descr;
 
   descr = "";
-  iswiz = IS_LEARNER( viewer ) && viewer->QueryProp(P_WANTS_TO_LEARN);
+  iswiz = IS_LEARNER( viewer ) && ({int})viewer->QueryProp(P_WANTS_TO_LEARN);
 
   for (i = 0; i < sizeof(inv); i++)
   {
@@ -1184,7 +1184,7 @@
 
 void show_exits()
 {
-  printf("%s",environment()->GetExits());
+  printf("%s",({string})environment()->GetExits());
 }
 
 int gehen(string str)
@@ -1198,10 +1198,10 @@
   switch (query_verb())
   {
     case "gilde":
-      this_player()->move("/gilden/abenteurer",M_GO,"in die Gilde");
+      ({int})this_player()->move("/gilden/abenteurer",M_GO,"in die Gilde");
       return 1;
     case "raus":
-      this_player()->move(environment(),M_GO,"raus");
+      ({int})this_player()->move(environment(),M_GO,"raus");
       return 1;
   }
   if (!IS_WIZARD(this_interactive()))
@@ -1212,7 +1212,7 @@
   mapping exits=({mapping})environment()->QueryProp(P_EXITS);
   if (!str||str=="")
   {
-    printf(environment()->int_short(ME,ME));
+    printf(({string})environment()->int_short(ME,ME));
     show_exits();
     return 1;
   }
@@ -1233,7 +1233,7 @@
   if (str[0]=='*')
   {
     goto(str[1..]);
-    printf(environment()->int_short(ME,ME));
+    printf(({string})environment()->int_short(ME,ME));
     show_exits();
     return 1;
   }
@@ -1241,7 +1241,7 @@
     return 0;
   move(exits[str],0);
   write("Merlin sagt: Jawoll, Chef.\n");
-  printf(environment()->int_short(ME,ME));
+  printf(({string})environment()->int_short(ME,ME));
   show_exits();
   return 1;
 }