MayAddWeight()
**************


FUNKTION
========

   int MayAddWeight(int gewicht);


DEFINIERT IN
============

   /std/container/restrictions.c


ARGUMENTE
=========

   gewicht
        Das zu pruefende Gewicht.


BESCHREIBUNG
============

   Wenn ein Objekt ein einen Behaelter bewegt wird, prueft move() ueber
   diese Funktion, ob das Objekt ueberhaupt noch in den Behaelter hinein
   passt. Dazu uebergibt move() dieser Funktion das Gewicht des zu
   bewegenden Objektes.


RUeCKGABEWERT
=============

   0, wenn der Behaelter noch ein gewicht Gramm wiegendes Objekt aufnehmen
   kann, -1 im anderen Fall.


BEMERKUNGEN
===========

   move() ruft diese Funktion nicht auf, wenn in den Flags M_NOCHECK
   gesetzt war!


BEISPIELE
=========

   Die entsprechende Abfrage in /std/thing/moving.c sieht etwa
   folgendermassen aus:

   int weight;

   ...
   weight = QueryProp(P_TOTAL_WEIGHT);   // Behaelter? Ja => Gesamtgewicht
   if (!weight)
     weight = QueryProp(P_WEIGHT);       // Nein: einfaches Gewicht

   if (ziel->MayAddWeight(weight) == -1) // Passt es noch rein?
     return ME_TOO_HEAVY;                // Nein, entspr. Fehler zurueckgeben

   ...


SIEHE AUCH
==========

   MayAddObject(), PreventInsert(), move(), /std/container/restrictions.c

Last modified: 23.09.2007, Zesstra
