Aenderungen fuer wieder funktionierendes strict_types

- Deklarative Casts hinzugefuegt
- Typen gefixt

Change-Id: I44c6082d907efb241a35da248774809054f8c5ab
diff --git a/secure/awmaster.c b/secure/awmaster.c
index f1ce7d4..d9f0bbc 100644
--- a/secure/awmaster.c
+++ b/secure/awmaster.c
@@ -152,16 +152,16 @@
     {
       armours += ([ id : 
         ([
-            AWM_TYPE      : ob->QueryProp(P_ARMOUR_TYPE) ,
-            AWM_CLASS     : ob->QueryProp(P_AC) ,
-            AWM_EFF_CLASS : ob->QueryProp(P_EFFECTIVE_AC) ,
+            AWM_TYPE      : ({string})ob->QueryProp(P_ARMOUR_TYPE) ,
+            AWM_CLASS     : ({int})ob->QueryProp(P_AC) ,
+            AWM_EFF_CLASS : ({int})ob->QueryProp(P_EFFECTIVE_AC) ,
             AWM_FLAGS     : xflags(ob),
-            AWM_WEIGHT    : ob->QueryProp(P_WEIGHT) ,
-            AWM_VALUE     : ob->QueryProp(P_VALUE) ,
-            AWM_HANDS     : ob->QueryProp(P_NR_HANDS) , // Fuer Schilde
-            AWM_D_TYPE    : ob->QueryProp(P_DAM_TYPE) ,
-            AWM_X_CLASS   : ob->QueryProp(P_EFFECTIVE_WC) ||
-                            ob->QueryProp(P_WC),
+            AWM_WEIGHT    : ({int})ob->QueryProp(P_WEIGHT) ,
+            AWM_VALUE     : ({int})ob->QueryProp(P_VALUE) ,
+            AWM_HANDS     : ({int})ob->QueryProp(P_NR_HANDS) , // Fuer Schilde
+            AWM_D_TYPE    : ({string*})ob->QueryProp(P_DAM_TYPE) ,
+            AWM_X_CLASS   : ({int})ob->QueryProp(P_EFFECTIVE_WC) ||
+                            ({int})ob->QueryProp(P_WC),
             AWM_TIME      : time()
         ]) ]);
     }
@@ -206,16 +206,16 @@
     {
       weapons += ([ id :
         ([
-            AWM_TYPE      : ob->QueryProp(P_WEAPON_TYPE) ,
-            AWM_CLASS     : ob->QueryProp(P_WC) ,
-            AWM_EFF_CLASS : ob->QueryProp(P_EFFECTIVE_WC) ,
+            AWM_TYPE      : ({string})ob->QueryProp(P_WEAPON_TYPE) ,
+            AWM_CLASS     : ({int})ob->QueryProp(P_WC) ,
+            AWM_EFF_CLASS : ({int})ob->QueryProp(P_EFFECTIVE_WC) ,
             AWM_FLAGS     : xflags(ob),
-            AWM_WEIGHT    : ob->QueryProp(P_WEIGHT) ,
-            AWM_VALUE     : ob->QueryProp(P_VALUE) ,
-            AWM_HANDS     : ob->QueryProp(P_NR_HANDS) ,
-            AWM_D_TYPE    : ob->QueryProp(P_DAM_TYPE) ,
-            AWM_X_CLASS   : ob->QueryProp(P_EFFECTIVE_AC) || 
-                            ob->QueryProp(P_AC),
+            AWM_WEIGHT    : ({int})ob->QueryProp(P_WEIGHT) ,
+            AWM_VALUE     : ({int})ob->QueryProp(P_VALUE) ,
+            AWM_HANDS     : ({int})ob->QueryProp(P_NR_HANDS) ,
+            AWM_D_TYPE    : ({string*})ob->QueryProp(P_DAM_TYPE) ,
+            AWM_X_CLASS   : ({int})ob->QueryProp(P_EFFECTIVE_AC) || 
+                            ({int})ob->QueryProp(P_AC),
             AWM_TIME      : time()
         ]) ]);
     }
diff --git a/secure/errord.c b/secure/errord.c
index 884d3c1..a17639b 100644
--- a/secure/errord.c
+++ b/secure/errord.c
@@ -459,7 +459,7 @@
     // nicht gespeichert.
     if (this_interactive() && IS_LEARNER(this_interactive())
         && strstr(issue->loadname,WIZARDDIR)==0
-        && this_interactive()->QueryProp(P_DONT_LOG_ERRORS))
+        && ({int})this_interactive()->QueryProp(P_DONT_LOG_ERRORS))
     {
         return 0;
     }
@@ -624,7 +624,7 @@
     // nicht gespeichert.
     if (this_interactive() && IS_LEARNER(this_interactive())
         && strstr(issue->loadname,WIZARDDIR)==0
-        && this_interactive()->QueryProp(P_DONT_LOG_ERRORS)) {
+        && ({int})this_interactive()->QueryProp(P_DONT_LOG_ERRORS)) {
         return 0;
     }
 
@@ -1435,7 +1435,7 @@
     mail[MSG_BODY]=text;
     mail[MSG_ID]=sprintf(MUDNAME": %d.%d",time(),random(__INT_MAX__));
 
-    if (!sizeof("/secure/mailer"->DeliverMail(mail,0)))
+    if (!sizeof(({string*})"/secure/mailer"->DeliverMail(mail,0)))
       res = -1; // an niemanden erfolgreich zugestellt. :-(
     else
       res = 1;
@@ -1462,7 +1462,7 @@
                                 getuid(TI));
     mail[MSG_BODY] = text;
 
-    if (!sizeof("/secure/mailer"->DeliverMail(mail,0)))
+    if (!sizeof(({string*})"/secure/mailer"->DeliverMail(mail,0)))
       res |= -1;
     else
       res |= 1;
diff --git a/secure/explorationmaster.c b/secure/explorationmaster.c
index 6bcb346..ecc6ee9 100644
--- a/secure/explorationmaster.c
+++ b/secure/explorationmaster.c
@@ -28,7 +28,7 @@
 
 #include <living/comm.h>
 #define ZDEBUG(x) if (find_player("zesstra")) \
-  find_player("zesstra")->ReceiveMsg(x,MT_DEBUG,0,object_name()+":",this_object())
+  ({int})find_player("zesstra")->ReceiveMsg(x,MT_DEBUG,0,object_name()+":",this_object())
 //#define ZDEBUG(x)
 
 // Struktur: ([ string filename : string* action, int number, int type ]) 
@@ -95,8 +95,8 @@
   //ZDEBUG(sprintf("check %s...",pl));
   // Letzte Loginzeit ermitteln, wenn laenger als 90 Tage her und nicht
   // eingeloggt, wird der Spieler uebersprungen.
-  pldata->ReleasePlayer();
-  pldata->LoadPlayer(pl);
+  ({int})pldata->ReleasePlayer();
+  ({int})pldata->LoadPlayer(pl);
   // Testspieler ausnehmen, Spieler, die 90 Tage nicht da waren.
   if ( (({int})pldata->QueryProp(P_LAST_LOGIN) < time() - 7776000
         && !find_player(pl))
@@ -154,7 +154,7 @@
   int avgspieler = extra[5];
 
   if (objectp(pldata))
-    pldata->remove(1);
+    ({int})pldata->remove(1);
 
   if (file_size(BY_EP) >= 0)
     rm(BY_EP);
@@ -524,7 +524,7 @@
       return;
     }
     if (!what || what == "") {
-      this_interactive()->More(DUMPFILE, 1);
+      ({void})this_interactive()->More(DUMPFILE, 1);
       log_file("ARCH/EPZugriffe", ctime(time())+": "+
         capitalize(getuid(this_interactive()))+" schaute sich das DUMPFILE an.\n");
       return;
@@ -538,13 +538,13 @@
       if (!what || what == "")
        what = "/"+getuid(this_interactive())+"/";
       else {
-       if (!master()->domain_master(getuid(this_interactive()), what)) {
+       if (!({int})master()->domain_master(getuid(this_interactive()), what)) {
          write("Sorry, Du kannst nur Objekte in Deiner eigenen Region abfragen!\n");
          return;
        }
        if (!magname || magname=="")
          magname = getuid(this_interactive());
-//        if (!master()->domain_member(magname, what)) {
+//        if (!({int})master()->domain_member(magname, what)) {
 //         write(capitalize(magname)+" ist gar kein Mitarbeiter in Deiner Region!\n");
 //          return;
 //       }
@@ -563,9 +563,9 @@
        what="/"+what+"/";
       }
   if (allowed())
-    this_interactive()->More(getMatchArch(what));
+    ({void})this_interactive()->More(getMatchArch(what));
   else
-    this_interactive()->More(getMatch(what));
+    ({void})this_interactive()->More(getMatch(what));
   log_file("ARCH/EPZugriffe", ctime(time())+": "+
     capitalize(getuid(this_interactive()))+" schaute sich "+what+" an.\n");
   return;
@@ -669,8 +669,8 @@
 
   if (!previous_object() || !this_interactive() || !this_player() ||
        this_player() != this_interactive() ||
-       this_player()->QueryProp(P_KILLS) ||
-       this_player()->QueryGuest()       )
+       ({int})this_player()->QueryProp(P_KILLS) ||
+       ({int})this_player()->QueryGuest()       )
     return 0;
 
   fn = old_explode(object_name(previous_object()), "#")[0];
@@ -681,7 +681,7 @@
   if (member(obs[fn],key) < 0)
     return 0;
 
-  ep = (MASTER->query_ep(getuid(this_interactive())) || "");
+  ep = (({string})MASTER->query_ep(getuid(this_interactive())) || "");
 
   gesetzt=test_bit(ep,obs[fn,1]);
   check_to_fast(getuid(this_player()),fn,gesetzt);
@@ -698,7 +698,7 @@
   string ep;
   int gesetzt;
   
-  if (!objectp(ob) || ob->QueryProp(P_KILLS ))
+  if (!objectp(ob) || ({int})ob->QueryProp(P_KILLS ))
     return 0;
 
   fn = old_explode(object_name(previous_object()), "#")[0];
@@ -709,7 +709,7 @@
   if (member(obs[fn],key) < 0)
     return 0;
 
-  ep = (MASTER->query_ep(getuid(ob)) || "");
+  ep = (({string})MASTER->query_ep(getuid(ob)) || "");
 
   gesetzt=test_bit(ep,obs[fn,1]);
   check_to_fast(getuid(this_player()),fn,gesetzt);
@@ -723,7 +723,7 @@
 
 private int QueryRealExplorationPoints(string pl)
 {
-  return count_bits(MASTER->query_ep(pl) || " ");
+  return count_bits(({string})MASTER->query_ep(pl) || " ");
 }
 
 nomask int QueryExplorationPoints(mixed pl)
@@ -753,7 +753,7 @@
 {
   int i,j,k,t,maxEP;
   string ep;
-  ep = (MASTER->query_ep(pl) || "");
+  ep = (({string})MASTER->query_ep(pl) || "");
 
   maxEP = QueryMaxEP();
   for( i=0; i<num; i++)
@@ -765,7 +765,7 @@
     if( j==maxEP ) break;
     ep = clear_bit(ep, k);
   }
-  MASTER->update_ep(pl,ep);
+  ({int})MASTER->update_ep(pl,ep);
   return i;
 }
 
@@ -794,13 +794,13 @@
   if (!pl) return -2;
   i=remove_fp(num, pl);
   log_file("ARCH/fp_strafen", ctime(time())+": "
-    +this_interactive()->Name(WER)+" loescht "+pl+" "+i
+    +({string})this_interactive()->Name(WER)+" loescht "+pl+" "+i
     +" FPs\nGrund:"+grund+"\n");
   if( i>0 ) {
      text =
      "Hallo "+capitalize(pl)+",\n\n"+
      break_string(
-      this_interactive()->Name(WER)+" hat soeben veranlasst, dass Dir "+i
+      ({string})this_interactive()->Name(WER)+" hat soeben veranlasst, dass Dir "+i
       +" FPs abgezogen wurden.\nGrund:"+grund+"\n", 78 );
 
      mail = allocate(9);
@@ -814,7 +814,7 @@
      mail[MSG_ID]=MUDNAME":"+time();
      mail[MSG_BODY]=text;
 
-     "/secure/mailer"->DeliverMail(mail,1);
+     ({string*})"/secure/mailer"->DeliverMail(mail,1);
   }
   return i;
 }
@@ -824,7 +824,7 @@
 {
   int i,j,k,t,maxEP;
   string ep;
-  ep = (MASTER->query_ep(pl) || "");
+  ep = (({string})MASTER->query_ep(pl) || "");
 
   maxEP = QueryMaxEP();
   for( i=0; i<num; i++)
@@ -836,7 +836,7 @@
     if( j==maxEP ) break;
     ep = set_bit(ep, k);
   }
-  MASTER->update_ep(pl,ep);
+  ({int})MASTER->update_ep(pl,ep);
   return i;
 }
 
@@ -848,7 +848,7 @@
   if (!pl) return -2;
   i=add_fp(num, pl);
   log_file("ARCH/fp_strafen", ctime(time())+": "
-    +this_interactive()->Name(WER)+" gibt "+pl+" "+i
+    +({string})this_interactive()->Name(WER)+" gibt "+pl+" "+i
     +" FPs\n");
 
   return i;
@@ -861,12 +861,12 @@
   if (!allowed()) return -1;
   if ( num<0 ) return -3;
   if (!pl) return -2;
-  ep = (MASTER->query_ep(pl) || "");
+  ep = (({string})MASTER->query_ep(pl) || "");
 
   maxEP = QueryMaxEP();
   if (num<0 || num>=maxEP) return -4;
   ep = set_bit(ep, num);
-  MASTER->update_ep(pl,ep);
+  ({int})MASTER->update_ep(pl,ep);
   return num;
 }
 
@@ -877,12 +877,12 @@
   if (!allowed()) return -1;
   if ( num<0 ) return -3;
   if (!pl) return -2;
-  ep = (MASTER->query_ep(pl) || "");
+  ep = (({string})MASTER->query_ep(pl) || "");
 
   maxEP = QueryMaxEP();
   if (num<0 || num>=maxEP) return -4;
   ep = clear_bit(ep, num);
-  MASTER->update_ep(pl,ep);
+  ({int})MASTER->update_ep(pl,ep);
   return num;
 }
 
@@ -896,7 +896,7 @@
 {
   string ep,teststring;
   if (!allowed()) return -1;
-  ep = (MASTER->query_ep(pl) || "");
+  ep = (({string})MASTER->query_ep(pl) || "");
 
   output="";
   if (!pattern || pattern=="")
@@ -908,7 +908,7 @@
         if ( test_bit(ep, v2) && sscanf(fn, teststring, unused, unused) )
           printep(v2, fn, v3, v1);
       });
-  this_interactive()->More(output);
+  ({void})this_interactive()->More(output);
   return 1;
 }
 
diff --git a/secure/gildenmaster.c b/secure/gildenmaster.c
index dfd411d..6018d9f 100644
--- a/secure/gildenmaster.c
+++ b/secure/gildenmaster.c
@@ -57,9 +57,9 @@
               "Bitte verstaendige einen Erzmagier.\n");
       return -2;
   }
-  pl->SetProp(P_GUILD,gname);
+  ({string})pl->SetProp(P_GUILD,gname);
   // Event Gildenwechsel triggern
-  EVENTD->TriggerEvent(EVT_GUILD_CHANGE, ([
+  ({int})EVENTD->TriggerEvent(EVT_GUILD_CHANGE, ([
       E_OBJECT: pl, E_PLNAME: getuid(pl),
       E_ENVIRONMENT: environment(pl),
       E_GUILDNAME: gname,
@@ -94,7 +94,7 @@
       write("Du kannst hier nicht aus einer anderen Gilde austreten.\n");
       return -1;
   }
-  if (gname[8..]==(pl->QueryProp(P_DEFAULT_GUILD)||DEFAULT_GUILD))
+  if (gname[8..]==(({string})pl->QueryProp(P_DEFAULT_GUILD)||DEFAULT_GUILD))
   {
         write("Aus dieser Gilde kannst Du nicht austreten.\n");
         return -1;
@@ -102,18 +102,18 @@
   if (loss<=0) loss=20;
   skills=({mapping})pl->QueryProp(P_NEWSKILLS);
   walk_mapping(skills,"loose_ability",this_object(),loss);
-  pl->SetProp(P_NEWSKILLS,skills);
-  pl->SetProp(P_GUILD,0);
+  ({mapping})pl->SetProp(P_NEWSKILLS,skills);
+  ({string})pl->SetProp(P_GUILD,0);
   // Event Gildenwechsel triggern
-  EVENTD->TriggerEvent(EVT_GUILD_CHANGE, ([
+  ({int})EVENTD->TriggerEvent(EVT_GUILD_CHANGE, ([
       E_OBJECT: pl, E_PLNAME: getuid(pl),
       E_ENVIRONMENT: environment(pl),
-      E_GUILDNAME: pl->QueryProp(P_GUILD),
+      E_GUILDNAME: ({string})pl->QueryProp(P_GUILD),
       E_LAST_GUILDNAME: gname ]) );
 
   // Defaultgilde ggf. neuen Titel setzen lassen.
   gname = ({string})pl->QueryProp(P_GUILD);
-  (GUILD_DIR+"/"+gname)->adjust_title(pl);
+  ({void})(GUILD_DIR+"/"+gname)->adjust_title(pl);
 
   return 1;
 }
diff --git a/secure/lepmaster.c b/secure/lepmaster.c
index 6e53834..592b624 100644
--- a/secure/lepmaster.c
+++ b/secure/lepmaster.c
@@ -305,8 +305,8 @@
   DEBUG("Es geht um: %O\n", player);
 
   // Abenteuerpunkte
-  DEBUG("Abenteuerpunkte: %d ("+REQ_QP+")\n", player->QueryProp(P_QP));
-  if (player->QueryProp(P_QP) < REQ_QP) {
+  DEBUG("Abenteuerpunkte: %d ("+REQ_QP+")\n", ({int})player->QueryProp(P_QP));
+  if (({int})player->QueryProp(P_QP) < REQ_QP) {
     s += sprintf(" * Dir fehlen noch mindestens %d Abenteuerpunkte.\n", 
 		 REQ_QP - ({int})player->QueryProp(P_QP));
     i--;
@@ -345,7 +345,7 @@
   int minlevel = QueryLevel(REQ_LEP);
 
   // Restliche Stufenpunkte 
-  DEBUG("Stufenpunkte: %d ("+REQ_LEP+")\n", player->QueryProp(P_LEP));
+  DEBUG("Stufenpunkte: %d ("+REQ_LEP+")\n", ({int})player->QueryProp(P_LEP));
   if (({int})(player->QueryProp(P_LEP)) < REQ_LEP) {
     s += sprintf(" * Du musst mindestens %d Stufenpunkte, entspricht Stufe %d, "
         "erreichen.\n", REQ_LEP, minlevel);
@@ -353,7 +353,7 @@
   }
   
   // Demnach mindestens REQ/100-Level 
-  DEBUG("Level: %d ("+REQ_LEP/100+")\n", player->QueryProp(P_LEVEL));
+  DEBUG("Level: %d ("+REQ_LEP/100+")\n", ({int})player->QueryProp(P_LEVEL));
   if (({int})player->QueryProp(P_LEVEL) < minlevel) {
     s += sprintf(" * Du musst mindestens Stufe %d erreichen.\n", minlevel);
     i--;
diff --git a/secure/login.c b/secure/login.c
index ab6ee16..3652e21 100644
--- a/secure/login.c
+++ b/secure/login.c
@@ -192,9 +192,9 @@
     // machen das natuerlich nicht fuer die IP vom Mudrechner...
     if (query_ip_number(this_object()) != "87.79.24.60")
     {
-      "/p/daemon/dnslookup"->check_tor(query_ip_number(this_object()),
+      ({int})"/p/daemon/dnslookup"->check_tor(query_ip_number(this_object()),
           query_mud_port());
-      "/p/daemon/dnslookup"->check_dnsbl(query_ip_number(this_object()));
+      ({int})"/p/daemon/dnslookup"->check_dnsbl(query_ip_number(this_object()));
     }
 
     // ggf. muss TLS (initiiert durch STARTTLS) noch ausverhandelt werden.
@@ -232,7 +232,7 @@
     ip = query_ip_number(this_object());
     u = filter(users(), function status (object ob, string addr, int a) {
         return query_ip_number(ob) == addr
-               && ob->QueryProp(P_AGE) < a;
+               && ({int})ob->QueryProp(P_AGE) < a;
     }, ip, 12*60*60); // 24h in heart_beats
 
     if ( sizeof(u) > 25 ){
@@ -266,8 +266,8 @@
       // check connection from Tor exit node
       string eff_ip = (sizeof(realip) ? realip
                                       : query_ip_number(this_object()));
-      if ("/p/daemon/dnslookup"->check_tor(eff_ip, query_mud_port())
-          || "/p/daemon/dnslookup"->check_dnsbl(eff_ip))
+      if (({int})"/p/daemon/dnslookup"->check_tor(eff_ip, query_mud_port())
+          || ({int})"/p/daemon/dnslookup"->check_dnsbl(eff_ip))
         res = 
             "\nSorry, von Deiner Adresse kamen ein paar Idioten, die "
             "ausschliesslich\nAerger machen wollten. Deshalb haben wir "
@@ -346,8 +346,8 @@
         realip=str[sizeof(SSL_GRRETING)..];
       } // andere IPs werden einfach ignoriert. -> log/PROXY.REQ ?
       // ggf. Lookup fuer Torexits anstossen.
-      "/p/daemon/dnslookup"->check_tor(realip,query_mud_port());
-      "/p/daemon/dnslookup"->check_dnsbl(realip);
+      ({int})"/p/daemon/dnslookup"->check_tor(realip,query_mud_port());
+      ({int})"/p/daemon/dnslookup"->check_dnsbl(realip);
 
       input_to( "logon2", INPUT_PROMPT,
           "Wie heisst Du denn (\"neu\" fuer neuen Spieler)? ");
@@ -391,7 +391,7 @@
     loginname = str;
 
     /* read the secure save file to see if character already exists */
-    string ssavef=master()->secure_savefile(loginname);
+    string ssavef=({string})master()->secure_savefile(loginname);
     if ( loginname != "gast"
          && (!ssavef || !sizeof(ssavef) || !restore_object(ssavef) ))
     {
@@ -529,7 +529,7 @@
 
     password = str;
 
-    if ( !master()->good_password( str, loginname ) ) {
+    if ( !({int})master()->good_password( str, loginname ) ) {
         input_to( "new_password", INPUT_NOECHO|INPUT_PROMPT,
             "Bitte gib ein Passwort an: ");
         return 1;
@@ -736,7 +736,7 @@
             return;
         }
 
-        write( call_other( races[num - 1][0], "QueryProp", P_RACE_DESCRIPTION ));
+        write( ({string})call_other( races[num - 1][0], "QueryProp", P_RACE_DESCRIPTION ));
         input_to( "get_race_answer", INPUT_PROMPT,
             "\nWas willst Du tun: ");
         return;
@@ -1057,7 +1057,7 @@
     seteuid(ROOTID);
 
     /* read the secure save file to see if character already exists */
-    if ( !restore_object( master()->secure_savefile(loginname) ) ){
+    if ( !restore_object( ({string})master()->secure_savefile(loginname) ) ){
         write( "Kein solcher Spieler!\n" );
         destruct( this_object() );
         return 0;
diff --git a/secure/mailer.c b/secure/mailer.c
index ecfb649..bc22db9 100644
--- a/secure/mailer.c
+++ b/secure/mailer.c
@@ -357,7 +357,7 @@
             sender = regreplace( sender, "@", "%", 1 );
             // Zustellung via Intermud-Mail an andere Muds.
             if ( member( mud, '.' ) == -1 ) {
-                "/secure/udp_mail"->deliver_mail( rec, mud, sender,
+                ({void})"/secure/udp_mail"->deliver_mail( rec, mud, sender,
                                                   msg[MSG_SUBJECT],
                                                   msg[MSG_BODY] );
                 recok += ({ recipients[i] });
@@ -392,7 +392,7 @@
 
         }
         else
-            if (master()->find_userinfo(recipients[i]) )
+            if (({int})master()->find_userinfo(recipients[i]) )
             {
                 save_msg( newmsg, recipients[i] );
                 recok += ({ recipients[i] });
@@ -603,13 +603,13 @@
 public int query_recipient_ok( string name )
 {
 #if INTERNET_MAIL_ENABLED
-    return  (master()->find_userinfo(name)
+    return  (({int})master()->find_userinfo(name)
              || member( name, '%' ) > 0 || member( name, '@' ) > 0 );
 #else
     // es darf zwar ein @ in der Adresse vorkommen, dahinter aber kein . mehr
     // (dann ist es ne Mail via Intermud-Mail, nicht ins Internet).
     string *tmp;
-    return  (master()->find_userinfo(name)
+    return  (({int})master()->find_userinfo(name)
              || member( name, '%' ) > 0
              || (sizeof(tmp=explode(name,"@")) == 2 && strstr(tmp[1],".") == -1));
 #endif
diff --git a/secure/master.c b/secure/master.c
index bdbf779..b853771 100644
--- a/secure/master.c
+++ b/secure/master.c
@@ -300,7 +300,7 @@
 
   ++loading_simul_efuns;
 
-  if (!(err=catch(SIMUL_EFUN_FILE->start_simul_efun())) ) {
+  if (!(err=catch(({void})SIMUL_EFUN_FILE->start_simul_efun())) ) {
     --loading_simul_efuns;
     return ({SIMUL_EFUN_FILE});
   }
@@ -308,7 +308,7 @@
   debug_message("Failed to load simul efun " + SIMUL_EFUN_FILE +
       " " + err, DMSG_STDOUT | DMSG_LOGFILE | DMSG_STAMP);
 
-  if (!(err=catch(SPARE_SIMUL_EFUN_FILE->start_simul_efun())) ) {
+  if (!(err=catch(({void})SPARE_SIMUL_EFUN_FILE->start_simul_efun())) ) {
     --loading_simul_efuns;
     return ({SPARE_SIMUL_EFUN_FILE});
   }
@@ -593,7 +593,7 @@
 
 // Was machen bei disconnect?
 protected void disconnect(object who, string remaining) {
-    who->NetDead(); return;
+    ({void})who->NetDead(); return;
 }
 
 // Es gibt kein File 'filename'. VC aktivieren so vorhanden ...
@@ -640,8 +640,8 @@
 // Spieler bei Shutdown entfernen
 protected void remove_player(object victim)
 {
-  catch(victim->quit());
-  if (victim) catch(victim->remove());
+  catch(({int})victim->quit());
+  if (victim) catch(({int})victim->remove());
   if (victim) destruct(victim);
   return;
 }
@@ -652,7 +652,7 @@
   //sollte nur vom GD gerufen werden. Oder allenfalls Master selbst
   filter(users(),#'tell_object,
   "Der Gamedriver ruft: Der Speicher wird knapp ! Bereitet euch auf das Ende vor !\n");
-  "/obj/shut"->shut(minutes);
+  ({int})"/obj/shut"->shut(minutes);
   return;
 }
 
@@ -885,7 +885,7 @@
   if (efun::object_info(culprit, OI_ONCE_INTERACTIVE))
     call_out("restart_heart_beat", 5, culprit);
   else
-    catch(culprit->make_immortal(); publish);
+    catch(({void})culprit->make_immortal(); publish);
   return 0;
 }
 
@@ -1006,7 +1006,7 @@
   // nicht waehrend des ladens der simulefuns auftrat, bei der Ausgabe der
   // Meldung ueber die Kaenaele wieder sefuns genutzt werden.
   if (!loading_simul_efuns) {
-    if (titp && (IS_LEARNER(titp) || (titp->QueryProp(P_TESTPLAYER))))
+    if (titp && (IS_LEARNER(titp) || (({int|string})titp->QueryProp(P_TESTPLAYER))))
     {
       catch(send_channel_msg("Entwicklung",
                              capitalize(objectp(po) ? REAL_UID(po) : ""),
diff --git a/secure/master.h b/secure/master.h
index e0b8ea7..b9988b7 100644
--- a/secure/master.h
+++ b/secure/master.h
@@ -90,6 +90,7 @@
 string         _get_path(string path, string user);
 string         QueryBanished(string str);
 int            TBanishName(string name, int days);
+varargs void   BanishName(string name, string reason, int force);
 
 // sendet bei Befoerderungen Infomail an Magier
 protected void SendWizardHelpMail(string name, int level);
diff --git a/secure/master/destruct.c b/secure/master/destruct.c
index 1b7c19a..bd36571 100644
--- a/secure/master/destruct.c
+++ b/secure/master/destruct.c
@@ -28,10 +28,10 @@
           && ob) {
             // Spieler speichern, dann erst Inventar entleeren, dann remove() und
         // und destruct() anwenden.
-        catch(ob->save_me(1); publish);
+        catch(({void})ob->save_me(1); publish);
         filter(all_inventory(ob), #'recursive_remove, immediate_destruct);
         if (!immediate_destruct) 
-          catch(ob->remove(0);publish);
+          catch(({int})ob->remove(0);publish);
         if (ob) 
           destruct(ob);
     }
@@ -43,7 +43,7 @@
     filter(all_inventory(ob), #'recursive_remove, immediate_destruct);
     // ggf. zuerst remove versuchen
     if (!immediate_destruct)
-      catch(ob->remove(1);publish);
+      catch(({int})ob->remove(1);publish);
     if (ob)
       destruct(ob);
   }
@@ -82,7 +82,7 @@
       old_env=environment(item);
       // M_MOVE_ALL, falls item nen Unitobjekt ist. Sonst clonen die u.U. noch
       // wieder nen neues Objekt im alten Env.
-      if(catch(item->move(env, M_NOCHECK|M_MOVE_ALL);publish))
+      if(catch(({int})item->move(env, M_NOCHECK|M_MOVE_ALL);publish))
         recursive_remove(item, 1);
       else if (item && environment(item) == old_env)
         recursive_remove(item, 1);
diff --git a/secure/master/domain.c b/secure/master/domain.c
index ade06ba..b73378d 100644
--- a/secure/master/domain.c
+++ b/secure/master/domain.c
@@ -25,8 +25,8 @@
 {
   string *domains;
   
-  if ((call_other(SIMUL_EFUN_FILE, "process_call") ||
-        call_other(SIMUL_EFUN_FILE, "secure_level") < GOD_LVL) ||
+  if ((({int})call_other(SIMUL_EFUN_FILE, "process_call") ||
+        ({int})call_other(SIMUL_EFUN_FILE, "secure_level") < GOD_LVL) ||
         !find_userinfo(user))
     return 0;
   domains=query_userlist(user, USER_DOMAIN);
diff --git a/secure/master/guild.c b/secure/master/guild.c
index d0c025c..e863409 100644
--- a/secure/master/guild.c
+++ b/secure/master/guild.c
@@ -26,8 +26,8 @@
 {
   string *guilds;
   
-  if ((call_other(SIMUL_EFUN_FILE, "process_call") ||
-       call_other(SIMUL_EFUN_FILE, "secure_level") < GOD_LVL) ||
+  if ((({int})call_other(SIMUL_EFUN_FILE, "process_call") ||
+       ({int})call_other(SIMUL_EFUN_FILE, "secure_level") < GOD_LVL) ||
       !find_userinfo(user))
     return 0;
 
diff --git a/secure/master/misc.c b/secure/master/misc.c
index 7d41566..d952d6e 100644
--- a/secure/master/misc.c
+++ b/secure/master/misc.c
@@ -35,12 +35,12 @@
     {
       // sonst faken wir eins. *seufz*
       sender=clone_object("/p/daemon/namefake");
-      sender->SetProp(P_NAME, sendername); 
-      sender->SetProp(P_ARTICLE,0);
+      ({string})sender->SetProp(P_NAME, sendername); 
+      ({int})sender->SetProp(P_ARTICLE,0);
       // Dieses Objekt zerstoert sich nach 3s automatisch.
     }
   }
-  CHMASTER->send(channel, sender, msg);
+  ({int})CHMASTER->send(channel, sender, msg);
 }
 
 static string *explode_files(string file) {
@@ -180,7 +180,7 @@
       return;
   }
 
-/*  if (!("/secure/login"->valid_name(name))) return;*/
+/*  if (!(({int})"/secure/login"->valid_name(name))) return;*/
   if ( lower_case(reason) != "loeschen" ){
       names = ({ name + " " + reason });
 
@@ -416,8 +416,8 @@
     // Lese- und Schreibberechtigungen fuer die Rubrik 'polizei' setzen
     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 );
+    ({int})ob->RemoveAllowed( "polizei", 0, ginfo[0], ginfo[1] );
+    ({int})ob->AddAllowed( "polizei", 0, deputies, deputies );
     LoadDeputyFileList();
 }
 
@@ -471,7 +471,7 @@
     {
       tell_object(player, "Arbeitszimmer " + castle + " erzeugt.\n");
       // Arbeitszimmer als Home setzen
-      player->SetProp(P_START_HOME,castle[0..<3]);
+      ({string})player->SetProp(P_START_HOME,castle[0..<3]);
     }
     else
       tell_object(player, "Arbeitszimmer konnte nicht erzeugt werden !\n");
@@ -497,7 +497,7 @@
   mixed mail = ({"Merlin", "<Master>", name, 0, 0, subject,
                  call_sefun("dtime",time()),
                  MUDNAME+time(), text });
-  MAILDEMON->DeliverMail(mail, 0);
+  ({string*})MAILDEMON->DeliverMail(mail, 0);
 }
 
 int allowed_advance_wizlevel(mixed ob)
@@ -558,13 +558,12 @@
 
 void restart_heart_beat(object heart_beat)
 {
-  if (heart_beat) heart_beat->_restart_beat();
+  if (heart_beat) ({void})heart_beat->_restart_beat();
 }
 
 int renew_player_object(string|object who)
 {
   object newob;
-  object *obs, *obs2;
   mixed err;
   string ob_name;
   object *armours, weapon;
@@ -585,7 +584,7 @@
     return -2;
   if (!object_info(who, OI_ONCE_INTERACTIVE))
     return -3;
-  if (who->QueryGuest())
+  if (({int})who->QueryGuest())
   {
     printf("Can't renew guests!\n");
     return -6;
@@ -604,11 +603,11 @@
   if (!newob)
     return -5;
   /* Ok, the object is here now ... lets go for it ... */
-  who->save_me(0);
+  ({void})who->save_me(0);
   /* SSL ip weiterreichen */
   if( call_sefun("query_ip_number", who) != efun::interactive_info(who,II_IP_NUMBER) )
   {
-    newob->set_realip( call_sefun("query_ip_number",who) );
+    ({string})newob->set_realip( call_sefun("query_ip_number",who) );
   }
   efun::configure_object(who, OC_COMMANDS_ENABLED, 0);
   efun::set_this_player(0);
@@ -634,7 +633,7 @@
     {
       send_channel_msg("Debug",previous_object(),
                        "ERROR: exec() during Renew unsuccessful.\n");
-      newob->remove();
+      ({int})newob->remove();
       return 0;
     }
   }
@@ -643,7 +642,7 @@
   {
     send_channel_msg("Debug",previous_object(),
                      "ERROR: still active !\n");
-    newob->remove();
+    ({int})newob->remove();
     return 0;
   }
   // newob->start_player(capitalize(getuid(who)),who->_query_my_ip());
@@ -657,65 +656,64 @@
                                              })
                                       ), who
                       ),
-          capitalize(getuid(who)), who->_query_my_ip() );
+          capitalize(getuid(who)), ({string})who->_query_my_ip() );
 
-  newob->move(environment(who),M_TPORT|M_NOCHECK|M_NO_SHOW|M_SILENT
+  ({int})newob->move(environment(who),M_TPORT|M_NOCHECK|M_NO_SHOW|M_SILENT
               |M_NO_ATTACK);
-  obs=all_inventory(who);
   foreach(object tob: all_inventory(who)) {
-    if (!tob->QueryProp(P_AUTOLOADOBJ))
+    if (!({mixed})tob->QueryProp(P_AUTOLOADOBJ))
     {
       // kein Autoloader...
       foreach(object ob: deep_inventory(tob))
       {
         // aber enthaltene Autoloader entsorgen...
-        if (ob->QueryProp(P_AUTOLOADOBJ))
+        if (({mixed})ob->QueryProp(P_AUTOLOADOBJ))
         {
-          catch(ob->remove();publish);
+          catch(({int})ob->remove();publish);
           if (ob) destruct(ob);
         }
       }
       // objekt ohne die AL bewegen.
-      catch(tob->move(newob,M_NOCHECK);publish);
+      catch(({int})tob->move(newob,M_NOCHECK);publish);
     }
     else {
       // Inhalt von Autoloadern retten.
       // neue instanz des ALs im neuen Objekt.
       object new_al_instance = present_clone(tob, newob);
       foreach(object ob: deep_inventory(tob)) {
-        if (ob->QueryProp(P_AUTOLOADOBJ)) {
+        if (({mixed})ob->QueryProp(P_AUTOLOADOBJ)) {
             // autoloader in Autoloadern zerstoeren...
-            catch(ob->remove(1);publish);
+            catch(({int})ob->remove(1);publish);
             if (ob) destruct(ob);
         }
         // alle nicht autoloader in die AL-Instanz im neuen Objekt oder
         // notfalls ins Inv.
         else {
           if (objectp(new_al_instance))
-            catch(ob->move(new_al_instance, M_NOCHECK);publish);
+            catch(({int})ob->move(new_al_instance, M_NOCHECK);publish);
           else
-            catch(ob->move(newob, M_NOCHECK);publish);
+            catch(({int})ob->move(newob, M_NOCHECK);publish);
         }
       }
       // Autoloader zerstoeren. Wird nicht vom Spielerobjekt im remove()
       // gemacht, wenn nicht NODROP.
-      catch(tob->remove(1);publish);
+      catch(({int})tob->remove(1);publish);
       if (tob) destruct(tob);
     }
   }
-  who->remove();
+  ({int})who->remove();
   if ( objectp(who) )
       destruct(who);
   rename_object(newob,ob_name);
-  newob->__reload_explore();
+  ({void})newob->__reload_explore();
   tp=this_player();
   efun::set_this_player(newob);
   if (objectp(weapon))
-    weapon->DoWield();
+    ({int})weapon->DoWield();
   if (pointerp(armours))
     for (i=sizeof(armours)-1;i>=0;i--)
       if (objectp(armours[i]))
-        armours[i]->do_wear("alles");
+        ({int})armours[i]->do_wear("alles");
   efun::set_this_player(tp);
   //Rueckgabewert noetig, weil Funktion vom Typ 'int'
   return(1);
diff --git a/secure/master/network.c b/secure/master/network.c
index 31a59b3..b3178b1 100644
--- a/secure/master/network.c
+++ b/secure/master/network.c
@@ -80,7 +80,7 @@
         if ( sizeof(mess) < 3 )
             data = ({ "Error: Wen soll ich fingern ?" });
         else
-            data = explode( "/p/daemon/finger"->
+            data = explode( ({string})"/p/daemon/finger"->
                             finger_single( lower_case(mess[2]), 0 ), "\n" );
         break;
 
@@ -147,13 +147,13 @@
   // Die folgenden Services sind keine Intermud-Dienste
   if(strstr(msg_text, "IPLOOKUP\n") == 0)
   {
-    "/p/daemon/iplookup"->update( msg_text );
+    ({void})"/p/daemon/iplookup"->update( msg_text );
     return;
   }
 
   if( strstr(msg_text, "DNSLOOKUP\n") == 0)
   {
-    "/p/daemon/dnslookup"->update( msg_text );
+    ({void})"/p/daemon/dnslookup"->update( msg_text );
     return;
   }
 
@@ -162,7 +162,7 @@
     return udp_query(msg_text[10..],host,port);
   }
   // Rest an inetd fuer Bearbeitung als Intermud-Nachricht.
-  "secure/inetd"->_receive_udp(host, msg_text);
+  ({void})"secure/inetd"->_receive_udp(host, msg_text);
 }
 
 
diff --git a/secure/master/userinfo.c b/secure/master/userinfo.c
index bde7788..e62a1db 100644
--- a/secure/master/userinfo.c
+++ b/secure/master/userinfo.c
@@ -872,9 +872,9 @@
   m_delete(userlist,real_name);
   
   if (wlevel >= LEARNER_LVL)
-    TO->BanishName(real_name, "So hiess mal ein Magier hier");
+    ({void})TO->BanishName(real_name, "So hiess mal ein Magier hier");
   else if (wlevel >= SEER_LVL)
-    TO->BanishName(real_name, "So hiess mal ein Seher hier");
+    ({void})TO->BanishName(real_name, "So hiess mal ein Seher hier");
 
 #ifdef _PUREFTPD_
     if (member(ftpuser,real_name)) {
@@ -1080,7 +1080,7 @@
     }
   }
   // Gildenname?
-  else if (GUILDMASTER->ValidGuild(alias)) {
+  else if (({int})GUILDMASTER->ValidGuild(alias)) {
       uids += ({GUILDID"."+alias});
       //hat die Gilde ein Projektverzeichnis?
       if (file_size("/"PROJECTDIR"/"+alias) == FSIZE_DIR) {
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;
 }
diff --git a/secure/news.c b/secure/news.c
index 2f9e6aa..83a73f5 100644
--- a/secure/news.c
+++ b/secure/news.c
@@ -131,7 +131,7 @@
 
   if (member(grouplist, name)) return -2; // Gibt es schon
 
-  if (!master()->find_userinfo(owner)) return -3;
+  if (!({int})master()->find_userinfo(owner)) return -3;
 
   savefilea = old_explode(name,".");
   savefile = implode(savefilea,"/");
diff --git a/secure/questmaster.c b/secure/questmaster.c
index d6f2fb4..eccb425 100644
--- a/secure/questmaster.c
+++ b/secure/questmaster.c
@@ -101,13 +101,13 @@
 
   RebuildMQCache();
   set_next_reset(43200); // Reset alle 12 Stunden.
-  EVENTD->RegisterEvent(EVT_LIB_QUEST_SOLVED,"HandleQuestSolved",
+  ({int})EVENTD->RegisterEvent(EVT_LIB_QUEST_SOLVED,"HandleQuestSolved",
       ME);
 }
 
 public int remove(int silent) {
   save_info();
-  EVENTD->UnregisterEvent(EVT_LIB_QUEST_SOLVED, ME);
+  ({int})EVENTD->UnregisterEvent(EVT_LIB_QUEST_SOLVED, ME);
   destruct(ME);
   return 1;
 }
@@ -370,7 +370,7 @@
 void Channel(string msg) {
   if(!interactive(previous_object()))
     return;
-  catch(CHMASTER->send("Abenteuer", ME, msg);publish);
+  catch(({int})CHMASTER->send("Abenteuer", ME, msg);publish);
 }
 
  /* quoted from /sys/mail.h: */
@@ -423,7 +423,7 @@
   mail[MSG_ID]=MUDNAME":"+time();
   mail[MSG_BODY]=text;
 
-  "/secure/mailer"->DeliverMail(mail,0);
+  ({string*})"/secure/mailer"->DeliverMail(mail,0);
   return;
 }
 
@@ -451,7 +451,7 @@
   if(!objectp(pl))
     return "Ohne Spielernamen/Spielerobjekt gibt es auch keine Liste.\n";
 
-  if ( (pl->QueryProp(P_TTY)) == "ansi")
+  if ( (({string})pl->QueryProp(P_TTY)) == "ansi")
   {
       ja = ANSI_GREEN + "ja" + ANSI_NORMAL;
       nein = ANSI_RED + "nein" + ANSI_NORMAL;
@@ -480,7 +480,7 @@
     for (j=sizeof(qgrouped[i])-1;j>=0; j--)
     {
       qtmp = QueryQuest(qgrouped[i][j]);
-      int geloest_status = pl->QueryQuest(qgrouped[i][j]);
+      int geloest_status = ({int})pl->QueryQuest(qgrouped[i][j]);
       // Quest ausgeben, wenn "kein Filter" gegeben oder Quest geloest und
       // Filter "geloest" oder Quest ungeloest und Filter "ungeloest".
       if ( !(geloest_filter & (FILTER_GELOEST|FILTER_UNGELOEST))
@@ -552,7 +552,7 @@
   string qname = data[E_QUESTNAME];
 
   if (!quests[qname] || !objectp(trigob)
-      || trigob->QueryProp(P_TESTPLAYER) || IS_LEARNER(trigob))
+      || ({int|string})trigob->QueryProp(P_TESTPLAYER) || IS_LEARNER(trigob))
     return;
 
   int lvl = ({int})trigob->QueryProp(P_LEVEL);
@@ -870,7 +870,7 @@
       ((this_player() == winner) && !query_once_interactive(winner)))
     return MQ_ILLEGAL_OBJ;
   // Gaeste koennen keine Miniquests bestehen.
-  if (winner->QueryGuest())
+  if (({int})winner->QueryGuest())
     return MQ_GUEST;
   // Aufrufendes Objekt existiert gar nicht?
   if (!previous_object())
@@ -884,7 +884,7 @@
   if (!miniquests[objname, MQ_DATA_ACTIVE])
     return MQ_IS_INACTIVE;
 
-  string mq = (MASTER->query_mq(getuid(winner)) || "");
+  string mq = (({string})MASTER->query_mq(getuid(winner)) || "");
 
   // Spieler hat die MQ schonmal bestanden? Dann keine weiteren Aktivitaet
   // noetig
@@ -892,14 +892,14 @@
     return MQ_ALREADY_SET;
 
   catch(mq = set_bit(mq, miniquests[objname,MQ_DATA_QUESTNO]);publish);
-  MASTER->update_mq(getuid(winner), mq);
+  ({int})MASTER->update_mq(getuid(winner), mq);
 
   MQSOLVEDLOG(sprintf("%s: %s, (#%d), (Stupse %d)",
     objname, geteuid(winner), miniquests[objname, MQ_DATA_QUESTNO],
     miniquests[objname, MQ_DATA_POINTS]));
 
   // Miniquest-Event ausloesen
-  EVENTD->TriggerEvent( EVT_LIB_MINIQUEST_SOLVED, ([
+  ({int})EVENTD->TriggerEvent( EVT_LIB_MINIQUEST_SOLVED, ([
             E_OBJECT: previous_object(),
             E_OBNAME: objname,
             E_PLNAME: getuid(winner),
@@ -934,7 +934,7 @@
   if (!member(users_mq, spieler)) {
     int mqpoints;
     int p=-1;
-    string s = (MASTER->query_mq(spieler) || "");
+    string s = (({string})MASTER->query_mq(spieler) || "");
     while( (p=next_bit(s, p)) != -1) {
       mqpoints+=by_num[p][0];
     }
@@ -972,7 +972,7 @@
   if (!member(miniquests,name))
     return MQ_KEY_INVALID;
 
-  mq = (MASTER->query_mq(spieler) || "");
+  mq = (({string})MASTER->query_mq(spieler) || "");
 
   return test_bit(mq, miniquests[name, MQ_DATA_QUESTNO]);
 }
@@ -989,13 +989,13 @@
   if (!member(miniquests,name))
     return MQ_KEY_INVALID;
 
-  string mq = (MASTER->query_mq(pl) || "");
+  string mq = (({string})MASTER->query_mq(pl) || "");
 
   if (test_bit(mq, miniquests[name,MQ_DATA_QUESTNO]))
     return MQ_ALREADY_SET;
 
   catch (mq = set_bit(mq, miniquests[name, MQ_DATA_QUESTNO]);publish);
-  MASTER->update_mq(pl, mq);
+  ({int})MASTER->update_mq(pl, mq);
 
   MQMLOG(sprintf("SetPlayerMiniQuest: %s %s (%s)",
                  pl, name, getuid(this_interactive())));
@@ -1015,13 +1015,13 @@
   if (!member(miniquests,name))
     return MQ_KEY_INVALID;
 
-  string mq = (MASTER->query_mq(pl) || "");
+  string mq = (({string})MASTER->query_mq(pl) || "");
 
   if (!test_bit(mq, miniquests[name, MQ_DATA_QUESTNO]))
     return MQ_ALREADY_SET;
 
   catch (mq = clear_bit(mq, miniquests[name, MQ_DATA_QUESTNO]);publish);
-  MASTER->update_mq(pl, mq);
+  ({int})MASTER->update_mq(pl, mq);
 
   MQMLOG(sprintf("ClearPlayerMiniQuest: %s %s (%s)",
                  pl, name, getuid(this_interactive())));
diff --git a/secure/scoremaster.c b/secure/scoremaster.c
index 6a08eff..0cd1e5d 100644
--- a/secure/scoremaster.c
+++ b/secure/scoremaster.c
@@ -226,7 +226,7 @@
   i=sizeof(whop=m_indices(to_change))-1;
   while (i>=0 && get_eval_cost()>100000)
   {
-    ek = ({string})(MASTER->query_ek(who=whop[i]) || "");
+    ek = (({string})MASTER->query_ek(who=whop[i]) || "");
     for (j=sizeof(what=to_change[who])-1;j>=0;j--) {
       if ((value=what[j])>0) {
     // Vergabestatistik hochzaehlen.
@@ -245,7 +245,7 @@
   sprintf("SET_CLEAR_BIT (reset): %s %4d %s\n",
     who, j, strftime("%d%m%Y-%T",time()) ));
     }
-    MASTER->update_ek(who, ek);
+    ({int})MASTER->update_ek(who, ek);
 
     if (member(users_ek, who))
       m_delete(users_ek, who);
@@ -399,7 +399,7 @@
   foreach(string pl: unconfirmed_scores[bit]) {
       string eks = ({string})master()->query_ek(pl);
       eks = set_bit(eks, bit);
-      master()->update_ek(pl, eks);
+      ({int})master()->update_ek(pl, eks);
       write_file(SCOREAUTOLOG, sprintf(
     "SETBIT: %s %5d %s\n",
     strftime("%d%m%Y-%T",time()), bit, pl));
@@ -688,7 +688,7 @@
 // ausgetragen/deaktiviet sind.
 public string QueryAllKills(string pl)
 {
-  return (MASTER->query_ek(pl) || "");
+  return (({string})MASTER->query_ek(pl) || "");
 }
 
 // filtert alle Eintraege aus dem Bitstring heraus, die fuer
@@ -711,7 +711,7 @@
 
   if (member(users_ek,pl)) return users_ek[pl];
 
-  string s = (MASTER->query_ek(pl) || "");
+  string s = (({string})MASTER->query_ek(pl) || "");
   
   int p=-1;
   int summe;
@@ -779,11 +779,11 @@
   }
   else {
     // sonst wird das Bit direkt im Spieler gesetzt.
-    ek = (MASTER->query_ek(pls) || "");
+    ek = (({string})MASTER->query_ek(pls) || "");
     if (test_bit(ek, bit))
       return -3;
     ek = set_bit(ek, bit);
-    MASTER->update_ek(pls, ek);
+    ({int})MASTER->update_ek(pls, ek);
     // Vergabestatistik hochzaehlen.
     npcs[by_num[bit,BYNUM_KEY],NPC_COUNT]++;
   }
@@ -818,7 +818,7 @@
       member(pls,pl) != -1)
     return 1;
 
-  string eks = (MASTER->query_ek(pl) || "");
+  string eks = (({string})MASTER->query_ek(pl) || "");
 
   return test_bit(eks, bit);
 }
@@ -865,9 +865,9 @@
   if (!allowed())
     return SCORE_NO_PERMISSION;
 
-  ek = (MASTER->query_ek(pl) || "");
+  ek = (({string})MASTER->query_ek(pl) || "");
   ek = set_bit(ek, bit);
-  MASTER->update_ek(pl, ek);
+  ({int})MASTER->update_ek(pl, ek);
 
   // Vergabestatistik hochzaehlen.
   npcs[by_num[bit,BYNUM_KEY],NPC_COUNT]++;
@@ -889,9 +889,9 @@
   if (!allowed())
     return SCORE_NO_PERMISSION;
 
-  ek = (MASTER->query_ek(pl) || "");
+  ek = (({string})MASTER->query_ek(pl) || "");
   ek = clear_bit(ek, bit);
-  MASTER->update_ek(pl, ek);
+  ({int})MASTER->update_ek(pl, ek);
 
   // Vergabestatistik runterzaehlen.
   npcs[by_num[bit,BYNUM_KEY],NPC_COUNT]--;
@@ -1297,7 +1297,7 @@
       tip=getTip(tmp[index]);
       if (stringp(tip) && sizeof(tip)) {
     ektip=set_bit(ektip,npcs[tmp[index],NPC_NUMBER]);
-    MASTER->update_ektips(pl,ektip);
+    ({int})MASTER->update_ektips(pl,ektip);
     break; //fertig
       }
   }
@@ -1412,10 +1412,10 @@
   }
 
   if (changed) {
-      master()->update_ek(pl, eks);
+      ({int})master()->update_ek(pl, eks);
   }
   if (changed2) {
-      master()->update_ektips(pl, ektips);
+      ({int})master()->update_ektips(pl, ektips);
   }
   opfer-=({""});
   write_file(WERKILLTWEN,sprintf("%s\n%=-78s\n\n",pl,CountUp(opfer)||""));
diff --git a/secure/telnetneg.c b/secure/telnetneg.c
index 707bc7b..c5da0d2 100644
--- a/secure/telnetneg.c
+++ b/secure/telnetneg.c
@@ -279,7 +279,7 @@
   {
     send_telnet_neg_str(
         to_bytes(({SB, TELOPT_MSSP}))
-        + to_bytes(sprintf("%s", mssp->get_telnegs_str()),
+        + to_bytes(sprintf("%s", ({string})mssp->get_telnegs_str()),
                    "ASCII//TRANSLIT"));
     // die Daten brauchen wir nicht mehr
     opt->lo_wishes->sbdata = 0;
@@ -988,8 +988,8 @@
   _bind_telneg_std_handlers();
   // dann restliche Daten aus dem Loginobjekt holen.
   Terminals = ({string *}) previous_object()->query_terminals();
-  Set( P_TTY_COLS, previous_object()->Query(P_TTY_COLS) );
-  Set( P_TTY_ROWS, previous_object()->Query(P_TTY_ROWS) );
+  Set( P_TTY_COLS, ({int})previous_object()->Query(P_TTY_COLS) );
+  Set( P_TTY_ROWS, ({int})previous_object()->Query(P_TTY_ROWS) );
 
   struct telopt_s opt = TN[TELOPT_NAWS];
   if (optargs = (opt->re_wishes)->sbdata) {
diff --git a/secure/wizlevels.h b/secure/wizlevels.h
index e785158..f2a72fb 100644
--- a/secure/wizlevels.h
+++ b/secure/wizlevels.h
@@ -37,15 +37,15 @@
 #define IS_SPECIAL(user) (query_wiz_level(user) >= SPECIAL_LVL)
 #define IS_WIZARD(user) (query_wiz_level(user) >= WIZARD_LVL)
 #define IS_DOMAINMEMBER(user) (query_wiz_level(user) >= DOMAINMEMBER_LVL)
-#define IS_DEPUTY(user) (master()->IsDeputy(user))
+#define IS_DEPUTY(user) (({int})master()->IsDeputy(user))
 #define IS_LORD(user) (query_wiz_level(user) >= LORD_LVL)
 #define IS_ELDER(user) (query_wiz_level(user) >= ELDER_LVL)
 #define IS_ARCH(user) (query_wiz_level(user) >= ARCH_LVL)
 #define IS_GOD(user) (query_wiz_level(user) >= GOD_LVL)
 
 #define IS_LEARNING(user) (query_wiz_level(user) >= LEARNER_LVL &&\
-                           user->QueryProp(P_WANTS_TO_LEARN))
-#define IS_LORD_DOMAIN(user,domain) (master()->domain_master(user,domain))
+                           ({int})user->QueryProp(P_WANTS_TO_LEARN))
+#define IS_LORD_DOMAIN(user,domain) (({int})master()->domain_master(user,domain))
 
 /*
  * Interface for enhanced security functions