… | |
… | |
46 | * may be better. |
46 | * may be better. |
47 | * Basically, for the use/nonuse, the code does something like: |
47 | * Basically, for the use/nonuse, the code does something like: |
48 | * "This item goes %s\n", with the use/nonuse values filling in the %s |
48 | * "This item goes %s\n", with the use/nonuse values filling in the %s |
49 | */ |
49 | */ |
50 | Body_Locations body_locations[NUM_BODY_LOCATIONS] = { |
50 | Body_Locations body_locations[NUM_BODY_LOCATIONS] = { |
51 | {"body_range", "in your range slot", "in a human's range slot"} |
51 | {"body_range", "in your range slot", "in a human's range slot"}, |
52 | , |
|
|
53 | {"body_arm", "on your arm", "on a human's arm"} |
52 | {"body_arm", "on your arm", "on a human's arm"}, |
54 | , |
|
|
55 | {"body_torso", "on your body", "on a human's torso"} |
53 | {"body_torso", "on your body", "on a human's torso"}, |
56 | , |
|
|
57 | {"body_head", "on your head", "on a human's head"} |
54 | {"body_head", "on your head", "on a human's head"}, |
58 | , |
|
|
59 | {"body_neck", "around your neck", "around a humans neck"} |
55 | {"body_neck", "around your neck", "around a humans neck"}, |
60 | , |
|
|
61 | {"body_skill", "in your skill slot", "in a human's skill slot"} |
56 | {"body_skill", "in your skill slot", "in a human's skill slot"}, |
62 | , |
|
|
63 | {"body_finger", "on your finger", "on a human's finger"} |
57 | {"body_finger", "on your finger", "on a human's finger"} , |
64 | , |
|
|
65 | {"body_shoulder", "around your shoulders", "around a human's shoulders"} |
58 | {"body_shoulder", "around your shoulders", "around a human's shoulders"}, |
66 | , |
|
|
67 | {"body_foot", "on your feet", "on a human's feet"} |
59 | {"body_foot", "on your feet", "on a human's feet"}, |
68 | , |
|
|
69 | {"body_hand", "on your hands", "on a human's hands"} |
60 | {"body_hand", "on your hands", "on a human's hands"}, |
70 | , |
|
|
71 | {"body_wrist", "around your wrists", "around a human's wrist"} |
61 | {"body_wrist", "around your wrists", "around a human's wrist"}, |
72 | , |
|
|
73 | {"body_waist", "around your waist", "around a human's waist"} |
62 | {"body_waist", "around your waist", "around a human's waist"}, |
74 | , |
|
|
75 | |
|
|
76 | /*{"body_dragon_torso", "your body", "a dragon's body"} */ |
63 | /*{"body_dragon_torso", "your body", "a dragon's body"} */ |
77 | }; |
64 | }; |
78 | |
65 | |
79 | static char numbers[21][20] = { |
66 | static char numbers[21][20] = { |
80 | "no", "", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", |
67 | "no", "", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", |
… | |
… | |
681 | |
668 | |
682 | use_buf++; |
669 | use_buf++; |
683 | use_buf %= 5; |
670 | use_buf %= 5; |
684 | |
671 | |
685 | #ifdef NEW_MATERIAL_CODE |
672 | #ifdef NEW_MATERIAL_CODE |
686 | if ((IS_ARMOR (op) || IS_WEAPON (op)) && op->materialname) |
673 | if ((op->is_armor () || op->is_weapon ()) && op->materialname) |
687 | { |
674 | { |
688 | mt = name_to_material (op->materialname); |
675 | mt = name_to_material (op->materialname); |
689 | if (mt) |
676 | if (mt) |
690 | { |
677 | { |
691 | safe_strcat (buf[use_buf], mt->description, &len, HUGE_BUF); |
678 | safe_strcat (buf[use_buf], mt->description, &len, HUGE_BUF); |
… | |
… | |
788 | return "(null)"; |
775 | return "(null)"; |
789 | |
776 | |
790 | if (!op->nrof && !op->weight && !op->title && !is_magical (op)) |
777 | if (!op->nrof && !op->weight && !op->title && !is_magical (op)) |
791 | return op->name; /* To speed things up (or make things slower?) */ |
778 | return op->name; /* To speed things up (or make things slower?) */ |
792 | |
779 | |
793 | if ((IS_ARMOR (op) || IS_WEAPON (op)) && op->materialname) |
780 | if ((op->is_armor () || op->is_weapon ()) && op->materialname) |
794 | mt = name_to_material (op->materialname); |
781 | mt = name_to_material (op->materialname); |
795 | |
782 | |
796 | #ifdef NEW_MATERIAL_CODE |
783 | #ifdef NEW_MATERIAL_CODE |
797 | if ((IS_ARMOR (op) || IS_WEAPON (op)) && op->materialname && mt && |
784 | if ((op->is_armor () || op->is_weapon ()) && op->materialname && mt && |
798 | op->arch->clone.materialname != mt->name && !(op->material & M_SPECIAL)) |
785 | op->arch->clone.materialname != mt->name && !(op->material & M_SPECIAL)) |
799 | { |
786 | { |
800 | strcpy (buf, mt->description); |
787 | strcpy (buf, mt->description); |
801 | len = strlen (buf); |
788 | len = strlen (buf); |
802 | safe_strcat (buf, " ", &len, MAX_BUF); |
789 | safe_strcat (buf, " ", &len, MAX_BUF); |
… | |
… | |
1515 | LOG (llevDebug, "need_identify: %s does not need to be id'd\n", op->name); |
1502 | LOG (llevDebug, "need_identify: %s does not need to be id'd\n", op->name); |
1516 | #endif |
1503 | #endif |
1517 | return 0; |
1504 | return 0; |
1518 | } |
1505 | } |
1519 | |
1506 | |
1520 | |
|
|
1521 | /* |
1507 | /* |
1522 | * Supposed to fix face-values as well here, but later. |
1508 | * Supposed to fix face-values as well here, but later. |
1523 | */ |
1509 | */ |
1524 | |
|
|
1525 | void |
1510 | void |
1526 | identify (object *op) |
1511 | identify (object *op) |
1527 | { |
1512 | { |
1528 | object *pl; |
1513 | object *pl; |
1529 | |
1514 | |
… | |
… | |
1551 | /* If the object is on a map, make sure we update its face */ |
1536 | /* If the object is on a map, make sure we update its face */ |
1552 | if (op->map) |
1537 | if (op->map) |
1553 | update_object (op, UP_OBJ_FACE); |
1538 | update_object (op, UP_OBJ_FACE); |
1554 | else |
1539 | else |
1555 | { |
1540 | { |
1556 | pl = is_player_inv (op->env); |
1541 | pl = op->in_player (); |
1557 | if (pl) |
1542 | if (pl) |
1558 | /* A lot of the values can change from an update - might as well send |
1543 | /* A lot of the values can change from an update - might as well send |
1559 | * it all. |
1544 | * it all. |
1560 | */ |
1545 | */ |
1561 | esrv_send_item (pl, op); |
1546 | esrv_send_item (pl, op); |
1562 | } |
1547 | } |
1563 | } |
1548 | } |
|
|
1549 | |