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.38 by root, Wed Apr 25 18:47:51 2007 UTC vs.
Revision 1.39 by root, Sun Apr 29 21:44:35 2007 UTC

308void 308void
309rangetostring (object *pl, char *obuf) 309rangetostring (object *pl, char *obuf)
310{ 310{
311 switch (pl->contr->shoottype) 311 switch (pl->contr->shoottype)
312 { 312 {
313 case range_none:
314 strcpy (obuf, "Range: nothing");
315 break;
316
317 case range_bow: 313 case range_bow:
318 {
319 object *op;
320
321 for (op = pl->inv; op; op = op->below) 314 for (object *op = pl->inv; op; op = op->below)
322 if (op->type == BOW && QUERY_FLAG (op, FLAG_APPLIED)) 315 if (op->type == BOW && QUERY_FLAG (op, FLAG_APPLIED))
323 break;
324
325 if (op == NULL)
326 break; 316 {
327
328 sprintf (obuf, "Range: %s (%s)", query_base_name (op, 0), op->race ? (const char *) op->race : "nothing"); 317 sprintf (obuf, "Range: %s (%s)", query_base_name (op, 0), op->race ? &op->race : "nothing");
318 return;
329 } 319 }
320
330 break; 321 break;
331 322
332 case range_magic: 323 case range_magic:
333 if (settings.casting_time == TRUE) 324 if (settings.casting_time == TRUE)
334 { 325 {
335 if (pl->casting_time > -1) 326 if (pl->casting_time > -1)
336 { 327 {
337 if (pl->casting_time == 0) 328 if (pl->casting_time == 0)
338 sprintf (obuf, "Range: Holding spell (%s)", &pl->spell->name); 329 sprintf (obuf, "Holding spell: %s", &pl->spell->name);
339 else 330 else
340 sprintf (obuf, "Range: Casting spell (%s)", &pl->spell->name); 331 sprintf (obuf, "Casting spell: %s", &pl->spell->name);
341 } 332 }
342 else 333 else
343 sprintf (obuf, "Range: spell (%s)", &pl->contr->ranges[range_magic]->name); 334 sprintf (obuf, "Spell: %s", &pl->contr->ranges[range_magic]->name);
344 } 335 }
345 else 336 else
346 sprintf (obuf, "Range: spell (%s)", &pl->contr->ranges[range_magic]->name); 337 sprintf (obuf, "Spell: %s", &pl->contr->ranges[range_magic]->name);
338
347 break; 339 return;
348 340
349 case range_misc: 341 case range_misc:
350 sprintf (obuf, "Range: %s", pl->contr->ranges[range_misc] ? query_base_name (pl->contr->ranges[range_misc], 0) : "none"); 342 if (object *op = pl->contr->ranges[range_misc])
343 {
344 sprintf (obuf, "Item: %s", query_base_name (op, 0));
345 return;
346 }
347
351 break; 348 break;
352 349
353 /* range_scroll is only used for controlling golems. If the 350 /* range_scroll is only used for controlling golems. If the
354 * the player does not have a golem, reset some things. 351 * the player does not have a golem, reset some things.
355 */ 352 */
356 case range_golem: 353 case range_golem:
357 if (object *golem = pl->contr->ranges[range_golem]) 354 if (object *golem = pl->contr->ranges[range_golem])
358 sprintf (obuf, "Range: golem (%s)", &golem->name);
359 else
360 { 355 {
361 pl->contr->shoottype = range_none; 356 sprintf (obuf, "Golem: %s", &golem->name);
362 strcpy (obuf, "Range: nothing"); 357 return;
363 } 358 }
359
364 break; 360 break;
365 361
366 case range_skill: 362 case range_skill:
367 sprintf (obuf, "Skill: %s", pl->chosen_skill != NULL ? (const char *) pl->chosen_skill->name : "none"); 363 if (object *op = pl->chosen_skill)
364 {
365 sprintf (obuf, "Skill: %s", &op->name);
366 return;
367 }
368
368 break; 369 break;
369 370
370 case range_builder: 371 case range_builder:
371 sprintf (obuf, "Builder: %s", query_base_name (pl->contr->ranges[range_builder], 0)); 372 sprintf (obuf, "Builder: %s", query_base_name (pl->contr->ranges[range_builder], 0));
372 break; 373 return;
374 }
373 375
374 default: 376 pl->contr->shoottype = range_none;
375 strcpy (obuf, "Range: illegal"); 377 strcpy (obuf, "Range: nothing");
376 }
377} 378}
378 379
379/** 380/**
380 * Sets player title. 381 * Sets player title.
381 */ 382 */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines