notify_fail() ans Spielerobjekt durchreichen
Da der Rueckgabewert 0 in Spellbooks mehrdeutig ist, benutzen wir ein
neues #define NICHT_ZUSTAENDIG, um bei return aus dem Spellbook
mitzuteilen, dass die Spellfunktion sich nicht zustaendig fuehlt.
Die Spellbookfunktion sollte dafuer keine direkte Nachricht geschickt
aber eventuell ein notify_fail() gesetzt haben.
diff --git a/std/spellbook.c b/std/spellbook.c
index 24f824f..cda78bb 100644
--- a/std/spellbook.c
+++ b/std/spellbook.c
@@ -390,12 +390,12 @@
// Spruch ausfuehren.
res=(int)call_other(this_object(),fname,caster,ski);
}
- // TODO: Wenn die ausgefuehrte Spellfunktion eine 0 zurueckgibt, sollen jetzt
- // noch notify_fails zum Zuge kommen koennen. Daher in diesem Fall auch 0
- // zurueckgeben.
if (!res || !caster)
return 1;
+ if(res==NICHT_ZUSTAENDIG)
+ return 0;
+
if (!(ski[SI_NO_ATTACK_BUSY]&NO_ATTACK_BUSY_QUERY))
{
if (!ski[SI_ATTACK_BUSY_AMOUNT])
diff --git a/sys/new_skills.h b/sys/new_skills.h
index 6af5cbc..808d16d 100644
--- a/sys/new_skills.h
+++ b/sys/new_skills.h
@@ -30,6 +30,7 @@
#define ERFOLG 1
#define MISSERFOLG -1
#define ABGEWEHRT 2
+#define NICHT_ZUSTAENDIG -2
// ===== Properties des Gilden-Masters: =====