Changeset 274
- Timestamp:
- 07/04/07 17:12:31 (1 year ago)
- Files:
-
- trunk/src/cmd1.c (modified) (1 diff)
- trunk/src/cmd4.c (modified) (5 diffs)
- trunk/src/externs.h (modified) (2 diffs)
- trunk/src/object1.c (modified) (3 diffs)
- trunk/src/squelch.c (modified) (1 diff)
- trunk/src/wizard2.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/cmd1.c
r265 r274 579 579 580 580 /* Get the object name */ 581 strip_name(tmp, k_idx, TRUE);581 object_kind_name(tmp, sizeof tmp, k_idx, TRUE); 582 582 583 583 /* Build up the pickup string */ trunk/src/cmd4.c
r266 r274 1445 1445 char o_name[80]; 1446 1446 1447 1448 1447 /* Choose a color */ 1449 1448 bool aware = (k_ptr->flavor == 0) || (k_ptr->aware); … … 1462 1461 1463 1462 /* Tidy name */ 1464 strip_name(o_name, k_idx, cheat_know); 1465 1463 object_kind_name(o_name, sizeof o_name, k_idx, cheat_know); 1466 1464 1467 1465 /* Display the name */ … … 1469 1467 1470 1468 /* Show autoinscription if around */ 1471 if ( inscrip)1469 if (aware && inscrip) 1472 1470 c_put_str(TERM_YELLOW, inscrip, row, 55); 1473 1471 … … 1576 1574 1577 1575 /* Forget it if we've never seen the thing */ 1578 if ( !k_ptr->everseen)1576 if (k_ptr->flavor && !k_ptr->aware) 1579 1577 return ""; 1580 1578 … … 1595 1593 1596 1594 /* Forget it if we've never seen the thing */ 1597 if ( !k_ptr->everseen)1595 if (k_ptr->flavor && !k_ptr->aware) 1598 1596 return; 1599 1597 trunk/src/externs.h
r265 r274 393 393 extern void flavor_init(void); 394 394 extern void reset_visuals(bool prefs); 395 extern void object_kind_name(char *buf, size_t max, int k_idx, bool easy_know); 395 396 extern void object_flags(const object_type *o_ptr, u32b *f1, u32b *f2, u32b *f3); 396 397 extern void object_flags_known(const object_type *o_ptr, u32b *f1, u32b *f2, u32b *f3); … … 767 768 768 769 bool make_fake_artifact(object_type *o_ptr, byte name1); 769 extern void strip_name(char *buf, int k_idx, bool easy_know);trunk/src/object1.c
r270 r274 178 178 } 179 179 buf[titlelen - 1] = '\0'; 180 180 181 181 /* Check the scroll name hasn't already been generated */ 182 182 for (j = 0; j < i; j++) … … 188 188 } 189 189 } 190 190 191 191 if (okay) 192 192 { … … 448 448 } 449 449 450 451 452 /* 453 * Puts a very stripped-down version of an object's name into buf. 454 * If easy_know is TRUE, then the IDed names are used, otherwise 455 * flavours, scroll names, etc will be used. 456 * 457 * Just truncates if the buffer isn't big enough. 458 */ 459 void object_kind_name(char *buf, size_t max, int k_idx, bool easy_know) 460 { 461 char *t; 462 463 object_kind *k_ptr = &k_info[k_idx]; 464 465 /* If not aware, use flavor */ 466 if (!easy_know && !k_ptr->aware && k_ptr->flavor) 467 { 468 if (k_ptr->tval == TV_SCROLL) 469 { 470 strnfmt(buf, max, "\"%s\"", scroll_adj[k_ptr->sval]); 471 } 472 else if (k_ptr->tval == TV_FOOD && k_ptr->sval < SV_FOOD_MIN_FOOD) 473 { 474 strnfmt(buf, max, "%s Mushroom", flavor_text + flavor_info[k_ptr->flavor].text); 475 } 476 else 477 { 478 /* Plain flavour (e.g. Copper) will do. */ 479 my_strcpy(buf, flavor_text + flavor_info[k_ptr->flavor].text, max); 480 } 481 } 482 else 483 /* Use proper name (Healing, or whatever) */ 484 { 485 cptr str = (k_name + k_ptr->name); 486 487 if (k_ptr->tval == TV_FOOD && k_ptr->sval < SV_FOOD_MIN_FOOD) 488 { 489 my_strcpy(buf, "Mushroom of ", max); 490 max -= strlen(buf); 491 t = buf + strlen(buf); 492 } 493 else 494 { 495 t = buf; 496 } 497 498 /* Skip past leading characters */ 499 while ((*str == ' ') || (*str == '&')) str++; 500 501 /* Copy useful chars */ 502 for (; *str && max > 1; str++) 503 { 504 /* Pluralizer for irregular plurals */ 505 /* Useful for languages where adjective changes for plural */ 506 if (*str == '|') 507 { 508 /* Process singular part */ 509 for (str++; *str != '|' && max > 1; str++) 510 { 511 *t++ = *str; 512 max--; 513 } 514 515 /* Process plural part */ 516 for (str++; *str != '|'; str++) ; 517 } 518 519 /* English plural indicator can simply be skipped */ 520 else if (*str != '~') 521 { 522 *t++ = *str; 523 max--; 524 } 525 } 526 527 /* Terminate the new name */ 528 *t = '\0'; 529 } 530 } 450 531 451 532 trunk/src/squelch.c
r270 r274 656 656 657 657 /* Acquire the "name" of object "i" */ 658 strip_name(buf, idx, TRUE);658 object_kind_name(buf, sizeof(buf), idx, TRUE); 659 659 660 660 /* Print it */ trunk/src/wizard2.c
r250 r274 413 413 414 414 415 /*416 * Strip an "object name" into a buffer417 */418 void strip_name(char *buf, int k_idx, bool easy_know)419 {420 char *t;421 422 object_kind *k_ptr = &k_info[k_idx];423 424 cptr str = (k_name + k_ptr->name);425 426 /* If not aware, use flavor */427 if (!easy_know && !k_ptr->aware && k_ptr->flavor)428 str = flavor_text + flavor_info[k_ptr->flavor].text;429 430 431 432 /* Skip past leading characters */433 while ((*str == ' ') || (*str == '&')) str++;434 435 /* Copy useful chars */436 for (t = buf; *str; str++)437 {438 /* Pluralizer for irregular plurals */439 /* Useful for languages where adjective changes for plural */440 if (*str == '|')441 {442 /* Process singular part */443 for (str++; *str != '|'; str++) *t++ = *str;444 445 /* Process plural part */446 for (str++; *str != '|'; str++) ;447 }448 449 /* English plural indicator can simply be skipped */450 else if (*str != '~') *t++ = *str;451 }452 453 /* Terminate the new name */454 *t = '\0';455 }456 457 415 458 416 /* … … 532 490 533 491 /* Get the "name" of object "i" */ 534 strip_name(buf, i, TRUE);492 object_kind_name(buf, sizeof buf, i, TRUE); 535 493 536 494 /* Print it */
