ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/c_chat.C
(Generate patch)

Comparing deliantra/server/server/c_chat.C (file contents):
Revision 1.4 by root, Sun Sep 3 00:18:42 2006 UTC vs.
Revision 1.12 by pippijn, Wed Feb 28 19:41:30 2007 UTC

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

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines