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

Comparing deliantra/server/socket/info.C (file contents):
Revision 1.7 by root, Sat Sep 16 22:24:13 2006 UTC vs.
Revision 1.8 by root, Tue Sep 19 09:38:32 2006 UTC

1
1/* 2/*
2 CrossFire, A Multiplayer game for X-windows 3 CrossFire, A Multiplayer game for X-windows
3 4
4 Copyright (C) 2002 Mark Wedel & Crossfire Development Team 5 Copyright (C) 2002 Mark Wedel & Crossfire Development Team
5 Copyright (C) 1992 Frank Tore Johansen 6 Copyright (C) 1992 Frank Tore Johansen
349/** 350/**
350 * Writes to everyone on the map *except* op. This is useful for emotions. 351 * Writes to everyone on the map *except* op. This is useful for emotions.
351 */ 352 */
352 353
353void 354void
354new_info_map_except (int color, maptile *map, object *op, const char *str) 355new_info_map_except (int color, maptile * map, object *op, const char *str)
355{ 356{
356 player *pl; 357 player *pl;
357 358
358 for (pl = first_player; pl != NULL; pl = pl->next) 359 for (pl = first_player; pl != NULL; pl = pl->next)
359 if (pl->ob != NULL && pl->ob->map == map && pl->ob != op) 360 if (pl->ob != NULL && pl->ob->map == map && pl->ob != op)
365/** 366/**
366 * Writes to everyone on the map except op1 and op2 367 * Writes to everyone on the map except op1 and op2
367 */ 368 */
368 369
369void 370void
370new_info_map_except2 (int color, maptile *map, object *op1, object *op2, const char *str) 371new_info_map_except2 (int color, maptile * map, object *op1, object *op2, const char *str)
371{ 372{
372 player *pl; 373 player *pl;
373 374
374 for (pl = first_player; pl != NULL; pl = pl->next) 375 for (pl = first_player; pl != NULL; pl = pl->next)
375 if (pl->ob != NULL && pl->ob->map == map && pl->ob != op1 && pl->ob != op2) 376 if (pl->ob != NULL && pl->ob->map == map && pl->ob != op1 && pl->ob != op2)
381/** 382/**
382 * Writes to everyone on the specified map 383 * Writes to everyone on the specified map
383 */ 384 */
384 385
385void 386void
386new_info_map (int color, maptile *map, const char *str) 387new_info_map (int color, maptile * map, const char *str)
387{ 388{
388 player *pl; 389 player *pl;
389 390
390 for (pl = first_player; pl != NULL; pl = pl->next) 391 for (pl = first_player; pl != NULL; pl = pl->next)
391 if (pl->ob != NULL && pl->ob->map == map) 392 if (pl->ob != NULL && pl->ob->map == map)
411void 412void
412rangetostring (object *pl, char *obuf) 413rangetostring (object *pl, char *obuf)
413{ 414{
414 switch (pl->contr->shoottype) 415 switch (pl->contr->shoottype)
415 { 416 {
416 case range_none: 417 case range_none:
417 strcpy (obuf, "Range: nothing"); 418 strcpy (obuf, "Range: nothing");
418 break; 419 break;
419 420
420 case range_bow: 421 case range_bow:
422 {
423 object *op;
424
425 for (op = pl->inv; op; op = op->below)
426 if (op->type == BOW && QUERY_FLAG (op, FLAG_APPLIED))
427 break;
428 if (op == NULL)
429 break;
430
431 sprintf (obuf, "Range: %s (%s)", query_base_name (op, 0), op->race ? (const char *) op->race : "nothing");
432 }
433 break;
434
435 case range_magic:
436 if (settings.casting_time == TRUE)
421 { 437 {
422 object *op; 438 if (pl->casting_time > -1)
423 439 {
424 for (op = pl->inv; op; op = op->below) 440 if (pl->casting_time == 0)
425 if (op->type == BOW && QUERY_FLAG (op, FLAG_APPLIED)) 441 sprintf (obuf, "Range: Holding spell (%s)", (const char *) pl->spell->name);
426 break; 442 else
427 if (op == NULL) 443 sprintf (obuf, "Range: Casting spell (%s)", (const char *) pl->spell->name);
428 break; 444 }
429 445 else
430 sprintf (obuf, "Range: %s (%s)", query_base_name (op, 0), op->race ? (const char *) op->race : "nothing"); 446 sprintf (obuf, "Range: spell (%s)", &pl->contr->ranges[range_magic]->name);
431 } 447 }
432 break;
433
434 case range_magic:
435 if (settings.casting_time == TRUE)
436 {
437 if (pl->casting_time > -1)
438 {
439 if (pl->casting_time == 0)
440 sprintf (obuf, "Range: Holding spell (%s)", (const char *) pl->spell->name);
441 else
442 sprintf (obuf, "Range: Casting spell (%s)", (const char *) pl->spell->name);
443 }
444 else
445 sprintf (obuf, "Range: spell (%s)", &pl->contr->ranges[range_magic]->name);
446 }
447 else 448 else
448 sprintf (obuf, "Range: spell (%s)", &pl->contr->ranges[range_magic]->name); 449 sprintf (obuf, "Range: spell (%s)", &pl->contr->ranges[range_magic]->name);
449 break; 450 break;
450 451
451 case range_misc: 452 case range_misc:
452 sprintf (obuf, "Range: %s", pl->contr->ranges[range_misc] ? query_base_name (pl->contr->ranges[range_misc], 0) : "none"); 453 sprintf (obuf, "Range: %s", pl->contr->ranges[range_misc] ? query_base_name (pl->contr->ranges[range_misc], 0) : "none");
453 break; 454 break;
454 455
455 /* range_scroll is only used for controlling golems. If the 456 /* range_scroll is only used for controlling golems. If the
456 * the player does not have a golem, reset some things. 457 * the player does not have a golem, reset some things.
457 */ 458 */
458 case range_golem: 459 case range_golem:
459 if (pl->contr->ranges[range_golem] != NULL) 460 if (pl->contr->ranges[range_golem] != NULL)
460 sprintf (obuf, "Range: golem (%s)", &pl->contr->ranges[range_golem]->name); 461 sprintf (obuf, "Range: golem (%s)", &pl->contr->ranges[range_golem]->name);
461 else 462 else
462 { 463 {
463 pl->contr->shoottype = range_none; 464 pl->contr->shoottype = range_none;
464 strcpy (obuf, "Range: nothing"); 465 strcpy (obuf, "Range: nothing");
465 } 466 }
466 break; 467 break;
467 468
468 case range_skill: 469 case range_skill:
469 sprintf (obuf, "Skill: %s", pl->chosen_skill != NULL ? (const char *) pl->chosen_skill->name : "none"); 470 sprintf (obuf, "Skill: %s", pl->chosen_skill != NULL ? (const char *) pl->chosen_skill->name : "none");
470 break; 471 break;
471 472
472 case range_builder: 473 case range_builder:
473 sprintf (obuf, "Builder: %s", query_base_name (pl->contr->ranges[range_builder], 0)); 474 sprintf (obuf, "Builder: %s", query_base_name (pl->contr->ranges[range_builder], 0));
474 break; 475 break;
475 476
476 default: 477 default:
477 strcpy (obuf, "Range: illegal"); 478 strcpy (obuf, "Range: illegal");
478 } 479 }
479} 480}
480 481
481/** 482/**
482 * Sets player title. 483 * Sets player title.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines