FilterArmours()

FUNKTION

public object *FilterArmours(closure filterfun, varargs mixed* extra)

DEFINIERT IN

/std/living/clothing.c

ARGUMENTE

closure filterfun
  Die Closure, die entscheiden soll, ob eine Ruestung im Ergebnisarray
  enthalten sein soll.



mixed extra
  Beliebig viele Extra-Argumente, die <filterfun> uebergeben werden.

BESCHREIBUNG

Diese Funktion ruft <filterfunc> fuer jede getragene Ruestung des
Lebewesen mit der jeweiligen Ruestung als Argument auf und liefert ein
Array mit allen Ruestungen zurueck, fuer die <filterfun> einen Wert != 0
zurueckliefert.
Die <extra> Argumente werden als zusaetzliche Parameter an <filterfun>
uebergeben und duerfen keine Referenzen sein.



Diese Variante ist zu bevorzugen, wenn man Ruestungen nach bestimmten
Kriterien durchsuchen will und QueryArmourByType() nicht ausreichend sein
sollte.

RUeCKGABEWERT

Ein Array von Objekten mit allen passenden Ruestungen.

BEISPIELE

1) Ich moechte gerne alle Ruestungen haben, die beschaedigt sind:
private int _is_damaged(object ruestung) {
    return ruestung->QueryProp(P_DAMAGE);
}
...
object *damaged_armours = PL->FilterArmours(#'_is_damaged);

2) Ich moechte alle Ruestungen, die groesser als 50cm sind.
private int _armour_is_bigger(object ruestung, int size) {
  return ruestung->QueryProp(P_SIZE) > size;
}
...
object *big_armours = PL->FilterArmours(#'_amour_is_bigger, 50);

3) alle Ruestungen mit einer speziellen ID.
private int _has_id(object ruestung, string idstr) {
  return ruestung->id(idstr);
}
object *has_id = PL->FilterArmours(#'_has_id, "\ntolleruestung");

4) alle Ruestungen mit einer speziellen ID, die groesser als 50cm sind.
private int _has_id(object ruestung, string idstr, int size) {
  return ruestung->id(idstr) && ruestung->QueryProp(P_SIZE) > size;
}
object *has_id = PL->FilterArmours(#'_has_id, "\ntolleruestung", 50);

5) ueberhaupt alle getragene Ruestung
object *rue = PL->FilterArmours(#'objectp)

SIEHE AUCH

Wear(), WearArmour(), WearClothing(), Unwear(), UnwearArmour(),
UnwearClothing()
P_CLOTHING, P_ARMOURS
FilterClothing(), QueryArmourByType()

ZULETZT GEAeNDERT

14.03.2009, Zesstra