Lpc Manpages

FUNKTION:
    mapping ReduceTotalAmount(int loss)
    
DEFINIERT IN:
    /std/flasche.c
	
ARGUMENTE:
    loss
        Gesamtmenge an Fluessigkeit, die aus dem Behaelter entfernt werden
        soll.
	
BESCHREIBUNG:
    reduziert die Gesamtmenge an Fluessigkeit im Behaelter um "loss"
    Milliliter. "loss" wird dabei so auf die einzelnen Fluessigkeiten
    im Behaelter aufgeteilt, dass die Mengenverhaeltnisse erhalten
    bleiben. "loss" darf negativ sein.

RUECKGABEWERT:
    0: Fehler, der Behaelter enthaelt garnicht soviel Fluessigkeit oder
       (wenn "loss" negativ ist) die Gesamtkapazitaet des Behaelters wuerde
       ueberschritten.

    Ansonsten gibt ReduceTotalAmount() ein Mapping zurueck, das die Aufteilung
    von "loss" auf die einzelnen Fluessigkeiten beschreibt:
    
    ([ Fluessigkeitsname1: Verlustmenge1,
       Fluessigkeitsname2: Verlustmenge2,
       ...                                  ])
       
    Dies ist genau die Datenstruktur, die DoPour() oder DoDrink() als
    Argumente erwarten.
	
BEMERKUNGEN:
    Aufgrund von Rundungsfehlern ist es moeglich, dass die Summe der einzelnen
    Verlustmengen nicht ganz genau mit "loss" uebereinstimmt.

DOKUMENTIERT:
    19.05.97 Marcel
	
BEISPIEL:
    Ein Behaelter enthalte
      100 Milliliter Sekt,
       60 Milliliter Mineralwasser und
       40 Milliliter Orangensaft.

    ReduceTotalAmount(20) gibt dann folgendes Mapping zurueck:
      ([ "sekt": 10, "wasser": 6, "osaft": 4 ])

    Danach enthaelt der Behaelter
       90 Milliliter Sekt,
       54 Milliliter Mineralwasser und
       36 Milliliter Orangensaft.
       
    Die Mengenverhaeltnisse haben sich nicht geaendert.

SIEHE AUCH:
    flasche, DefineLiquid, AddLiquid, RemoveLiquid, QueryLiquids,
    QueryTotalAmount, QueryLiquidAmount