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