Unwirksame Typecasts entfernt.

Entweder ganz oder wenn noetig durch deklarative Casts ersetzt.

Change-Id: I3769c849215df487bc8dde2b8c11f8c59d8a1c13
diff --git a/secure/master/destruct.c b/secure/master/destruct.c
index 7e76a11..1b7c19a 100644
--- a/secure/master/destruct.c
+++ b/secure/master/destruct.c
@@ -23,7 +23,7 @@
     // wenn Bewegung buggt oder nicht funktioniert und ob noch existiert,
     // rekursiv zerstoeren.
     object oldenv=environment(ob);
-    if ( (catch(res=(int)ob->move("/room/void",M_TPORT|M_NOCHECK,0,"faellt");
+    if ( (catch(res=({int})ob->move("/room/void",M_TPORT|M_NOCHECK,0,"faellt");
            publish) || (ob && environment(ob) == oldenv) )
           && ob) {
             // Spieler speichern, dann erst Inventar entleeren, dann remove() und
@@ -53,11 +53,11 @@
 protected mixed prepare_destruct(object ob)
 {
   object old_env,env,item;
-  mixed res;
+  int|string res;
 
   // zuerst das notify_destruct() rufen und ggf. abbrechen, falls ob
   // privilegiert ist.
-  catch(res = (mixed)ob->NotifyDestruct(previous_object()); publish);
+  catch(res = ({int|string})ob->NotifyDestruct(previous_object()); publish);
   if (res &&
       (getuid(ob) == ROOTID ||
        (IS_ARCH(ob)) ||
diff --git a/secure/master/file_access.c b/secure/master/file_access.c
index 8b1bbd5..d050c58 100644
--- a/secure/master/file_access.c
+++ b/secure/master/file_access.c
@@ -123,9 +123,7 @@
 
 int access_rights(string *p_arr, string euid)
 {
-  int i;
-
-  i = sizeof(p_arr) - 2;
+  int i = sizeof(p_arr) - 2;
 
   while ( i >= 0 &&
           file_size( implode(p_arr[0..i], "/") + "/access_rights.c" ) < 0 )
@@ -134,7 +132,7 @@
   if ( i < 0 )
       return 0;
 
-  if ( !catch(i = (int)call_other( 
+  if ( !catch(i = ({int})call_other( 
           implode(p_arr[0..i], "/") + "/access_rights",
           "access_rights", euid,
           implode(p_arr[i+1..], "/") ); publish) )
diff --git a/secure/master/misc.c b/secure/master/misc.c
index 9bb274f..d7d8eb5 100644
--- a/secure/master/misc.c
+++ b/secure/master/misc.c
@@ -417,9 +417,8 @@
     mixed *ginfo;
 
     // Lese- und Schreibberechtigungen fuer die Rubrik 'polizei' setzen
-    call_other( "/secure/news", "???" );
-    ob = find_object("secure/news");
-    ginfo = ((mixed)ob->GetGroup("polizei"))[5..6];
+    ob = load_object("secure/news");
+    ginfo = (({mixed*})ob->GetGroup("polizei"))[5..6];
     ob->RemoveAllowed( "polizei", 0, ginfo[0], ginfo[1] );
     ob->AddAllowed( "polizei", 0, deputies, deputies );
     LoadDeputyFileList();
@@ -565,7 +564,7 @@
   if (heart_beat) heart_beat->_restart_beat();
 }
 
-int renew_player_object(mixed who)
+int renew_player_object(string|object who)
 {
   object newob;
   object *obs, *obs2;
@@ -615,8 +614,8 @@
   }
   efun::configure_object(who, OC_COMMANDS_ENABLED, 0);
   efun::set_this_player(0);
-  armours=(object *)who->QueryProp(P_ARMOURS);
-  weapon=(object)who->QueryProp(P_WEAPON);
+  armours=({object*})who->QueryProp(P_ARMOURS);
+  weapon=({object})who->QueryProp(P_WEAPON);
 
   if ( previous_object() && object_name(previous_object()) == "/secure/merlin" )
       send_channel_msg("Debug",
@@ -630,7 +629,7 @@
   ob_name=explode(object_name(newob),"#")[0];
   if (sizeof(ob_name)>11 && ob_name[0..11]=="/std/shells/")
     ob_name=ob_name[11..];
-  ob_name=ob_name+":"+getuid((object)who);
+  ob_name=ob_name+":"+getuid(who);
   if (active)
     exec(newob,who);
   if (active && (interactive(who)||!interactive(newob)))
diff --git a/secure/master/network.c b/secure/master/network.c
index 3e7d0b1..26767a5 100644
--- a/secure/master/network.c
+++ b/secure/master/network.c
@@ -72,7 +72,7 @@
     switch ( mess[1] ){
     case "wholist":
     case "who":
-        data = (string *)"/obj/werliste"->QueryWhoListe();
+        data = ({string*})"/obj/werliste"->QueryWhoListe();
         break;
 
     case "uptime":
@@ -112,7 +112,14 @@
   // gewesen. Davon geht auch aller hier gerufener Code aus. Daher wird jetzt
   // hier zentral die Bytesequenz als ASCII interpretiert und in string
   // gewandelt, der dann wie bislang auch verarbeitet wird.
-  string msg_text = to_text(message, "ASCII");
+  string msg_text;
+  if (catch(msg_text = to_text(message, "ASCII");publish))
+  {
+    msg_text = to_text(message, "ISO8859-1");
+    log_file("UDP_INVALID",sprintf(
+      "Nachricht von %s mit nicht-ASCII-Zeichen: %s\n",
+      host, msg_text));
+  }
 
   UDP_DEBUG(sprintf("%s %s:%d: %s\n",strftime(),host,port,msg_text));
 
diff --git a/secure/master/userinfo.c b/secure/master/userinfo.c
index 83fdbf1..9e6a06b 100644
--- a/secure/master/userinfo.c
+++ b/secure/master/userinfo.c
@@ -832,7 +832,7 @@
   if (!PO || PO!=TP || PO!=TI || real_name != getuid(PO) ||
       !find_userinfo(real_name))
     return 0;
-  mixed erstie=(mixed)this_interactive()->QueryProp(P_SECOND);
+  string|int erstie=({string|int})this_interactive()->QueryProp(P_SECOND);
   password = userlist[real_name,USER_PASSWORD];
   wlevel = get_wiz_level(real_name);
   if (!update_password(passwd, passwd)) return 0;
@@ -977,7 +977,7 @@
   // entfernt werden, das uebernimmt RemoveWizardFromUID().
   if (pointerp(userlist[player, USER_DOMAIN])) {
     string *removeduids=
-      ((string*)userlist[player, USER_DOMAIN] | domains) - domains;
+      (userlist[player, USER_DOMAIN] | domains) - domains;
     foreach(string uid: removeduids)
       RemoveWizardFromUID(uid, player);
   }
@@ -996,7 +996,7 @@
   // entfernt werden, das uebernimmt RemoveWizardFromUID().
   if (pointerp(userlist[player, USER_GUILD])) {
     string *removeduids=
-      ((string*)userlist[player, USER_GUILD] | guilds) - guilds;
+      (userlist[player, USER_GUILD] | guilds) - guilds;
     foreach(string uid: removeduids)
       RemoveWizardFromUID(uid, player);
   }
@@ -1070,7 +1070,7 @@
       object guild;
       catch(guild=load_object(GUILDDIR"/"+alias));
       if (objectp(guild) 
-          && (sizeof(spbook=(string)
+          && (sizeof(spbook=({string})
                  guild->QueryProp(P_GUILD_DEFAULT_SPELLBOOK)))
                 && spbook!=alias)
           uids += ({GUILDID"."+spbook});