Aenderungen fuer wieder funktionierendes strict_types

- Deklarative Casts hinzugefuegt
- Typen gefixt

Change-Id: I44c6082d907efb241a35da248774809054f8c5ab
diff --git a/std/shells/magier/admin.c b/std/shells/magier/admin.c
index 64f3168..0dcac9f 100644
--- a/std/shells/magier/admin.c
+++ b/std/shells/magier/admin.c
@@ -89,7 +89,7 @@
   if (!str) return 0;
   if (sscanf(str,"%s %s",master,domain)!=2) return 0;
   if (!master || !domain) return 0;
-  if (!"/secure/master"->add_domain_master(master,domain))
+  if (!({int})"/secure/master"->add_domain_master(master,domain))
     write("Hat nicht funktioniert.\n");
   else
     write("Ok.\n");
@@ -109,7 +109,7 @@
   if (!str) return 0;
   if (sscanf(str,"%s %s",master,domain)!=2) return 0;
   if (!master || !domain) return 0;
-  if (!"/secure/master"->remove_domain_master(master,domain))
+  if (!({int})"/secure/master"->remove_domain_master(master,domain))
     write("Hat nicht funktioniert.\n");
   else
     write("Ok.\n");
@@ -130,7 +130,7 @@
   if (!str) return 0;
   if (sscanf(str, "%s %s", master, guild)!=2) return 0;
   if (!master || !guild) return 0;
-  if (!"/secure/master"->add_guild_master(master,guild))
+  if (!({int})"/secure/master"->add_guild_master(master,guild))
     write("Hat nicht funktioniert.\n");
   else
     write ("Ok.\n");
@@ -150,7 +150,7 @@
   if (!str) return 0;
   if (sscanf(str, "%s %s", master, guild)!=2) return 0;
   if (!master || !guild) return 0;
-  if (!"/secure/master"->remove_guild_master(master,guild))
+  if (!({int})"/secure/master"->remove_guild_master(master,guild))
     write("Hat nicht funktioniert.\n");
   else
     write("Ok.\n");
@@ -179,12 +179,12 @@
 
     if ( arg=="?" )
     {
-        write(call_other("/secure/sinmaster","ListSinners"));
+        write(({string})call_other("/secure/sinmaster","ListSinners"));
         return 1;
     }
     if ( arg=="!" )
     {
-        write(call_other("/secure/sinmaster","Dump"));
+        write(({string})call_other("/secure/sinmaster","Dump"));
         return 1;
     }
     if ( arg=="*" )
@@ -200,7 +200,7 @@
     {
       if ( i<2 )
         return 0;
-      write(call_other("/secure/sinmaster","RemoveSin",
+      write(({string})call_other("/secure/sinmaster","RemoveSin",
             lowerstring(parts[0][1..]),
             to_int(parts[1])));
     }
@@ -208,7 +208,7 @@
     {
       if ( i<2 )
         return 0;
-      write(call_other("/secure/sinmaster","AddSin",
+      write(({string})call_other("/secure/sinmaster","AddSin",
             lowerstring(parts[0][1..]),
             implode(parts[1..]," ")));
     }
@@ -216,7 +216,7 @@
     {
       if ( i>1 )
         return 0;
-      write(call_other("/secure/sinmaster","ListSins",
+      write(({string})call_other("/secure/sinmaster","ListSins",
             lowerstring(parts[0])));
     }
     return 1;
@@ -251,7 +251,7 @@
   }
 
   name=lower_case(name);
-  "/secure/master"->BanishName( name, grund, force );
+  ({int})"/secure/master"->BanishName( name, grund, force );
   return 1;
 }
 
@@ -305,7 +305,7 @@
     name = lower_case(name);
 
     if ( !grund || !stringp(grund) || lower_case(grund) != "loeschen" ){
-        "/secure/merlin"->MBanishInsert( name, grund, this_interactive() );
+        ({void})"/secure/merlin"->MBanishInsert( name, grund, this_interactive() );
         write( "Du setzt "+capitalize(name)+" auf die MBanish-Liste.\n" );
     }
     else{
@@ -313,7 +313,7 @@
             write( "Das duerfen nur Erzmagier.\n" );
             return 1;
         }
-        "/secure/merlin"->MBanishDelete( name );
+        ({void})"/secure/merlin"->MBanishDelete( name );
         write( "Du loescht "+capitalize(name)+" von der MBanish-Liste.\n" );
     }
 
@@ -342,7 +342,7 @@
 
   name = lower_case(name);
 
-  if ( !"/secure/master"->TBanishName( name, days ) )
+  if ( !({int})"/secure/master"->TBanishName( name, days ) )
       return 1;
 
   if ( !days )
@@ -395,7 +395,7 @@
 
     _notify_fail("Syntax: sbanish <numerische ip> <tage>\n");
 
-    if ( sscanf( this_player()->_unparsed_args(), "%s %d", ip, days ) != 2 )
+    if ( sscanf( ({string})this_player()->_unparsed_args(), "%s %d", ip, days ) != 2 )
         return 0;
 
     if ( !ip || !sizeof(ip) )
diff --git a/std/shells/magier/comm.c b/std/shells/magier/comm.c
index 5263979..444efb3 100644
--- a/std/shells/magier/comm.c
+++ b/std/shells/magier/comm.c
@@ -51,7 +51,7 @@
   }
   msg=break_string(msg,78);
   tell_object(ob,msg);
-  printf("%s->%s",ob->Name(WEN),msg);
+  printf("%s->%s",({string})ob->Name(WEN),msg);
   return 1;
 }
 
diff --git a/std/shells/magier/magier_ext.c b/std/shells/magier/magier_ext.c
index 365ac63..926d0b2 100644
--- a/std/shells/magier/magier_ext.c
+++ b/std/shells/magier/magier_ext.c
@@ -154,7 +154,7 @@
 static string _set_currentdir(string path)
 {
   Set(P_CURRENTDIR, path);
-  this_object()->modify_prompt();  // Prompt mit neuem Pfad setzen, telnetneg
+  ({void})this_object()->modify_prompt();  // Prompt mit neuem Pfad setzen, telnetneg
   return path;
 }
 
@@ -212,7 +212,7 @@
 
 static string _set_prompt(string prompt) {
   Set(P_PROMPT, prompt, F_VALUE);
-  this_object()->modify_prompt(); // neuen Prompt setzen (telnetneg.c)
+  ({void})this_object()->modify_prompt(); // neuen Prompt setzen (telnetneg.c)
   return prompt;
 }
 
@@ -292,7 +292,7 @@
            "nicht moeglich.\n");
     return 1;
   }
-  ob->start_player(capitalize(getuid(this_object())));
+  ({int})ob->start_player(capitalize(getuid(this_object())));
   remove();
   return 1;
 }
@@ -451,7 +451,7 @@
             QueryProp(P_MMSGOUT)),({ this_object() }));
   if (inform=="e") {
     // Logout-event ausloesen
-    EVENTD->TriggerEvent(EVT_LIB_LOGOUT, ([
+    ({int})EVENTD->TriggerEvent(EVT_LIB_LOGOUT, ([
             E_OBJECT: this_object(),
             E_PLNAME: getuid(this_object()),
             E_ENVIRONMENT: environment() ]) );
@@ -473,7 +473,7 @@
   SetProp(P_INVIS, 0);
   if (inform=="e") {
     // Login-event ausloesen
-    EVENTD->TriggerEvent(EVT_LIB_LOGIN, ([
+    ({int})EVENTD->TriggerEvent(EVT_LIB_LOGIN, ([
           E_OBJECT: this_object(),
           E_PLNAME: getuid(this_object()),
           E_ENVIRONMENT: environment() ]) );
diff --git a/std/shells/magier/objects.c b/std/shells/magier/objects.c
index 1a51ba5..b93f6c7 100644
--- a/std/shells/magier/objects.c
+++ b/std/shells/magier/objects.c
@@ -67,8 +67,8 @@
   if (!objectp(ob))
     return printf("clone: %s: Objekt beim Erzeugen zerstoert.\n",
                   args[0]),1;
-  if ((ob->move(this_object(),M_GET)>0) || 
-      (!objectp(ob)||ob->move(environment(),M_NOCHECK)>0)||!objectp(ob))
+  if ((({int})ob->move(this_object(),M_GET)>0) || 
+      (!objectp(ob)||({int})ob->move(environment(),M_NOCHECK)>0)||!objectp(ob))
   {
     if (!objectp(ob))
       return printf("clone: %s: Objekt beim Erzeugen zerstoert.\n",
@@ -118,11 +118,11 @@
   }
   else
     ob=args[0];
-  cmdline=capitalize(to_string(ob->name(WER)));
+  cmdline=capitalize(to_string(({string})ob->name(WER)));
   flags=({int})ob->QueryProp(P_PLURAL); // Missbrauch von flags :o)
   if (query_verb()=="destruct")
   {
-    if (!ob->remove())
+    if (!({int})ob->remove())
     {
       notify_fail(cmdline+" will nicht zerstoert werden!\n");
       return 0;
diff --git a/std/shells/magier/parsing.c b/std/shells/magier/parsing.c
index a38210a..31d3429 100644
--- a/std/shells/magier/parsing.c
+++ b/std/shells/magier/parsing.c
@@ -285,7 +285,7 @@
   }
 
   // Normalisiertes Pfadarray besorgen
-  string *patharray=master()->path_array(filename);
+  string *patharray=({string*})master()->path_array(filename);
   // und daraus auch filename neu erzeugen
   filename=implode(patharray, "/");
 
@@ -301,7 +301,7 @@
 
     object *vrooms = ({});
     if (vcompiler)
-      vrooms = vcompiler->QueryObjects();
+      vrooms = ({object*})vcompiler->QueryObjects();
     
     map(vrooms,#'_vc_map,&data);
   }
diff --git a/std/shells/magier/players.c b/std/shells/magier/players.c
index a07c343..6c80ffe 100644
--- a/std/shells/magier/players.c
+++ b/std/shells/magier/players.c
@@ -87,7 +87,7 @@
       if ( !pointerp(message) || sizeof(message) != 3 ){
           tell_room(environment(),sprintf("%s beschwoert einen Blitz "
                 "vom Himmel.\n",capitalize(getuid())),({ this_object() }));
-          printf("Du toetest %s.\n",opfer->name( WEN,2));
+          printf("Du toetest %s.\n",({string})opfer->name( WEN,2));
       }
       else
       {
@@ -97,7 +97,7 @@
         tell_object(opfer,_zap_message(message[2],opfer));
       }
 
-      opfer->die();
+      ({void})opfer->die();
       return 1;
   }
   else{
@@ -121,7 +121,7 @@
     mixed *pur = Query(P_PURSUERS);
     if ( pointerp(pur) && sizeof(pur) && objectp(pur[0]) )
     {
-      pur[0]->RemovePursuer(this_object());
+      ({void})pur[0]->RemovePursuer(this_object());
       ReceiveMsg("Verfolgungsmodus abgeschaltet.", MT_NOTIFICATION);
     }
     else
@@ -167,10 +167,10 @@
     else
     {
       ReceiveMsg(sprintf(
-        "Du verfolgst jetzt %s. [%s]", ziel->name(WEN), object_name(ziel)),
+        "Du verfolgst jetzt %s. [%s]", ({string})ziel->name(WEN), object_name(ziel)),
         MT_NOTIFICATION, MA_MOVE);
-      ziel->AddPursuer(this_object());
-      ziel->TakeFollowers();
+      ({void})ziel->AddPursuer(this_object());
+      ({void})ziel->TakeFollowers();
     }
   }
   else
@@ -201,10 +201,10 @@
     }
   if(living=find_living(livname))
   {
-    if (living->move(object_name(environment()),
+    if (({int})living->move(object_name(environment()),
                      M_TPORT|M_NOCHECK)<=0)
     {
-      printf("Teleportieren von %s fehlgeschlagen.\n",living->Name(WEM));
+      printf("Teleportieren von %s fehlgeschlagen.\n",({string})living->Name(WEM));
       if (IS_LEARNER(living))
         tell_object(living,sprintf("%s wollte Dich teleportieren, "
              "hat aber versagt!\n",capitalize(getuid())));
@@ -215,7 +215,7 @@
     "Du verlierst die Orientierung ...\n"
     +(QueryProp(P_INVIS)?"":"%s holt Dich zu sich.\n"),
     capitalize(getuid())));
-    printf("%s wurde herbeizitiert.\n",living->Name(WER));
+    printf("%s wurde herbeizitiert.\n",({string})living->Name(WER));
     return 1;
   }
   printf("Das Lebewesen '%s' konnte nicht gefunden werden.\n",
@@ -249,13 +249,13 @@
     mapping enemies = ({mapping})obj->StopHuntingMode(1);
     foreach(object en : enemies)
     {
-      en->StopHuntFor(obj, 1);
+      ({int})en->StopHuntFor(obj, 1);
       tell_object(obj,sprintf("%s beendet Deinen Kampf mit %s.\n",
-                              capitalize(getuid()),en->Name(WEM)));
+                              capitalize(getuid()),({string})en->Name(WEM)));
       tell_object(en,sprintf("%s beendet Deinen Kampf mit %s.\n",
                                   capitalize(getuid()),him));
     }
-    printf("%s und alle Gegner wurden befriedet.\n",obj->Name(WER));
+    printf("%s und alle Gegner wurden befriedet.\n",({string})obj->Name(WER));
   }
   return 1;
 }
@@ -281,7 +281,7 @@
   spieler = filter(users(),(: return !IS_LEARNER($1); :));
 #endif
   spieler = sort_array(spieler, function int (object a, object b)
-      { return a->QueryProp(P_LEVEL) > b->QueryProp(P_LEVEL); } );
+      { return ({int})a->QueryProp(P_LEVEL) > ({int})b->QueryProp(P_LEVEL); } );
   
   res = "Lvl Name         Erfahrung   QP  Int Str Dex Con WC   "
     "AC   HANDS HP  (max)\n"
@@ -290,19 +290,19 @@
   for (i=sizeof(spieler)-1; i>=0; i--)
     res += sprintf("%3d %-12s %9d %5d %3d %3d %3d %3d %4d %4d  %5d "
                    "%4d (%4d)\n",
-     spieler[i]->QueryProp(P_LEVEL),
+     ({int})spieler[i]->QueryProp(P_LEVEL),
      capitalize(getuid(spieler[i])),
-     spieler[i]->QueryProp(P_XP),
-     spieler[i]->QueryProp(P_QP),
-     spieler[i]->QueryAttribute(A_INT),
-     spieler[i]->QueryAttribute(A_STR),
-     spieler[i]->QueryAttribute(A_DEX),
-     spieler[i]->QueryAttribute(A_CON),
-     spieler[i]->QueryProp(P_TOTAL_WC),
-     spieler[i]->QueryProp(P_TOTAL_AC),
-     (sizeof(hands=(({int *})spieler[i]->QueryProp(P_HANDS)))?hands[1]:0),
-     spieler[i]->QueryProp(P_HP),
-     spieler[i]->QueryProp(P_MAX_HP));
+     ({int})spieler[i]->QueryProp(P_XP),
+     ({int})spieler[i]->QueryProp(P_QP),
+     ({int})spieler[i]->QueryAttribute(A_INT),
+     ({int})spieler[i]->QueryAttribute(A_STR),
+     ({int})spieler[i]->QueryAttribute(A_DEX),
+     ({int})spieler[i]->QueryAttribute(A_CON),
+     ({int})spieler[i]->QueryProp(P_TOTAL_WC),
+     ({int})spieler[i]->QueryProp(P_TOTAL_AC),
+     (sizeof(hands=(({<int|string|string*>*})spieler[i]->QueryProp(P_HANDS)))?hands[1]:0),
+     ({int})spieler[i]->QueryProp(P_HP),
+     ({int})spieler[i]->QueryProp(P_MAX_HP));
   More(res);
   return 1;
 }
@@ -324,14 +324,14 @@
   if (!(living = find_living(living_name)))
     return printf ("Ein Lebewesen namens '%s' konnte nicht gefunden werden!\n",
                    capitalize(living_name)),1;
-  if (living->command_me(what))
+  if (({int})living->command_me(what))
   {
     printf("Du zwingst %s zu \"%s\".\n",capitalize(living_name),what);
     if (!IS_ARCH(this_object()) &&
         getuid()!=({string|int})living->QueryProp(P_TESTPLAYER))
       log_file(SHELLLOG("ZWINGE"),
                sprintf("%s zwingt %s (%s) zu %s [%s]\n",
-                       capitalize(getuid()),living->Name(),capitalize(getuid(living)),
+                       capitalize(getuid()),({string})living->Name(),capitalize(getuid(living)),
                        what,dtime(time())));
   }
   else
@@ -360,7 +360,7 @@
   }
   lpv = ({int})ob->QueryProp(P_HP);
   mpv = ({int})ob->QueryProp(P_SP);
-  ob->heal_self(1000000);
+  ({void})ob->heal_self(1000000);
   string|int testie = ({string|int})ob->QueryProp(P_TESTPLAYER);
   if (!IS_LEARNER(ob)
       && (!testie || (to_string(testie)[<5..<1] == "Gilde")))
@@ -368,7 +368,7 @@
     log_file(SHELLLOG("HEAL"),
        sprintf("%s heilt %s (%s) %s (LP: %d -> %d, MP: %d -> %d)\n",
          capitalize(geteuid(this_player())),
-         call_other(ob,"name"), capitalize(geteuid(ob)),
+         ({string})call_other(ob,"name"), capitalize(geteuid(ob)),
          dtime(time()), lpv, ({int})ob->QueryProp(P_HP),
                mpv,({int})ob->QueryProp(P_SP)));
   }
@@ -422,11 +422,11 @@
   a=0;res="";
   for(i=0; i<sizeof(list); i++) {
     string name_; 
-    name_ = capitalize(list[i]->query_real_name()||"<logon>");
+    name_ = capitalize(({string})list[i]->query_real_name()||"<logon>");
     res += sprintf( "%s%-15s%s %s%-13s%s %s%3d%s %s %s %s%s%s%s %s%s\n",
                     a_ipnum, query_ip_number(list[i]),a_end,a_name,
-                    (list[i]->QueryProp(P_INVIS)?"("+name_+")":name_),
-                    a_end,a_level, MASTER->get_wiz_level(getuid(list[i])),
+                    (({int})list[i]->QueryProp(P_INVIS)?"("+name_+")":name_),
+                    a_end,a_level, ({int})MASTER->get_wiz_level(getuid(list[i])),
                     a_end,a_age,
                     time2string("%4x %0X",(({int})list[i]->QueryProp(P_AGE))*2),
                     query_idle(list[i])>=300?(a++,(a_idle+"I")):" ",
@@ -522,10 +522,10 @@
 
   foreach(object u: spieler)
   {
-    string second=u->QueryProp(P_SECOND);
+    string second=({string})u->QueryProp(P_SECOND);
     if (stringp(second) && sizeof(second))
     {
-      if (!master()->find_userinfo(second))
+      if (!({int})master()->find_userinfo(second))
         second = "*ungueltig*";
       else
         second = capitalize(second);
@@ -535,7 +535,7 @@
 
     arg+=sprintf("%-11s %-17s %26s  %-15s\n",
                  capitalize(getuid(u)), second,
-                 dtime(u->QueryProp(P_LAST_LOGIN)),
+                 dtime(({int})u->QueryProp(P_LAST_LOGIN)),
                  _spieler_time2string(query_idle(u)));
   }
   arg+="==============================================================="
diff --git a/std/shells/magier/upd.c b/std/shells/magier/upd.c
index f48d73c..87a3030 100644
--- a/std/shells/magier/upd.c
+++ b/std/shells/magier/upd.c
@@ -39,7 +39,7 @@
 { 
     if ( query_once_interactive(obj) )
       { 
-        obj->move( inv_saver, NO_CHECK );
+        ({int})obj->move( inv_saver, NO_CHECK );
         return obj;
       }
     return 0;
@@ -140,7 +140,7 @@
   }
   if (!(flags&UPD_H))
   {
-    if(err = catch(obj->remove()))
+    if(err = catch(({int})obj->remove()))
       printf("upd: %s: remove() fehlgeschlagen. Aufruf von " +
              "destruct().\n",file);
   }
@@ -394,10 +394,10 @@
             items=transpose_array(items)[0];
             while (i--)
               if (member(items, inv[i])==-1)
-                    inv[i]->move(inv_saver,NO_CHECK);
+                    ({int})inv[i]->move(inv_saver,NO_CHECK);
           }
           else // In diesem Objekt sind keine Items gesetzt.
-            while (i--) inv[i]->move(inv_saver,NO_CHECK);
+            while (i--) ({int})inv[i]->move(inv_saver,NO_CHECK);
         }
       }
       else
@@ -453,7 +453,7 @@
                  _illegal_closure(pro[names[i], F_SET_METHOD]) )
               m_delete( pro, names[i] );
           
-          obj->SetProperties(pro);
+          ({mapping})obj->SetProperties(pro);
           msg += ", Properties gesetzt";
         }
         // Wenn kein UPD_C, wird ggf. das Ergebnis von Configure() wieder
@@ -476,7 +476,7 @@
         }
         if (env)
         {
-          if ( obj->move( env, NO_CHECK ) <= 0 )
+          if ( ({int})obj->move( env, NO_CHECK ) <= 0 )
             printf( "upd: /%O konnte nicht in /%O zurueckbewegt werden\n",
                     obj, env );
           else
@@ -484,7 +484,7 @@
         }
         if (i=sizeof(inv))
         {
-          while(i--) if (inv[i]) inv[i]->move(obj, NO_CHECK );
+          while(i--) if (inv[i]) ({int})inv[i]->move(obj, NO_CHECK );
           msg += ", Inhalt zurueckbewegt";
         }
       }