Aenderungen fuer wieder funktionierendes strict_types

- Deklarative Casts hinzugefuegt
- Typen gefixt

Change-Id: I44c6082d907efb241a35da248774809054f8c5ab
diff --git a/std/container/description.c b/std/container/description.c
index 1de834e..cf56803 100644
--- a/std/container/description.c
+++ b/std/container/description.c
@@ -47,16 +47,16 @@
   
   if ( (!(flags & 4) && (flags & 1))) {
     //wenn Magier und Magierinfos angehaengt werden sollen:
-    tmp = capitalize(obj->short()||"")[0..<2]
+    tmp = capitalize(({string})obj->short()||"")[0..<2]
         + " ["+object_name(obj)+"]";
   }
-  else if (obj->QueryProp(P_INVIS)) {
+  else if (({int})obj->QueryProp(P_INVIS)) {
     //keine Ausgabe bzw. leerer String, wird dann von collect rausgeschmissen
     tmp="";
   }
   else {
     //Spieler, Magier ohne P_WANTS_TO_LEARN etc.
-    tmp = capitalize(obj->short()||"")[0..<2];
+    tmp = capitalize(({string})obj->short()||"")[0..<2];
   }
   //wenn wizard und 'dont collect equal objects': id ist object_name()
   if(flags & 3 || living(obj)) 
@@ -90,7 +90,7 @@
   int iswiz;
   mixed objs, info;
 
-  iswiz = IS_LEARNER( viewer ) && viewer->QueryProp(P_WANTS_TO_LEARN);
+  iswiz = IS_LEARNER( viewer ) && ({int})viewer->QueryProp(P_WANTS_TO_LEARN);
   objs = ({}); info = ({});
   map(inv, #'stringenize/*'*/, iswiz | (flags & 2) | (flags & 4), &objs, &info);
   if(flags & 1) return info;
diff --git a/std/container/items.c b/std/container/items.c
index c27736f..d581425 100644
--- a/std/container/items.c
+++ b/std/container/items.c
@@ -44,7 +44,7 @@
   Set(P_ITEMS,({}));
   Set(P_ITEMS,SECURED,F_MODE_AS);
   
-  OBJECTD->QueryObject();  // querying general objects
+  ({void})OBJECTD->QueryObject();  // querying general objects
 }
 
 protected void create_super()
@@ -121,7 +121,7 @@
   
   if(objectp(ob))
   {
-    ob->move(ME,M_NOCHECK|M_NO_ATTACK);
+    ({int})ob->move(ME,M_NOCHECK|M_NO_ATTACK);
     // mit Absicht keine Pruefung aufs Move, wenns nicht geht, solls 2s
     // spaeter auf der Ebene buggen, weil praktisch niemand im create() das
     // Ergebnis vom AddItem() prueft.
@@ -160,14 +160,14 @@
 
     foreach(object o : inv)
     {
-      o->remove(1);
+      ({int})o->remove(1);
       if(objectp(o))
       {
         destruct(o);
       }
     }
 
-    ob->remove(1);
+    ({int})ob->remove(1);
 
     if(ob)
     {
@@ -212,12 +212,12 @@
   {
     foreach(string fn: &filename)
     {
-      fn=master()->make_path_absolute(fn);
+      fn=({string})master()->make_path_absolute(fn);
     }
   }
   else
   {
-    filename=master()->make_path_absolute( filename );
+    filename=({string})master()->make_path_absolute( filename );
   }
   
   SetProp(P_ITEMS,filter(items, #'ri_filter/*'*/,filename));
@@ -248,7 +248,7 @@
       if(objectp(item[RITEM_OBJECT]) &&
         environment(item[RITEM_OBJECT])!=ME)
       {
-        item[RITEM_OBJECT]->move(ME,M_GO|M_NO_ATTACK);
+        ({int})item[RITEM_OBJECT]->move(ME,M_GO|M_NO_ATTACK);
         break;
       }
       
@@ -272,7 +272,7 @@
         ob=clone_object(file);
       }
 
-      ob->move(ME,M_NOCHECK|M_NO_ATTACK);
+      ({int})ob->move(ME,M_NOCHECK|M_NO_ATTACK);
       break;
   }
   
diff --git a/std/container/light.c b/std/container/light.c
index 24a2bf4..2b34de8 100644
--- a/std/container/light.c
+++ b/std/container/light.c
@@ -78,7 +78,7 @@
 
   // eigenes P_LIGHT und P_TOTAL_LIGHT der enthaltenen Objekte verrechnen
   int intlight = add_light_sources(
-      all_inventory()->QueryProp(P_TOTAL_LIGHT) + ({QueryProp(P_LIGHT)}));
+      ({int*})all_inventory()->QueryProp(P_TOTAL_LIGHT) + ({QueryProp(P_LIGHT)}));
   // P_INT_LIGHT (gerundet) abspeichern
   Set(P_INT_LIGHT, intlight, F_VALUE);
 
diff --git a/std/container/restrictions.c b/std/container/restrictions.c
index 30b8df1..68329df 100644
--- a/std/container/restrictions.c
+++ b/std/container/restrictions.c
@@ -111,7 +111,7 @@
 public int MayAddObject( object ob )
 {
     if (ob) {
-        if ( !ob->short() )
+        if ( !({string})ob->short() )
             return 1; // invis-Objekte duerfen immer
         
         if ( ob == ME || environment(ob) == ME)
@@ -162,7 +162,7 @@
         // Container kann Gewicht nicht mehr aufnehmen
         return -1;
     
-    if ( aw && ENV()->MayAddWeight(aw) < 0 )
+    if ( aw && ({int})ENV()->MayAddWeight(aw) < 0 )
         // Umgebung des Containers kann Gewicht nicht mehr aufnehmen
         return -2;
     
@@ -290,7 +290,7 @@
            case "eigenes":
            case "meins":
                if (objectp(haufen=present("\nhaufen "+
-                     this_player()->name(WEM)))) {
+                     ({string})this_player()->name(WEM)))) {
                   obs = all_inventory(haufen);
                }
                // kein break;, Fall-through!
@@ -384,7 +384,7 @@
            case "meins":
            case "alles eigene":
                if (objectp(haufen=present("\nhaufen "+
-                       this_player()->name(WEM)))) {
+                       ({string})this_player()->name(WEM)))) {
                   obs = all_inventory(haufen);
                }
                // kein break;, Fall-through!
@@ -449,7 +449,7 @@
                // bestimmten ID (im Gegensatz zu "alles", "jede waffe" etc.)
                // soll ein Item gefunden werden, auch wenn die Short 0 ist
                // (unsichtbar, aber interagierbar).
-               else if ( ob && ob != ME && !ob->QueryProp(P_INVIS) )
+               else if ( ob && ob != ME && !({int})ob->QueryProp(P_INVIS) )
                    erg += ({ ob });   //Normalfall: einzelne ID
 
                continue;
diff --git a/std/container/vitems.c b/std/container/vitems.c
index ad86d52..ca50dc2 100644
--- a/std/container/vitems.c
+++ b/std/container/vitems.c
@@ -57,10 +57,10 @@
     // Es wird auch zerstoert, wenn das genommene Objekt gerade im Raum
     // rumliegt (weil Spieler es hat fallen lassen etc.)
     if (vitems[key, VI_OBJECT])
-        vitems[key, VI_OBJECT]->remove(1);
+        ({int})vitems[key, VI_OBJECT]->remove(1);
     if (vitems[key, VI_LAST_OBJ]
         && environment(vitems[key, VI_LAST_OBJ]) == this_object())
-        vitems[key, VI_LAST_OBJ]->remove(1);
+        ({int})vitems[key, VI_LAST_OBJ]->remove(1);
 
     m_delete(vitems, key);
     SetProp(P_VITEMS, vitems);
@@ -123,39 +123,39 @@
     switch(k)
     {
       case P_READ_DETAILS:
-        if (reset_prop) ob->RemoveReadDetail(0);
+        if (reset_prop) ({void})ob->RemoveReadDetail(0);
         walk_mapping(v, "AddReadDetail", ob);
         break;
       case P_DETAILS:
-        if (reset_prop) ob->RemoveDetail(0);
+        if (reset_prop) ({void})ob->RemoveDetail(0);
         walk_mapping(v, "AddDetail", ob);
         break;
       case P_SMELLS:
-        if (reset_prop) ob->RemoveSmells(0);
+        if (reset_prop) ({void})ob->RemoveSmells(0);
         walk_mapping(v, "AddSmells", ob);
         break;
       case P_SOUNDS:
-        if (reset_prop) ob->RemoveSounds(0);
+        if (reset_prop) ({void})ob->RemoveSounds(0);
         walk_mapping(v, "AddSounds", ob);
         break;
       case P_TOUCH_DETAILS:
-        if (reset_prop) ob->RemoveTouchDetail(0);
+        if (reset_prop) ({void})ob->RemoveTouchDetail(0);
         walk_mapping(v, "AddTouchDetail", ob);
         break;
       case P_IDS:
-        if (reset_prop) ob->SetProp(P_IDS, v);
-        else ob->AddId(v);
+        if (reset_prop) ({string*})ob->SetProp(P_IDS, v);
+        else ({void})ob->AddId(v);
       case P_CLASS:
-        if (reset_prop) ob->SetProp(P_CLASS, v);
-        else ob->AddClass(v);
+        if (reset_prop) ({string*})ob->SetProp(P_CLASS, v);
+        else ({void})ob->AddClass(v);
       case P_ADJECTIVES:
-        if (reset_prop) ob->SetProp(P_ADJECTIVES, v);
-        else ob->AddAdjective(v);
+        if (reset_prop) ({string*})ob->SetProp(P_ADJECTIVES, v);
+        else ({void})ob->AddAdjective(v);
         break;
 
       // Alle anderen Properties stumpf setzen.
       default:
-        ob->SetProp(k, v);
+        ({mixed})ob->SetProp(k, v);
     }
   }
 }
@@ -188,13 +188,13 @@
     if (path)
     {
       obj=clone_object(path);
-      obj->SetAutoObject(1);
+      ({int})obj->SetAutoObject(1);
       if (mappingp(props))
         configure_object(obj, props);
       // Schatten erzeugen, welcher die Beschreibung des Objekts im Container nach
       // den Props in shadow_props abaendert.
       sh = clone_object("/obj/vitem_shadow");
-      sh->set_shadow(obj, shadow_props);
+      ({void})sh->set_shadow(obj, shadow_props);
     }
     else
     {
@@ -227,7 +227,7 @@
 {
   foreach(object o : GetVItemClones())
   {
-    if (o->id(complex_desc))
+    if (({int})o->id(complex_desc))
       return o;
   }
   return 0;
@@ -297,7 +297,7 @@
         // wird es immer refresht...
         // Zu beachten: es soll auch nicht hier in diesem Container rumliegen
         // nach dem Heimbewegen, also zerstoeren!
-        last_obj->remove(1);
+        ({int})last_obj->remove(1);
         // Fallthrough
       case VI_REFRESH_REMOVE:
         // wenn nicht mehr als vItem hier ist (d.h. auch wenn es hier im Raum