Zesstra | 953f997 | 2017-02-18 15:37:36 +0100 | [diff] [blame] | 1 | |
| 2 | GetDetail() |
| 3 | *********** |
| 4 | |
| 5 | |
| 6 | FUNKTION |
| 7 | ======== |
| 8 | |
| 9 | varargs string GetDetail(string key, string race, int sense) |
| 10 | |
| 11 | |
| 12 | DEFINIERT IN |
| 13 | ============ |
| 14 | |
| 15 | /std/thing/description.c |
| 16 | |
| 17 | |
| 18 | ARGUMENTE |
| 19 | ========= |
| 20 | |
| 21 | key |
| 22 | Das zu ermittelnde Detail. |
| 23 | race |
| 24 | Rasse des ermittelnden Objektes (falls es ein Lebewesen ist). |
| 25 | sense |
| 26 | Die Art des zu untersuchenden Details: |
| 27 | Untersuchen, Riechen, Hoeren, Tasten. |
| 28 | |
| 29 | |
| 30 | BESCHREIBUNG |
| 31 | ============ |
| 32 | |
| 33 | Die Beschreibung des gewuenschten Details wird ermittelt. Dabei |
| 34 | werden rassenspezifische Details beruecksichtigt. Es gibt hierbei |
| 35 | verschiedene Detailarten, deren Typ man in <sense> angibt: |
| 36 | SENSE_VIEW - Fuer Defaultdetails zum Untersuchen. |
| 37 | SENSE_SMELL - Fuer Details, die man riechen kann. |
| 38 | SENSE_SOUND - Fuer Details, die man hoeren kann. |
| 39 | SENSE_TOUCH - Fuer Details, die man abtasten kann. |
| 40 | SENSE_READ - Fuer Details, die man lesen kann. |
| 41 | |
| 42 | Dabei ist 0 == SENSE_VIEW. |
| 43 | |
| 44 | |
| 45 | RUeCKGABEWERT |
| 46 | ============= |
| 47 | |
| 48 | Die Beschreibung des Details oder 0, wenn es dieses Detail nicht |
| 49 | gibt. |
| 50 | |
| 51 | |
| 52 | BEISPIEL |
| 53 | ======== |
| 54 | |
| 55 | Im folgenden wird ein kleines Testdetail generiert: |
| 56 | AddDetail("test","Das ist ein Test!\n"); |
| 57 | Im folgenden wird das Detail entfernt, wenn es existiert. Dies ist |
| 58 | eigentlich nicht noetig, da RemoveDetail() damit zurechtkommt, aber |
| 59 | eventuell sind ja noch weitere Aktionen noetig. |
| 60 | if(GetDetail("test")) |
| 61 | { RemoveDetail("test"); |
| 62 | ... |
| 63 | } |
| 64 | Ein Geruch kann man folgendermassen erzeugen: |
| 65 | AddSmells("gold", |
| 66 | ([0 :"Gold kann man nicht riechen!\n", |
| 67 | "zwerg":"Deine trainierte Nase riecht es muehelos!\n"])); |
| 68 | Die Abfrage des Details gestaltet sich recht einfach: |
| 69 | GetDetail("gold","zwerg",SENSE_SMELL); |
| 70 | Die Funktion liefert das Detail fuer den Zwerg. |
| 71 | GetDetail("gold",0,SENSE_SMELL); |
| 72 | Die Funktion liefert das Detail fuer die restlichen Rassen. |
| 73 | GetDetail("gold",0,SENSE_SOUND); |
| 74 | Ein Sounddetail mit dem Namen "gold" existiert nicht, die Funktion |
| 75 | liefert 0 zurueck. |
| 76 | |
| 77 | |
| 78 | SIEHE AUCH |
| 79 | ========== |
| 80 | |
| 81 | Setzen: AddDetail(), AddReadDetail(), AddSmells(), AddSounds(), |
| 82 | AddTouchDetail() |
| 83 | Loeschen: RemoveReadDetail(), RemoveSmells(), RemoveDetail(), |
| 84 | RemoveSounds(), RemoveTouchDetail() |
| 85 | Daten: P_DETAILS, P_READ_DETAILS, P_SMELLS, P_SOUNDS, |
| 86 | P_TOUCH_DETAILS, P_SPECIAL_DETAILS |
| 87 | Veraltet: AddSpecialDetail(), RemoveSpecialDetail(), P_READ_MSG |
| 88 | Sonstiges: break_string() |
| 89 | |
| 90 | 27. Jan 2013 Gloinson |