ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/c_chat.C
Revision: 1.5
Committed: Sun Sep 10 15:59:57 2006 UTC (17 years, 8 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.4: +690 -678 lines
Log Message:
indent

File Contents

# User Rev Content
1 root 1.5
2 elmex 1.1 /*
3     * static char *rcsid_c_chat_c =
4 root 1.5 * "$Id: c_chat.C,v 1.4 2006-09-03 00:18:42 root Exp $";
5 elmex 1.1 */
6    
7     /*
8     CrossFire, A Multiplayer game for X-windows
9    
10     Copyright (C) 2002 Mark Wedel & Crossfire Development Team
11     Copyright (C) 1992 Frank Tore Johansen
12    
13     This program is free software; you can redistribute it and/or modify
14     it under the terms of the GNU General Public License as published by
15     the Free Software Foundation; either version 2 of the License, or
16     (at your option) any later version.
17    
18     This program is distributed in the hope that it will be useful,
19     but WITHOUT ANY WARRANTY; without even the implied warranty of
20     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21     GNU General Public License for more details.
22    
23     You should have received a copy of the GNU General Public License
24     along with this program; if not, write to the Free Software
25     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
26    
27     The authors can be reached via e-mail at crossfire-devel@real-time.com
28     */
29    
30     #include <global.h>
31     #include <loader.h>
32     #include <sproto.h>
33    
34 root 1.5 int
35     command_me (object *op, char *params)
36 elmex 1.1 {
37 root 1.5 char buf[MAX_BUF];
38 elmex 1.1
39 root 1.5 if (!params)
40     return 0;
41     snprintf (buf, MAX_BUF - 1, "%s %s", &op->name, params);
42     new_info_map (NDI_UNIQUE | NDI_BLUE, op->map, buf);
43 elmex 1.1
44 root 1.5 return 0;
45 elmex 1.1 }
46    
47    
48 root 1.5 int
49     command_cointoss (object *op, char *params)
50 elmex 1.1 {
51 root 1.5 char buf[MAX_BUF];
52     char buf2[MAX_BUF];
53     int i;
54    
55     i = rndm (1, 2);
56     if (i == 1)
57     {
58     snprintf (buf, MAX_BUF - 1, "%s flips a coin.... Heads!", &op->name);
59     snprintf (buf2, MAX_BUF - 1, "You flip a coin.... Heads!");
60     }
61     else
62     {
63     snprintf (buf, MAX_BUF - 1, "%s flips a coin.... Tails!", &op->name);
64     snprintf (buf2, MAX_BUF - 1, "You flip a coin.... Tails!");
65 elmex 1.1 }
66 root 1.5 new_draw_info (NDI_UNIQUE, 0, op, buf2);
67     new_info_map_except (NDI_WHITE, op->map, op, buf);
68     return 0;
69     }
70    
71     static const char *const orcknuckle[7] = { "none", "beholder", "ghost", "knight",
72     "princess", "dragon", "orc"
73     };
74    
75     int
76     command_orcknuckle (object *op, char *params)
77     {
78     char buf[MAX_BUF];
79     char buf2[MAX_BUF];
80     int i, j, k, l;
81    
82     i = rndm (1, 5);
83     j = rndm (1, 5);
84     k = rndm (1, 5);
85     l = rndm (1, 6);
86    
87     snprintf (buf2, MAX_BUF - 1, "%s rolls %s, %s, %s, %s!", &op->name, orcknuckle[i], orcknuckle[j], orcknuckle[k], orcknuckle[l]);
88     snprintf (buf, MAX_BUF - 1, "You roll %s, %s, %s, %s!", orcknuckle[i], orcknuckle[j], orcknuckle[k], orcknuckle[l]);
89     new_draw_info (NDI_UNIQUE, 0, op, buf);
90     new_info_map_except (NDI_UNIQUE, op->map, op, buf2);
91     return 0;
92 elmex 1.1 }
93    
94     /*
95     * This function covers basic emotions a player can have. An emotion can be
96     * one of three things currently. Directed at oneself, directed at someone,
97     * or directed at nobody. The first set is nobody, the second at someone, and
98     * the third is directed at oneself. Every emotion does not have to be
99     * filled out in every category. The default case will take care of the ones
100     * that are not. Helper functions will call basic_emote with the proper
101     * arguments, translating them into commands. Adding a new emotion can be
102     * done by editing command.c and command.h.
103     * [garbled 09-25-2001]
104     */
105    
106 root 1.5 static int
107     basic_emote (object *op, char *params, int emotion)
108 elmex 1.1 {
109 root 1.5 char buf[MAX_BUF], buf2[MAX_BUF], buf3[MAX_BUF];
110     player *pl;
111 elmex 1.1
112 root 1.5 if (!params)
113     {
114     switch (emotion)
115     {
116     case EMOTE_NOD:
117     sprintf (buf, "%s nods solemnly.", &op->name);
118     sprintf (buf2, "You nod solemnly.");
119     break;
120     case EMOTE_DANCE:
121     sprintf (buf, "%s expresses himself through interpretive dance.", &op->name);
122     sprintf (buf2, "You dance with glee.");
123     break;
124     case EMOTE_KISS:
125     sprintf (buf, "%s makes a weird facial contortion", &op->name);
126     sprintf (buf2, "All the lonely people..");
127     break;
128     case EMOTE_BOUNCE:
129     sprintf (buf, "%s bounces around.", &op->name);
130     sprintf (buf2, "BOIINNNNNNGG!");
131     break;
132     case EMOTE_SMILE:
133     sprintf (buf, "%s smiles happily.", &op->name);
134     sprintf (buf2, "You smile happily.");
135     break;
136     case EMOTE_CACKLE:
137     sprintf (buf, "%s throws back his head and cackles with insane " "glee!", &op->name);
138     sprintf (buf2, "You cackle gleefully.");
139     break;
140     case EMOTE_LAUGH:
141     sprintf (buf, "%s falls down laughing.", &op->name);
142     sprintf (buf2, "You fall down laughing.");
143     break;
144     case EMOTE_GIGGLE:
145     sprintf (buf, "%s giggles.", &op->name);
146     sprintf (buf2, "You giggle.");
147     break;
148     case EMOTE_SHAKE:
149     sprintf (buf, "%s shakes his head.", &op->name);
150     sprintf (buf2, "You shake your head.");
151     break;
152     case EMOTE_PUKE:
153     sprintf (buf, "%s pukes.", &op->name);
154     sprintf (buf2, "Bleaaaaaghhhhhhh!");
155     break;
156     case EMOTE_GROWL:
157     sprintf (buf, "%s growls.", &op->name);
158     sprintf (buf2, "Grrrrrrrrr....");
159     break;
160     case EMOTE_SCREAM:
161     sprintf (buf, "%s screams at the top of his lungs!", &op->name);
162     sprintf (buf2, "ARRRRRRRRRRGH!!!!!");
163     break;
164     case EMOTE_SIGH:
165     sprintf (buf, "%s sighs loudly.", &op->name);
166     sprintf (buf2, "You sigh.");
167     break;
168     case EMOTE_SULK:
169     sprintf (buf, "%s sulks in the corner.", &op->name);
170     sprintf (buf2, "You sulk.");
171     break;
172     case EMOTE_CRY:
173     sprintf (buf, "%s bursts into tears.", &op->name);
174     sprintf (buf2, "Waaaaaaahhh..");
175     break;
176     case EMOTE_GRIN:
177     sprintf (buf, "%s grins evilly.", &op->name);
178     sprintf (buf2, "You grin evilly.");
179     break;
180     case EMOTE_BOW:
181     sprintf (buf, "%s bows deeply.", &op->name);
182     sprintf (buf2, "You bow deeply.");
183     break;
184     case EMOTE_CLAP:
185     sprintf (buf, "%s gives a round of applause.", &op->name);
186     sprintf (buf2, "Clap, clap, clap.");
187     break;
188     case EMOTE_BLUSH:
189     sprintf (buf, "%s blushes.", &op->name);
190     sprintf (buf2, "Your cheeks are burning.");
191     break;
192     case EMOTE_BURP:
193     sprintf (buf, "%s burps loudly.", &op->name);
194     sprintf (buf2, "You burp loudly.");
195     break;
196     case EMOTE_CHUCKLE:
197     sprintf (buf, "%s chuckles politely.", &op->name);
198     sprintf (buf2, "You chuckle politely");
199     break;
200     case EMOTE_COUGH:
201     sprintf (buf, "%s coughs loudly.", &op->name);
202     sprintf (buf2, "Yuck, try to cover your mouth next time!");
203     break;
204     case EMOTE_FLIP:
205     sprintf (buf, "%s flips head over heels.", &op->name);
206     sprintf (buf2, "You flip head over heels.");
207     break;
208     case EMOTE_FROWN:
209     sprintf (buf, "%s frowns.", &op->name);
210     sprintf (buf2, "What's bothering you?");
211     break;
212     case EMOTE_GASP:
213     sprintf (buf, "%s gasps in astonishment.", &op->name);
214     sprintf (buf2, "You gasp in astonishment.");
215     break;
216     case EMOTE_GLARE:
217     sprintf (buf, "%s glares around him.", &op->name);
218     sprintf (buf2, "You glare at nothing in particular.");
219     break;
220     case EMOTE_GROAN:
221     sprintf (buf, "%s groans loudly.", &op->name);
222     sprintf (buf2, "You groan loudly.");
223     break;
224     case EMOTE_HICCUP:
225     sprintf (buf, "%s hiccups.", &op->name);
226     sprintf (buf2, "*HIC*");
227     break;
228     case EMOTE_LICK:
229     sprintf (buf, "%s licks his mouth and smiles.", &op->name);
230     sprintf (buf2, "You lick your mouth and smile.");
231     break;
232     case EMOTE_POUT:
233     sprintf (buf, "%s pouts.", &op->name);
234     sprintf (buf2, "Aww, don't take it so hard.");
235     break;
236     case EMOTE_SHIVER:
237     sprintf (buf, "%s shivers uncomfortably.", &op->name);
238     sprintf (buf2, "Brrrrrrrrr.");
239     break;
240     case EMOTE_SHRUG:
241     sprintf (buf, "%s shrugs helplessly.", &op->name);
242     sprintf (buf2, "You shrug.");
243     break;
244     case EMOTE_SMIRK:
245     sprintf (buf, "%s smirks.", &op->name);
246     sprintf (buf2, "You smirk.");
247     break;
248     case EMOTE_SNAP:
249     sprintf (buf, "%s snaps his fingers.", &op->name);
250     sprintf (buf2, "PRONTO! You snap your fingers.");
251     break;
252     case EMOTE_SNEEZE:
253     sprintf (buf, "%s sneezes.", &op->name);
254     sprintf (buf2, "Gesundheit!");
255     break;
256     case EMOTE_SNICKER:
257     sprintf (buf, "%s snickers softly.", &op->name);
258     sprintf (buf2, "You snicker softly.");
259     break;
260     case EMOTE_SNIFF:
261     sprintf (buf, "%s sniffs sadly.", &op->name);
262     sprintf (buf2, "You sniff sadly. *SNIFF*");
263     break;
264     case EMOTE_SNORE:
265     sprintf (buf, "%s snores loudly.", &op->name);
266     sprintf (buf2, "Zzzzzzzzzzzzzzz.");
267     break;
268     case EMOTE_SPIT:
269     sprintf (buf, "%s spits over his left shoulder.", &op->name);
270     sprintf (buf2, "You spit over your left shoulder.");
271     break;
272     case EMOTE_STRUT:
273     sprintf (buf, "%s struts proudly.", &op->name);
274     sprintf (buf2, "Strut your stuff.");
275     break;
276     case EMOTE_TWIDDLE:
277     sprintf (buf, "%s patiently twiddles his thumbs.", &op->name);
278     sprintf (buf2, "You patiently twiddle your thumbs.");
279     break;
280     case EMOTE_WAVE:
281     sprintf (buf, "%s waves happily.", &op->name);
282     sprintf (buf2, "You wave.");
283     break;
284     case EMOTE_WHISTLE:
285     sprintf (buf, "%s whistles appreciatively.", &op->name);
286     sprintf (buf2, "You whistle appreciatively.");
287     break;
288     case EMOTE_WINK:
289     sprintf (buf, "%s winks suggestively.", &op->name);
290     sprintf (buf2, "Have you got something in your eye?");
291     break;
292     case EMOTE_YAWN:
293     sprintf (buf, "%s yawns sleepily.", &op->name);
294     sprintf (buf2, "You open up your yap and let out a big breeze " "of stale air.");
295     break;
296     case EMOTE_CRINGE:
297     sprintf (buf, "%s cringes in terror!", &op->name);
298     sprintf (buf2, "You cringe in terror.");
299     break;
300     case EMOTE_BLEED:
301     sprintf (buf, "%s is bleeding all over the carpet" " - got a spare tourniquet?", &op->name);
302     sprintf (buf2, "You bleed all over your nice new armour.");
303     break;
304     case EMOTE_THINK:
305     sprintf (buf, "%s closes his eyes and thinks really hard.", &op->name);
306     sprintf (buf2, "Anything in particular that you'd care to think " "about?");
307     break;
308     default:
309     sprintf (buf, "%s dances with glee.", &op->name);
310     sprintf (buf2, "You are a nut.");
311     break;
312     } /*case */
313     new_info_map_except (NDI_WHITE, op->map, op, buf);
314     new_draw_info (NDI_UNIQUE | NDI_WHITE, 0, op, buf2);
315     return (0);
316     }
317     else
318     {
319     for (pl = first_player; pl != NULL; pl = pl->next)
320     {
321     if (strncasecmp (pl->ob->name, params, MAX_NAME) == 0 &&
322     pl->ob->map == op->map && pl->ob != op && !(QUERY_FLAG (pl->ob, FLAG_WIZ) && pl->ob->contr->hidden))
323     {
324     /* Hidden dms are not affected by emotions */
325     switch (emotion)
326     {
327     case EMOTE_NOD:
328     sprintf (buf, "You nod solemnly to %s.", &pl->ob->name);
329     sprintf (buf2, "%s nods solemnly to you.", &op->name);
330     sprintf (buf3, "%s nods solemnly to %s.", &op->name, &pl->ob->name);
331     break;
332     case EMOTE_DANCE:
333     sprintf (buf, "You grab %s and begin doing the Cha-Cha!", &pl->ob->name);
334     sprintf (buf2, "%s grabs you, and begins dancing!", &op->name);
335     sprintf (buf3, "Yipe! %s and %s are doing the Macarena!", &op->name, &pl->ob->name);
336     break;
337     case EMOTE_KISS:
338     sprintf (buf, "You kiss %s.", &pl->ob->name);
339     sprintf (buf2, "%s kisses you.", &op->name);
340     sprintf (buf3, "%s kisses %s.", &op->name, &pl->ob->name);
341     break;
342     case EMOTE_BOUNCE:
343     sprintf (buf, "You bounce around the room with %s.", &pl->ob->name);
344     sprintf (buf2, "%s bounces around the room with you.", &op->name);
345     sprintf (buf3, "%s bounces around the room with %s.", &op->name, &pl->ob->name);
346     break;
347     case EMOTE_SMILE:
348     sprintf (buf, "You smile at %s.", &pl->ob->name);
349     sprintf (buf2, "%s smiles at you.", &op->name);
350     sprintf (buf3, "%s beams a smile at %s.", &op->name, &pl->ob->name);
351     break;
352     case EMOTE_LAUGH:
353     sprintf (buf, "You take one look at %s and fall down " "laughing.", &pl->ob->name);
354     sprintf (buf2, "%s looks at you and falls down on the " "ground laughing.", &op->name);
355     sprintf (buf3, "%s looks at %s and falls down on the " "ground laughing.", &op->name, &pl->ob->name);
356     break;
357     case EMOTE_SHAKE:
358     sprintf (buf, "You shake %s's hand.", &pl->ob->name);
359     sprintf (buf2, "%s shakes your hand.", &op->name);
360     sprintf (buf3, "%s shakes %s's hand.", &op->name, &pl->ob->name);
361     break;
362     case EMOTE_PUKE:
363     sprintf (buf, "You puke on %s.", &pl->ob->name);
364     sprintf (buf2, "%s pukes on your clothes!", &op->name);
365     sprintf (buf3, "%s pukes on %s.", &op->name, &pl->ob->name);
366     break;
367     case EMOTE_HUG:
368     sprintf (buf, "You hug %s.", &pl->ob->name);
369     sprintf (buf2, "%s hugs you.", &op->name);
370     sprintf (buf3, "%s hugs %s.", &op->name, &pl->ob->name);
371     break;
372     case EMOTE_CRY:
373     sprintf (buf, "You cry on %s's shoulder.", &pl->ob->name);
374     sprintf (buf2, "%s cries on your shoulder.", &op->name);
375     sprintf (buf3, "%s cries on %s's shoulder.", &op->name, &pl->ob->name);
376     break;
377     case EMOTE_POKE:
378     sprintf (buf, "You poke %s in the ribs.", &pl->ob->name);
379     sprintf (buf2, "%s pokes you in the ribs.", &op->name);
380     sprintf (buf3, "%s pokes %s in the ribs.", &op->name, &pl->ob->name);
381     break;
382     case EMOTE_ACCUSE:
383     sprintf (buf, "You look accusingly at %s.", &pl->ob->name);
384     sprintf (buf2, "%s looks accusingly at you.", &op->name);
385     sprintf (buf3, "%s looks accusingly at %s.", &op->name, &pl->ob->name);
386     break;
387     case EMOTE_GRIN:
388     sprintf (buf, "You grin at %s.", &pl->ob->name);
389     sprintf (buf2, "%s grins evilly at you.", &op->name);
390     sprintf (buf3, "%s grins evilly at %s.", &op->name, &pl->ob->name);
391     break;
392     case EMOTE_BOW:
393     sprintf (buf, "You bow before %s.", &pl->ob->name);
394     sprintf (buf2, "%s bows before you.", &op->name);
395     sprintf (buf3, "%s bows before %s.", &op->name, &pl->ob->name);
396     break;
397     case EMOTE_FROWN:
398     sprintf (buf, "You frown darkly at %s.", &pl->ob->name);
399     sprintf (buf2, "%s frowns darkly at you.", &op->name);
400     sprintf (buf3, "%s frowns darkly at %s.", &op->name, &pl->ob->name);
401     break;
402     case EMOTE_GLARE:
403     sprintf (buf, "You glare icily at %s.", &pl->ob->name);
404     sprintf (buf2, "%s glares icily at you, you feel cold to" " your bones.", &op->name);
405     sprintf (buf3, "%s glares at %s.", &op->name, &pl->ob->name);
406     break;
407     case EMOTE_LICK:
408     sprintf (buf, "You lick %s.", &pl->ob->name);
409     sprintf (buf2, "%s licks you.", &op->name);
410     sprintf (buf3, "%s licks %s.", &op->name, &pl->ob->name);
411     break;
412     case EMOTE_SHRUG:
413     sprintf (buf, "You shrug at %s.", &pl->ob->name);
414     sprintf (buf2, "%s shrugs at you.", &op->name);
415     sprintf (buf3, "%s shrugs at %s.", &op->name, &pl->ob->name);
416     break;
417     case EMOTE_SLAP:
418     sprintf (buf, "You slap %s.", &pl->ob->name);
419     sprintf (buf2, "You are slapped by %s.", &op->name);
420     sprintf (buf3, "%s slaps %s.", &op->name, &pl->ob->name);
421     break;
422     case EMOTE_SNEEZE:
423     sprintf (buf, "You sneeze at %s and a film of snot shoots" " onto him.", &pl->ob->name);
424     sprintf (buf2, "%s sneezes on you, you feel the snot cover" " you. EEEEEEW.", &op->name);
425     sprintf (buf3, "%s sneezes on %s and a film of snot covers" " him.", &op->name, &pl->ob->name);
426     break;
427     case EMOTE_SNIFF:
428     sprintf (buf, "You sniff %s.", &pl->ob->name);
429     sprintf (buf2, "%s sniffs you.", &op->name);
430     sprintf (buf3, "%s sniffs %s", &op->name, &pl->ob->name);
431     break;
432     case EMOTE_SPIT:
433     sprintf (buf, "You spit on %s.", &pl->ob->name);
434     sprintf (buf2, "%s spits in your face!", &op->name);
435     sprintf (buf3, "%s spits in %s's face.", &op->name, &pl->ob->name);
436     break;
437     case EMOTE_THANK:
438     sprintf (buf, "You thank %s heartily.", &pl->ob->name);
439     sprintf (buf2, "%s thanks you heartily.", &op->name);
440     sprintf (buf3, "%s thanks %s heartily.", &op->name, &pl->ob->name);
441     break;
442     case EMOTE_WAVE:
443     sprintf (buf, "You wave goodbye to %s.", &pl->ob->name);
444     sprintf (buf2, "%s waves goodbye to you. Have a good" " journey.", &op->name);
445     sprintf (buf3, "%s waves goodbye to %s.", &op->name, &pl->ob->name);
446     break;
447     case EMOTE_WHISTLE:
448     sprintf (buf, "You whistle at %s.", &pl->ob->name);
449     sprintf (buf2, "%s whistles at you.", &op->name);
450     sprintf (buf2, "%s whistles at %s.", &op->name, &pl->ob->name);
451     break;
452     case EMOTE_WINK:
453     sprintf (buf, "You wink suggestively at %s.", &pl->ob->name);
454     sprintf (buf2, "%s winks suggestively at you.", &op->name);
455     sprintf (buf2, "%s winks at %s.", &op->name, &pl->ob->name);
456     break;
457     case EMOTE_BEG:
458     sprintf (buf, "You beg %s for mercy.", &pl->ob->name);
459     sprintf (buf2, "%s begs you for mercy! Show no quarter!", &op->name);
460     sprintf (buf2, "%s begs %s for mercy!", &op->name, &pl->ob->name);
461     break;
462     case EMOTE_BLEED:
463     sprintf (buf, "You slash your wrist and bleed all over %s", &pl->ob->name);
464     sprintf (buf2, "%s slashes his wrist and bleeds all over" " you.", &op->name);
465     sprintf (buf2, "%s slashes his wrist and bleeds all " "over %s.", &op->name, &pl->ob->name);
466     break;
467     case EMOTE_CRINGE:
468     sprintf (buf, "You cringe away from %s.", &pl->ob->name);
469     sprintf (buf2, "%s cringes away from you.", &op->name);
470     sprintf (buf2, "%s cringes away from %s in mortal terror.", &op->name, &pl->ob->name);
471     break;
472     default:
473     sprintf (buf, "You are still nuts.");
474     sprintf (buf2, "You get the distinct feeling that %s is nuts.", &op->name);
475     sprintf (buf3, "%s is eyeing %s quizzically.", &pl->ob->name, &op->name);
476     break;
477     } /*case */
478     new_draw_info (NDI_UNIQUE | NDI_WHITE, 0, op, buf);
479     new_draw_info (NDI_UNIQUE | NDI_WHITE, 0, pl->ob, buf2);
480     new_info_map_except2 (NDI_WHITE, op->map, op, pl->ob, buf3);
481     return (0);
482 root 1.3 }
483 root 1.5 if (strncasecmp (pl->ob->name, params, MAX_NAME) == 0 && pl->ob->map == op->map && pl->ob == op)
484     {
485     switch (emotion)
486     {
487     case EMOTE_DANCE:
488     sprintf (buf, "You skip and dance around by yourself.");
489     sprintf (buf2, "%s embraces himself and begins to dance!", &op->name);
490     break;
491     case EMOTE_LAUGH:
492     sprintf (buf, "Laugh at yourself all you want, the others " "won't understand.");
493     sprintf (buf2, "%s is laughing at something.", &op->name);
494     break;
495     case EMOTE_SHAKE:
496     sprintf (buf, "You are shaken by yourself.");
497     sprintf (buf2, "%s shakes and quivers like a bowlful of " "jelly.", &op->name);
498     break;
499     case EMOTE_PUKE:
500     sprintf (buf, "You puke on yourself.");
501     sprintf (buf2, "%s pukes on his clothes.", &op->name);
502     break;
503     case EMOTE_HUG:
504     sprintf (buf, "You hug yourself.");
505     sprintf (buf2, "%s hugs himself.", &op->name);
506     break;
507     case EMOTE_CRY:
508     sprintf (buf, "You cry to yourself.");
509     sprintf (buf2, "%s sobs quietly to himself.", &op->name);
510     break;
511     case EMOTE_POKE:
512     sprintf (buf, "You poke yourself in the ribs, feeling very" " silly.");
513     sprintf (buf2, "%s pokes himself in the ribs, looking very" " sheepish.", &op->name);
514     break;
515     case EMOTE_ACCUSE:
516     sprintf (buf, "You accuse yourself.");
517     sprintf (buf2, "%s seems to have a bad conscience.", &op->name);
518     break;
519     case EMOTE_BOW:
520     sprintf (buf, "You kiss your toes.");
521     sprintf (buf2, "%s folds up like a jackknife and kisses his" " own toes.", &op->name);
522     break;
523     case EMOTE_FROWN:
524     sprintf (buf, "You frown at yourself.");
525     sprintf (buf2, "%s frowns at himself.", &op->name);
526     break;
527     case EMOTE_GLARE:
528     sprintf (buf, "You glare icily at your feet, they are " "suddenly very cold.");
529     sprintf (buf2, "%s glares at his feet, what is bothering " "him?", &op->name);
530     break;
531     case EMOTE_LICK:
532     sprintf (buf, "You lick yourself.");
533     sprintf (buf2, "%s licks himself - YUCK.", &op->name);
534     break;
535     case EMOTE_SLAP:
536     sprintf (buf, "You slap yourself, silly you.");
537     sprintf (buf2, "%s slaps himself, really strange...", &op->name);
538     break;
539     case EMOTE_SNEEZE:
540     sprintf (buf, "You sneeze on yourself, what a mess!");
541     sprintf (buf2, "%s sneezes, and covers himself in a slimy" " substance.", &op->name);
542     break;
543     case EMOTE_SNIFF:
544     sprintf (buf, "You sniff yourself.");
545     sprintf (buf2, "%s sniffs himself.", &op->name);
546     break;
547     case EMOTE_SPIT:
548     sprintf (buf, "You drool all over yourself.");
549     sprintf (buf2, "%s drools all over himself.", &op->name);
550     break;
551     case EMOTE_THANK:
552     sprintf (buf, "You thank yourself since nobody else " "wants to!");
553     sprintf (buf2, "%s thanks himself since you won't.", &op->name);
554     break;
555     case EMOTE_WAVE:
556     sprintf (buf, "Are you going on adventures as well??");
557     sprintf (buf2, "%s waves goodbye to himself.", &op->name);
558     break;
559     case EMOTE_WHISTLE:
560     sprintf (buf, "You whistle while you work.");
561     sprintf (buf2, "%s whistles to himself in boredom.", &op->name);
562     break;
563     case EMOTE_WINK:
564     sprintf (buf, "You wink at yourself?? What are you up to?");
565     sprintf (buf2, "%s winks at himself - something strange " "is going on...", &op->name);
566     break;
567     case EMOTE_BLEED:
568     sprintf (buf, "Very impressive! You wipe your blood all " "over yourself.");
569     sprintf (buf2, "%s performs some satanic ritual while " "wiping his blood on himself.", &op->name);
570     break;
571     default:
572     sprintf (buf, "My god! is that LEGAL?");
573     sprintf (buf2, "You look away from %s.", &op->name);
574     break;
575     } /*case */
576     new_draw_info (NDI_UNIQUE | NDI_WHITE, 0, op, buf);
577     new_info_map_except (NDI_WHITE, op->map, op, buf2);
578     return (0);
579     } /*if self */
580     } /*for */
581     new_draw_info_format (NDI_UNIQUE, 0, op, "%s is not around.", params);
582     return (1);
583     } /*else */
584 elmex 1.1
585 root 1.5 return (0);
586 elmex 1.1 }
587    
588     /*
589     * everything from here on out are just wrapper calls to basic_emote
590     */
591    
592 root 1.5 int
593     command_nod (object *op, char *params)
594 elmex 1.1 {
595 root 1.5 return (basic_emote (op, params, EMOTE_NOD));
596 elmex 1.1 }
597    
598 root 1.5 int
599     command_dance (object *op, char *params)
600 elmex 1.1 {
601 root 1.5 return (basic_emote (op, params, EMOTE_DANCE));
602 elmex 1.1 }
603    
604 root 1.5 int
605     command_kiss (object *op, char *params)
606 elmex 1.1 {
607 root 1.5 return (basic_emote (op, params, EMOTE_KISS));
608 elmex 1.1 }
609    
610 root 1.5 int
611     command_bounce (object *op, char *params)
612 elmex 1.1 {
613 root 1.5 return (basic_emote (op, params, EMOTE_BOUNCE));
614 elmex 1.1 }
615    
616 root 1.5 int
617     command_smile (object *op, char *params)
618 elmex 1.1 {
619 root 1.5 return (basic_emote (op, params, EMOTE_SMILE));
620 elmex 1.1 }
621    
622 root 1.5 int
623     command_cackle (object *op, char *params)
624 elmex 1.1 {
625 root 1.5 return (basic_emote (op, params, EMOTE_CACKLE));
626 elmex 1.1 }
627    
628 root 1.5 int
629     command_laugh (object *op, char *params)
630 elmex 1.1 {
631 root 1.5 return (basic_emote (op, params, EMOTE_LAUGH));
632 elmex 1.1 }
633    
634 root 1.5 int
635     command_giggle (object *op, char *params)
636 elmex 1.1 {
637 root 1.5 return (basic_emote (op, params, EMOTE_GIGGLE));
638 elmex 1.1 }
639    
640 root 1.5 int
641     command_shake (object *op, char *params)
642 elmex 1.1 {
643 root 1.5 return (basic_emote (op, params, EMOTE_SHAKE));
644 elmex 1.1 }
645    
646 root 1.5 int
647     command_puke (object *op, char *params)
648 elmex 1.1 {
649 root 1.5 return (basic_emote (op, params, EMOTE_PUKE));
650 elmex 1.1 }
651    
652 root 1.5 int
653     command_growl (object *op, char *params)
654 elmex 1.1 {
655 root 1.5 return (basic_emote (op, params, EMOTE_GROWL));
656 elmex 1.1 }
657    
658 root 1.5 int
659     command_scream (object *op, char *params)
660 elmex 1.1 {
661 root 1.5 return (basic_emote (op, params, EMOTE_SCREAM));
662 elmex 1.1 }
663    
664 root 1.5 int
665     command_sigh (object *op, char *params)
666 elmex 1.1 {
667 root 1.5 return (basic_emote (op, params, EMOTE_SIGH));
668 elmex 1.1 }
669    
670 root 1.5 int
671     command_sulk (object *op, char *params)
672 elmex 1.1 {
673 root 1.5 return (basic_emote (op, params, EMOTE_SULK));
674 elmex 1.1 }
675    
676 root 1.5 int
677     command_hug (object *op, char *params)
678 elmex 1.1 {
679 root 1.5 return (basic_emote (op, params, EMOTE_HUG));
680 elmex 1.1 }
681    
682 root 1.5 int
683     command_cry (object *op, char *params)
684 elmex 1.1 {
685 root 1.5 return (basic_emote (op, params, EMOTE_CRY));
686 elmex 1.1 }
687    
688 root 1.5 int
689     command_poke (object *op, char *params)
690 elmex 1.1 {
691 root 1.5 return (basic_emote (op, params, EMOTE_POKE));
692 elmex 1.1 }
693    
694 root 1.5 int
695     command_accuse (object *op, char *params)
696 elmex 1.1 {
697 root 1.5 return (basic_emote (op, params, EMOTE_ACCUSE));
698 elmex 1.1 }
699    
700 root 1.5 int
701     command_grin (object *op, char *params)
702 elmex 1.1 {
703 root 1.5 return (basic_emote (op, params, EMOTE_GRIN));
704 elmex 1.1 }
705    
706 root 1.5 int
707     command_bow (object *op, char *params)
708 elmex 1.1 {
709 root 1.5 return (basic_emote (op, params, EMOTE_BOW));
710 elmex 1.1 }
711    
712 root 1.5 int
713     command_clap (object *op, char *params)
714 elmex 1.1 {
715 root 1.5 return (basic_emote (op, params, EMOTE_CLAP));
716 elmex 1.1 }
717    
718 root 1.5 int
719     command_blush (object *op, char *params)
720 elmex 1.1 {
721 root 1.5 return (basic_emote (op, params, EMOTE_BLUSH));
722 elmex 1.1 }
723    
724 root 1.5 int
725     command_burp (object *op, char *params)
726 elmex 1.1 {
727 root 1.5 return (basic_emote (op, params, EMOTE_BURP));
728 elmex 1.1 }
729    
730 root 1.5 int
731     command_chuckle (object *op, char *params)
732 elmex 1.1 {
733 root 1.5 return (basic_emote (op, params, EMOTE_CHUCKLE));
734 elmex 1.1 }
735    
736 root 1.5 int
737     command_cough (object *op, char *params)
738 elmex 1.1 {
739 root 1.5 return (basic_emote (op, params, EMOTE_COUGH));
740 elmex 1.1 }
741    
742 root 1.5 int
743     command_flip (object *op, char *params)
744 elmex 1.1 {
745 root 1.5 return (basic_emote (op, params, EMOTE_FLIP));
746 elmex 1.1 }
747    
748 root 1.5 int
749     command_frown (object *op, char *params)
750 elmex 1.1 {
751 root 1.5 return (basic_emote (op, params, EMOTE_FROWN));
752 elmex 1.1 }
753    
754 root 1.5 int
755     command_gasp (object *op, char *params)
756 elmex 1.1 {
757 root 1.5 return (basic_emote (op, params, EMOTE_GASP));
758 elmex 1.1 }
759    
760 root 1.5 int
761     command_glare (object *op, char *params)
762 elmex 1.1 {
763 root 1.5 return (basic_emote (op, params, EMOTE_GLARE));
764 elmex 1.1 }
765    
766 root 1.5 int
767     command_groan (object *op, char *params)
768 elmex 1.1 {
769 root 1.5 return (basic_emote (op, params, EMOTE_GROAN));
770 elmex 1.1 }
771    
772 root 1.5 int
773     command_hiccup (object *op, char *params)
774 elmex 1.1 {
775 root 1.5 return (basic_emote (op, params, EMOTE_HICCUP));
776 elmex 1.1 }
777    
778 root 1.5 int
779     command_lick (object *op, char *params)
780 elmex 1.1 {
781 root 1.5 return (basic_emote (op, params, EMOTE_LICK));
782 elmex 1.1 }
783    
784 root 1.5 int
785     command_pout (object *op, char *params)
786 elmex 1.1 {
787 root 1.5 return (basic_emote (op, params, EMOTE_POUT));
788 elmex 1.1 }
789    
790 root 1.5 int
791     command_shiver (object *op, char *params)
792 elmex 1.1 {
793 root 1.5 return (basic_emote (op, params, EMOTE_SHIVER));
794 elmex 1.1 }
795    
796 root 1.5 int
797     command_shrug (object *op, char *params)
798 elmex 1.1 {
799 root 1.5 return (basic_emote (op, params, EMOTE_SHRUG));
800 elmex 1.1 }
801    
802 root 1.5 int
803     command_slap (object *op, char *params)
804 elmex 1.1 {
805 root 1.5 return (basic_emote (op, params, EMOTE_SLAP));
806 elmex 1.1 }
807    
808 root 1.5 int
809     command_smirk (object *op, char *params)
810 elmex 1.1 {
811 root 1.5 return (basic_emote (op, params, EMOTE_SMIRK));
812 elmex 1.1 }
813    
814 root 1.5 int
815     command_snap (object *op, char *params)
816 elmex 1.1 {
817 root 1.5 return (basic_emote (op, params, EMOTE_SNAP));
818 elmex 1.1 }
819    
820 root 1.5 int
821     command_sneeze (object *op, char *params)
822 elmex 1.1 {
823 root 1.5 return (basic_emote (op, params, EMOTE_SNEEZE));
824 elmex 1.1 }
825    
826 root 1.5 int
827     command_snicker (object *op, char *params)
828 elmex 1.1 {
829 root 1.5 return (basic_emote (op, params, EMOTE_SNICKER));
830 elmex 1.1 }
831    
832 root 1.5 int
833     command_sniff (object *op, char *params)
834 elmex 1.1 {
835 root 1.5 return (basic_emote (op, params, EMOTE_SNIFF));
836 elmex 1.1 }
837    
838 root 1.5 int
839     command_snore (object *op, char *params)
840 elmex 1.1 {
841 root 1.5 return (basic_emote (op, params, EMOTE_SNORE));
842 elmex 1.1 }
843    
844 root 1.5 int
845     command_spit (object *op, char *params)
846 elmex 1.1 {
847 root 1.5 return (basic_emote (op, params, EMOTE_SPIT));
848 elmex 1.1 }
849    
850 root 1.5 int
851     command_strut (object *op, char *params)
852 elmex 1.1 {
853 root 1.5 return (basic_emote (op, params, EMOTE_STRUT));
854 elmex 1.1 }
855    
856 root 1.5 int
857     command_thank (object *op, char *params)
858 elmex 1.1 {
859 root 1.5 return (basic_emote (op, params, EMOTE_THANK));
860 elmex 1.1 }
861    
862 root 1.5 int
863     command_twiddle (object *op, char *params)
864 elmex 1.1 {
865 root 1.5 return (basic_emote (op, params, EMOTE_TWIDDLE));
866 elmex 1.1 }
867    
868 root 1.5 int
869     command_wave (object *op, char *params)
870 elmex 1.1 {
871 root 1.5 return (basic_emote (op, params, EMOTE_WAVE));
872 elmex 1.1 }
873    
874 root 1.5 int
875     command_whistle (object *op, char *params)
876 elmex 1.1 {
877 root 1.5 return (basic_emote (op, params, EMOTE_WHISTLE));
878 elmex 1.1 }
879    
880 root 1.5 int
881     command_wink (object *op, char *params)
882 elmex 1.1 {
883 root 1.5 return (basic_emote (op, params, EMOTE_WINK));
884 elmex 1.1 }
885    
886 root 1.5 int
887     command_yawn (object *op, char *params)
888 elmex 1.1 {
889 root 1.5 return (basic_emote (op, params, EMOTE_YAWN));
890 elmex 1.1 }
891    
892 root 1.5 int
893     command_beg (object *op, char *params)
894 elmex 1.1 {
895 root 1.5 return (basic_emote (op, params, EMOTE_BEG));
896 elmex 1.1 }
897    
898 root 1.5 int
899     command_bleed (object *op, char *params)
900 elmex 1.1 {
901 root 1.5 return (basic_emote (op, params, EMOTE_BLEED));
902 elmex 1.1 }
903    
904 root 1.5 int
905     command_cringe (object *op, char *params)
906 elmex 1.1 {
907 root 1.5 return (basic_emote (op, params, EMOTE_CRINGE));
908 elmex 1.1 }
909    
910 root 1.5 int
911     command_think (object *op, char *params)
912 elmex 1.1 {
913 root 1.5 return (basic_emote (op, params, EMOTE_THINK));
914 elmex 1.1 }