QueryPronoun()
==============

FUNKTION
--------
::

     string QueryPronoun(int casus);

DEFINIERT IN
------------
::

     /std/thing/language.c

ARGUMENTE
---------
::

     casus
          Der Fall, in dem das Personalpronomen verlangt wird.

BESCHREIBUNG
------------
::

     Es wird ein Personalpronomen ("er", "sie", "es") im entsprechenden Fall
     fuer dieses Objekt berechnet.

RUeCKGABEWERT
-------------
::

     Das Pronomen im entsprechenden Fall.

BEISPIELE
---------
::

     printf("Du versucht, %s zu nehmen, aber %s ist zu schwer.\n",
           ob->name(WEN), ob->QueryPronoun(WER));

     Hier wird immer das richtige Pronomen verwendet, egal, welches
     Geschlecht das Objekt ob hat.

SIEHE AUCH
----------
::

     SuggestArticle(), QueryPossPronoun(), /std/thing/language.c
     QueryOwn()

Last modified: Wed May 8 10:23:14 1996 by Wargon

