Aenderungen fuer wieder funktionierendes strict_types
- Deklarative Casts hinzugefuegt
- Typen gefixt
Change-Id: I44c6082d907efb241a35da248774809054f8c5ab
diff --git a/std/living/life.c b/std/living/life.c
index 7feb2c2..554a702 100644
--- a/std/living/life.c
+++ b/std/living/life.c
@@ -140,7 +140,7 @@
// ---------------------------------------
// 2
//
- object *inv = enemy->TeamMembers();
+ object *inv = ({object*})enemy->TeamMembers();
if ( pointerp(inv) )
{
present_enemies=m_allocate(sizeof(inv), 1);
@@ -179,7 +179,7 @@
}
if ( !total_damage )
{
- enemy->AddExp(exp_to_give);
+ ({int})enemy->AddExp(exp_to_give);
}
else
{
@@ -216,15 +216,15 @@
&& living(enemy)
&& !QueryProp(P_ENABLE_IN_ATTACK_OUT))
{
- al=time()-enemy->QueryProp(P_LAST_MOVE);
+ al=time()-({int})enemy->QueryProp(P_LAST_MOVE);
if (al<3) // Erste Kampfrunde nach Betreten des Raumes?
dam/=(4-al); // Gegen Rein-Feuerball-Raus-Taktik
}
if ( QueryProp(P_GHOST) || QueryProp(P_NO_ATTACK) || (dam<=0)
|| ( objectp(enemy)
- && ( enemy->QueryProp(P_GHOST)
- || enemy->QueryProp(P_NO_ATTACK) ) ) )
+ && ( ({int})enemy->QueryProp(P_GHOST)
+ || ({int|string})enemy->QueryProp(P_NO_ATTACK) ) ) )
return 0;
hit_point = QueryProp(P_HP)-dam;
@@ -232,7 +232,7 @@
if ( QueryProp(P_XP) && objectp(enemy) )
{
if ( !QueryProp(P_NO_XP) )
- enemy->AddExp(dam*({int})QueryProp(P_TOTAL_WC)/10);
+ ({int})enemy->AddExp(dam*({int})QueryProp(P_TOTAL_WC)/10);
}
if (living(enemy)) {
@@ -246,7 +246,7 @@
// nur wenn gegner NPC ist und noch nicht drinsteht: Daten aus
// P_HELPER_NPC auswerten
if (!member(enemy_damage,enemy) && !query_once_interactive(enemy)) {
- mixed helper = enemy->QueryProp(P_HELPER_NPC);
+ mixed helper = ({mixed})enemy->QueryProp(P_HELPER_NPC);
if (pointerp(helper) && objectp(helper[0]))
enemy_damage[enname,1] = helper[0];
}
@@ -260,7 +260,7 @@
//TODO: Warum nicht das ganze Zeug ins die() verlegen?
if ( enemy )
{
- enemy->StopHuntFor(ME,1);
+ ({int})enemy->StopHuntFor(ME,1);
if ( !QueryProp(P_NO_XP) )
DistributeExp(enemy,QueryProp(P_XP)/100);
if ( !query_once_interactive(ME) )
@@ -268,13 +268,13 @@
"[%s] %s, XP: %d, HP*WC: %d, Killer: %s\n",
dtime(time()), object_name(ME), (QueryProp(P_XP)/100),
QueryProp(P_TOTAL_WC)*QueryProp(P_MAX_HP)/10,
- enemy->name()||"NoName" ));
- al = QueryProp(P_ALIGN)/50 + enemy->QueryProp(P_ALIGN)/200;
+ ({string})enemy->name()||"NoName" ));
+ al = QueryProp(P_ALIGN)/50 + ({int})enemy->QueryProp(P_ALIGN)/200;
if (al>20)
al=20;
else if(al<-20)
al=-20;
- enemy->SetProp(P_ALIGN,enemy->QueryProp(P_ALIGN)-al);
+ ({int})enemy->SetProp(P_ALIGN,({int})enemy->QueryProp(P_ALIGN)-al);
}
SetProp(P_KILLER, enemy);
@@ -296,10 +296,10 @@
// Pruefung auf zerstoerte Objekte, da einige sich evtl. im NotifyPlayerDeath()
// zerstoeren.
while ( i && get_eval_cost() > 300000 )
- if ( objectp(obs[--i]) && !obs[i]->QueryProp(P_NEVERDROP) )
+ if ( objectp(obs[--i]) && !({int})obs[i]->QueryProp(P_NEVERDROP) )
// Jetzt wird's noch etwas teurer mit catch() - aber manche Sachen
// duerfen einfach nicht buggen
- catch( obs[i]->move( dest, flag );publish );
+ catch( ({int})obs[i]->move( dest, flag );publish );
if ( i > 0 )
// Zuviel Rechenzeit verbraten, es muessen noch Objekte bewegt werden
@@ -359,7 +359,7 @@
return 0;
while (killer && !query_once_interactive(killer))
- killer = killer->QueryUser();
+ killer = ({object})killer->QueryUser();
return killer;
}
@@ -374,9 +374,9 @@
mixed *fr;
int i,j,sz;
- if ( pointerp(obs=pl->TeamMembers()) && (member(obs,pl)>=0) )
+ if ( pointerp(obs=({object*})pl->TeamMembers()) && (member(obs,pl)>=0) )
{
- if ( !pointerp(fr=pl->PresentTeamRows())
+ if ( !pointerp(fr=({mixed})pl->PresentTeamRows())
|| !sizeof(fr)
|| !pointerp(fr=fr[0])) // Erste Reihe des Teams
fr=({});
@@ -413,11 +413,11 @@
&& query_idle(ob)<600 // gegen Leute die sich nur mitschleppen lassen
&& environment(ob)==environment(pl) // Nur anwesende Teammitglieder
&& !IS_LEARNER(ob)
-// && !ob->QueryProp(P_TESTPLAYER)
- && !(SCOREMASTER->HasKill(ob,ME)) )
- return SCOREMASTER->GiveKill(ob,npcnum),ob;
+// && !({int|string})ob->QueryProp(P_TESTPLAYER)
+ && !(({int})SCOREMASTER->HasKill(ob,ME)) )
+ return ({int})SCOREMASTER->GiveKill(ob,npcnum),ob;
- return SCOREMASTER->GiveKill(pl,npcnum),pl;
+ return ({int})SCOREMASTER->GiveKill(pl,npcnum),pl;
}
// zum ueberschreiben in Spielern
@@ -452,7 +452,7 @@
&& intp(res[0]) && time()<res[0]
&& objectp(res[1]) && stringp(res[2]) )
{
- if ( res = call_other( res[1], res[2], poisondeath ) ) {
+ if ( res = ({mixed})call_other( res[1], res[2], poisondeath ) ) {
SetProp(P_KILLER,0);
return;
}
@@ -503,12 +503,12 @@
ctime(time()),
capitalize(getuid(killer)),
query_wiz_level(killer),
- killer->QueryProp(P_LEVEL),
+ ({int})killer->QueryProp(P_LEVEL),
capitalize(getuid(ME)),
query_wiz_level(ME),
QueryProp(P_LEVEL) ) );
- killer->SetProp( P_KILLS, -1 );
+ ({int})killer->SetProp( P_KILLS, -1 );
}
}
@@ -521,18 +521,18 @@
if ( killer && query_once_interactive(killer) )
{
- if (stringp(res=killer->QueryProp(P_GUILD))
+ if (stringp(res=({string})killer->QueryProp(P_GUILD))
&& objectp(res=find_object("/gilden/"+res)))
- res->NPC_Killed_By(killer);
+ ({void})res->NPC_Killed_By(killer);
if (environment())
- environment()->NPC_Killed_By(killer);
+ ({void})environment()->NPC_Killed_By(killer);
res = QueryProp(P_XP);
res = (res < SCORE_LOW_MARK) ? 0 : ((res > SCORE_HIGH_MARK) ? 2 : 1);
if ( !QueryProp(P_NO_SCORE) && !IS_LEARNER(killer) &&
// !killer->QueryProp(P_TESTPLAYER) &&
- pointerp( res = SCOREMASTER->QueryNPC(res)) )
+ pointerp( res = ({mixed})SCOREMASTER->QueryNPC(res)) )
GiveKillScore( killer, res[0] );
}
}
@@ -570,8 +570,8 @@
else
// sonst in die Leiche legen.
{
- corpse->Identify(ME);
- corpse->move( environment(), M_NOCHECK|M_SILENT );
+ ({void})corpse->Identify(ME);
+ ({int})corpse->move( environment(), M_NOCHECK|M_SILENT );
// Magier oder Testspieler behalten ihre Ausruestung.
// Sonst kaemen u.U. Spieler an Magiertools etc. heran
if ( !(IS_LEARNER(ME) || (tmp = Query(P_TESTPLAYER)) &&
@@ -585,7 +585,7 @@
if ( query_once_interactive(ME) ) {
Set( P_DEADS, Query(P_DEADS) + 1 );
// Spieler-Tod-event ausloesen
- EVENTD->TriggerEvent(EVT_LIB_PLAYER_DEATH, ([
+ ({int})EVENTD->TriggerEvent(EVT_LIB_PLAYER_DEATH, ([
E_OBJECT: ME, E_PLNAME: getuid(ME),
E_ENVIRONMENT: environment(), E_TIME: time(),
P_KILLER: QueryProp(P_KILLER),
@@ -617,8 +617,8 @@
P_RACE: QueryProp(P_RACE),
P_CLASS: QueryProp(P_CLASS),
]);
- EVENTD->TriggerEvent(EVT_LIB_NPC_DEATH(""), data);
- EVENTD->TriggerEvent(
+ ({int})EVENTD->TriggerEvent(EVT_LIB_NPC_DEATH(""), data);
+ ({int})EVENTD->TriggerEvent(
EVT_LIB_NPC_DEATH(load_name(ME)), data);
}
@@ -768,11 +768,11 @@
log_file("REDUCE_HP", name()+" by ");
if(!this_player()) log_file("REDUCE_HP","?\n");
else {
- log_file("REDUCE_HP",this_player()->name());
+ log_file("REDUCE_HP",({string})this_player()->name());
o=previous_object();
if (o)
log_file("REDUCE_HP", " " + object_name(o) + ", " +
- o->name(WER,0) + " (" + creator(o) + ")\n");
+ ({string})o->name(WER,0) + " (" + creator(o) + ")\n");
else
log_file("REDUCE_HP", " ??\n");
}
@@ -1023,10 +1023,10 @@
// Gilde und Environment informieren ueber Alkoholauswirkung.
if ( stringp(gilde = QueryProp(P_GUILD))
&& objectp(ob = find_object( "/gilden/" + gilde )) )
- ob->InformAlcoholEffect( ME, n, ALC_EFFECT_AREA_GUILD );
+ ({void})ob->InformAlcoholEffect( ME, n, ALC_EFFECT_AREA_GUILD );
if ( environment() )
- environment()->InformAlcoholEffect( ME, n, ALC_EFFECT_AREA_ENV );
+ ({void})environment()->InformAlcoholEffect( ME, n, ALC_EFFECT_AREA_ENV );
}
// Alkohol abbauen und etwas extra heilen, falls erlaubt.