CheckLightType()¶
FUNKTION¶
varargs int CheckLightType(int lighttype, int mode);
DEFINIERT IN¶
/std/thing/description.c
ARGUMENTE¶
lighttype
Auf diesen Lichttyp wird getestet.
mode
Die Methode, nach der der Lichttyp ueberprueft wird.
BESCHREIBUNG¶
Die Funktion prueft, ob der uebergebene lighttype mit dem in
P_LIGHT_TYPE definierten Lichttyp uebereinstimmt.
Dabei kann in verschiedenen Modi getestet werden:
LT_CHECK_ANY
Es wird geprueft, ob mindestens einer der in lighttype ueber
gebenen Lichttypen im Objekt vorhanden ist. Dies ist das
Standardverhalten (default) der Funktion.
LT_CHECK_ALL
Es wird geprueft, ob alle in lighttype definierten Lichttypen
vorhanden sind. Es koennen aber auch mehr Lichttypen definiert
sein.
LT_CHECK_MATCH
Es wird geprueft, ob genau die in lighttype definierten Licht-
tyen definiert sind, sind mehr oder weniger vorhanden, gibt die
Funktion 0 zurueck.
LT_CHECK_NONE
Es wird geprueft, ob keiner der uebergebenen Lichttypen vorhanden
sind. Ob sonst noch andere Lichttypen vorhanden sind, ist dabei
egal.
RUeCKGABEWERT¶
0 wenn die geprueften Bedingungen nicht korrekt sind, sonst
ein Wert ungleich 0.
BEISPIELE¶
In einem Raum scheint die Sonne, ausserdem gibt es dort ein Lager-
feuer und ein Objekt mit magischem Gluehen (meine Phantasie streikt
grad):
raum->SetProp( P_LIGHT_TYPE, LT_SUN|LT_OPEN_FIRE|LT_GLOWING );
Es soll getestet werden, ob an in dem Raum Tageslicht herrscht:
raum->CheckLightType(LT_DAYLIGHT, LT_CHECK_ANY);
raum->CheckLightType(LT_DAYLIGHT); // gleichwertig
Die Funktion ergibt wahr, da LT_DAYLIGHT unter anderem LT_SUN ent-
haelt (vgl man P_LIGHT_TYPES).
Es soll getestet werden, dass weder Mond noch Sterne im Raum sind:
raum->CheckLightType(LT_MOON|LT_STARS, LT_CHECK_NONE);
Die Funktion ergibt wahr, da die beiden nicht gesetzt sind.
Es soll geprueft werden, ob Mond und Sterne im Raum leuchten:
raum->CheckLightType(LT_MOON|LT_STARS, LT_CHECK_ALL);
Die Funktion ergibt falsch, da keins der beiden Lichter vorhanden
ist. Sie ergaebe aber auch falsch, wenn einer der beiden Typen
vorhanden waer. Nur wenn beide vorhanden sind, gibt LT_CHECK_ALL
wahr.
BEMERKUNG¶
Lighttypes haben nichts mit dem Lichtsystem zu tun. Sie dienen
nur der Beschreibung der Lichtverhaeltnisse an/in einem Objekt.
Objekte mit verschiedenen Lichtverhaeltnissen beeinflussen sich
gegenseitig nicht.
SIEHE AUCH¶
/std/thing/description.c, /std/thing/lighttypes.h, P_LIGHT_TYPE
Last modified: Fri Jun 11 20:47:33 2004 by Vanion