Merge branch 'master' of ssh://mgg/mudlib-public
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/std/thing/light.c b/std/thing/light.c
index 36411b4..d02f579 100644
--- a/std/thing/light.c
+++ b/std/thing/light.c
@@ -46,7 +46,7 @@
light = 100;
else if (light < -100)
light = -100;
-
+
while ( objectp(env = environment(env)) )
// Ja. Man ruft die _set_xxx()-Funktionen eigentlich nicht direkt auf.
// Aber das Lichtsystem ist schon *so* rechenintensiv und gerade der
@@ -56,7 +56,35 @@
//
// Tiamak
env->_set_last_content_change();
-
+
return Set( P_LIGHT, light, F_VALUE);
}
+
+// ##############
+//######################## Lichttypen ############################
+// ##############
+
+// Lichttypen pruefen
+varargs int CheckLightType(int lighttype, int mode)
+{
+ int my_light_type = QueryProp(P_LIGHT_TYPE);
+
+ switch( mode )
+ {
+ // mind. alle angegebenen muessen vertreten sein
+ case LT_CHECK_ALL:
+ return ((lighttype & my_light_type) == lighttype);
+ // Genau diese Typen muessen vertreten sein.
+ case LT_CHECK_MATCH:
+ return (lighttype == my_light_type);
+ // Es darf kein Typ vertreten sein.
+ case LT_CHECK_NONE:
+ return !(lighttype & my_light_type);
+ // mind. einer der uebergebenen Typen muss vertreten sein
+ case LT_CHECK_ANY:
+ default:
+ return (lighttype & my_light_type);
+ }
+ return 0;
+}
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: =====