Unwirksame type casts gefixt.

Type casts von unknown/mixed funktionieren nicht.

Change-Id: I984db5f926419bf04881aeb7d75e2c902a7df670
diff --git a/std/shells/magier/players.c b/std/shells/magier/players.c
index a3fb249..3b5e054 100644
--- a/std/shells/magier/players.c
+++ b/std/shells/magier/players.c
@@ -42,10 +42,10 @@
 
 private string _zap_message(string str, object obj)
 {
-  str=regreplace(str,"@@wer@@",(string)obj->name(WER,2),1);
-  str=regreplace(str,"@@wessen@@",(string)obj->name(WESSEN,2),1);
-  str=regreplace(str,"@@wem@@",(string)obj->name(WEM,2),1);
-  str=regreplace(str,"@@wen@@",(string)obj->name(WEN,2),1);
+  str=regreplace(str,"@@wer@@",({string})obj->name(WER,2),1);
+  str=regreplace(str,"@@wessen@@",({string})obj->name(WESSEN,2),1);
+  str=regreplace(str,"@@wem@@",({string})obj->name(WEM,2),1);
+  str=regreplace(str,"@@wen@@",({string})obj->name(WEN,2),1);
   str=regreplace(str,"@@ich@@",name(WER,2),1);
   return capitalize(str);
 }
@@ -246,7 +246,7 @@
   {
     if (!obj=find_living(sname))
       return printf("Kein solches Lebewesen im Spiel.\n"),1;
-    him=(string)obj->name(WEM);
+    him=({string})obj->name(WEM);
     i=sizeof(enem=(object *)(((mixed *)obj->StopHuntingMode())[0]));
     // Mistdriver ... object** waere richtig gewesen ... *seufz*
     while(i--)
@@ -302,7 +302,7 @@
      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),
+     (sizeof(hands=(({int *})spieler[i]->QueryProp(P_HANDS)))?hands[1]:0),
      spieler[i]->QueryProp(P_HP),
      spieler[i]->QueryProp(P_MAX_HP));
   More(res);
@@ -329,7 +329,8 @@
   if (living->command_me(what))
   {
     printf("Du zwingst %s zu \"%s\".\n",capitalize(living_name),what);
-    if (!IS_ARCH(this_object())&&getuid()!=(string)living->QueryProp(P_TESTPLAYER))
+    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)),
@@ -359,17 +360,20 @@
     printf("'%s' ist momentan nicht da.\n",capitalize(name));
     return 1;
   }
-  lpv = (int)ob->QueryProp(P_HP);
-  mpv = (int)ob->QueryProp(P_SP);
+  lpv = ({int})ob->QueryProp(P_HP);
+  mpv = ({int})ob->QueryProp(P_SP);
   ob->heal_self(1000000);
-  if (!IS_LEARNER(ob) && (!ob->QueryProp(P_TESTPLAYER)||
-          (((string)ob->QueryProp(P_TESTPLAYER))[<5..<1]=="Gilde")))
+  string|int testie = ({string|int})ob->QueryProp(P_TESTPLAYER);
+  if (!IS_LEARNER(ob)
+      && (!testie || (to_string(testie)[<5..<1] == "Gilde")))
+  {
     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)),
-         dtime(time()), lpv, (int)ob->QueryProp(P_HP),
-               mpv,(int)ob->QueryProp(P_SP)));
+         dtime(time()), lpv, ({int})ob->QueryProp(P_HP),
+               mpv,({int})ob->QueryProp(P_SP)));
+  }
   tell_object(ob, QueryProp(P_NAME) + " heilt Dich.\n");
   printf("Du heilst %s.\n",capitalize(name));
   return 1;
@@ -426,7 +430,7 @@
                     (list[i]->QueryProp(P_INVIS)?"("+name_+")":name_),
                     a_end,a_level, MASTER->get_wiz_level(getuid(list[i])),
                     a_end,a_age,
-                    time2string("%4x %0X",((int)list[i]->QueryProp(P_AGE))*2),
+                    time2string("%4x %0X",(({int})list[i]->QueryProp(P_AGE))*2),
                     query_idle(list[i])>=300?(a++,(a_idle+"I")):" ",
                     a_end,
                     query_editing(list[i])?a_idle+"E"+a_end:" ",