… | |
… | |
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", |
… | |
… | |
112 | {POTION, "potion", "potions", SK_ALCHEMY, 0}, |
99 | {POTION, "potion", "potions", SK_ALCHEMY, 0}, |
113 | {FOOD, "food", "food", SK_WOODSMAN, 0}, |
100 | {FOOD, "food", "food", SK_WOODSMAN, 0}, |
114 | {POISON, "poison", "poisons", SK_ALCHEMY, 0}, |
101 | {POISON, "poison", "poisons", SK_ALCHEMY, 0}, |
115 | {BOOK, "book", "books", SK_LITERACY, 0}, |
102 | {BOOK, "book", "books", SK_LITERACY, 0}, |
116 | {CLOCK, "clock", "clocks", 0, 0}, |
103 | {CLOCK, "clock", "clocks", 0, 0}, |
117 | {LIGHTNING, "lightning", "lightning", 0, 0}, |
|
|
118 | {ARROW, "arrow", "arrows", SK_BOWYER, 0}, |
104 | {ARROW, "arrow", "arrows", SK_BOWYER, 0}, |
119 | {BOW, "bow", "bows", SK_BOWYER, 0}, |
105 | {BOW, "bow", "bows", SK_BOWYER, 0}, |
120 | {WEAPON, "weapon", "weapons", SK_SMITHERY, 0}, |
106 | {WEAPON, "weapon", "weapons", SK_SMITHERY, 0}, |
121 | {ARMOUR, "armour", "armour", SK_SMITHERY, 0}, |
107 | {ARMOUR, "armour", "armour", SK_SMITHERY, 0}, |
122 | {PEDESTAL, "pedestal", "pedestals", 0, 0}, |
108 | {PEDESTAL, "pedestal", "pedestals", 0, 0}, |
… | |
… | |
142 | {AMULET, "amulet", "amulets", SK_JEWELER, 0}, |
128 | {AMULET, "amulet", "amulets", SK_JEWELER, 0}, |
143 | {PLAYERMOVER, "player mover", "player movers", 0, 0}, |
129 | {PLAYERMOVER, "player mover", "player movers", 0, 0}, |
144 | {TELEPORTER, "teleporter", "teleporters", 0, 0}, |
130 | {TELEPORTER, "teleporter", "teleporters", 0, 0}, |
145 | {CREATOR, "creator", "creators", 0, 0}, |
131 | {CREATOR, "creator", "creators", 0, 0}, |
146 | {SKILL, "skill", "skills", 0, 0}, |
132 | {SKILL, "skill", "skills", 0, 0}, |
147 | {EXPERIENCE, "experience", "experience", 0, 0}, |
|
|
148 | {EARTHWALL, "earthwall", "earthwalls", 0, 0}, |
133 | {EARTHWALL, "earthwall", "earthwalls", 0, 0}, |
149 | {GOLEM, "golem", "golems", 0, 0}, |
134 | {GOLEM, "golem", "golems", 0, 0}, |
150 | {THROWN_OBJ, "projectile", "projectiles", 0, 0}, |
135 | {THROWN_OBJ, "projectile", "projectiles", 0, 0}, |
151 | {BLINDNESS, "blindness", "blindness", 0, 0}, |
136 | {BLINDNESS, "blindness", "blindness", 0, 0}, |
152 | {GOD, "god", "gods", 0, 0}, |
137 | {GOD, "god", "gods", 0, 0}, |
… | |
… | |
172 | {FLOOR, "floor", "floors", 0, 0}, |
157 | {FLOOR, "floor", "floors", 0, 0}, |
173 | {FLESH, "flesh", "flesh", SK_WOODSMAN, 0}, |
158 | {FLESH, "flesh", "flesh", SK_WOODSMAN, 0}, |
174 | {INORGANIC, "inorganic", "inorganics", SK_ALCHEMY, 0}, |
159 | {INORGANIC, "inorganic", "inorganics", SK_ALCHEMY, 0}, |
175 | {SKILL_TOOL, "skill tool", "skill tools", 0, 0}, |
160 | {SKILL_TOOL, "skill tool", "skill tools", 0, 0}, |
176 | {LIGHTER, "lighter", "lighters", 0, 0}, |
161 | {LIGHTER, "lighter", "lighters", 0, 0}, |
177 | {TRAP_PART, "trap part", "trap parts", 0, 0}, |
162 | {BUILDABLE_WALL, "buildable wall", "buildable walls", 0, 0}, |
178 | {WALL, "wall", "walls", 0, 0}, |
|
|
179 | {LIGHT_SOURCE, "light source", "light sources", 0, 0}, |
163 | {LIGHT_SOURCE, "light source", "light sources", 0, 0}, |
180 | {MISC_OBJECT, "bric-a-brac", "bric-a-brac", 0, 0}, |
164 | {MISC_OBJECT, "bric-a-brac", "bric-a-brac", 0, 0}, |
181 | {MONSTER, "monster", "monsters", 0, 0}, |
165 | {MONSTER, "monster", "monsters", 0, 0}, |
182 | {SPAWN_GENERATOR, "monster generator", "monster generators", 0, 0}, |
166 | {SPAWN_GENERATOR, "monster generator", "monster generators", 0, 0}, |
183 | {LAMP, "lamp", "lamps", 0, 0}, |
167 | {LAMP, "lamp", "lamps", 0, 0}, |
… | |
… | |
681 | |
665 | |
682 | use_buf++; |
666 | use_buf++; |
683 | use_buf %= 5; |
667 | use_buf %= 5; |
684 | |
668 | |
685 | #ifdef NEW_MATERIAL_CODE |
669 | #ifdef NEW_MATERIAL_CODE |
686 | if ((IS_ARMOR (op) || IS_WEAPON (op)) && op->materialname) |
670 | if ((op->is_armor () || op->is_weapon ()) && op->materialname) |
687 | { |
671 | { |
688 | mt = name_to_material (op->materialname); |
672 | mt = name_to_material (op->materialname); |
689 | if (mt) |
673 | if (mt) |
690 | { |
674 | { |
691 | safe_strcat (buf[use_buf], mt->description, &len, HUGE_BUF); |
675 | safe_strcat (buf[use_buf], mt->description, &len, HUGE_BUF); |
… | |
… | |
788 | return "(null)"; |
772 | return "(null)"; |
789 | |
773 | |
790 | if (!op->nrof && !op->weight && !op->title && !is_magical (op)) |
774 | if (!op->nrof && !op->weight && !op->title && !is_magical (op)) |
791 | return op->name; /* To speed things up (or make things slower?) */ |
775 | return op->name; /* To speed things up (or make things slower?) */ |
792 | |
776 | |
793 | if ((IS_ARMOR (op) || IS_WEAPON (op)) && op->materialname) |
777 | if ((op->is_armor () || op->is_weapon ()) && op->materialname) |
794 | mt = name_to_material (op->materialname); |
778 | mt = name_to_material (op->materialname); |
795 | |
779 | |
796 | #ifdef NEW_MATERIAL_CODE |
780 | #ifdef NEW_MATERIAL_CODE |
797 | if ((IS_ARMOR (op) || IS_WEAPON (op)) && op->materialname && mt && |
781 | if ((op->is_armor () || op->is_weapon ()) && op->materialname && mt && |
798 | op->arch->clone.materialname != mt->name && !(op->material & M_SPECIAL)) |
782 | op->arch->clone.materialname != mt->name && !(op->material & M_SPECIAL)) |
799 | { |
783 | { |
800 | strcpy (buf, mt->description); |
784 | strcpy (buf, mt->description); |
801 | len = strlen (buf); |
785 | len = strlen (buf); |
802 | safe_strcat (buf, " ", &len, MAX_BUF); |
786 | safe_strcat (buf, " ", &len, MAX_BUF); |
… | |
… | |
1515 | LOG (llevDebug, "need_identify: %s does not need to be id'd\n", op->name); |
1499 | LOG (llevDebug, "need_identify: %s does not need to be id'd\n", op->name); |
1516 | #endif |
1500 | #endif |
1517 | return 0; |
1501 | return 0; |
1518 | } |
1502 | } |
1519 | |
1503 | |
1520 | |
|
|
1521 | /* |
1504 | /* |
1522 | * Supposed to fix face-values as well here, but later. |
1505 | * Supposed to fix face-values as well here, but later. |
1523 | */ |
1506 | */ |
1524 | |
|
|
1525 | void |
1507 | void |
1526 | identify (object *op) |
1508 | identify (object *op) |
1527 | { |
1509 | { |
1528 | object *pl; |
1510 | object *pl; |
1529 | |
1511 | |
… | |
… | |
1551 | /* If the object is on a map, make sure we update its face */ |
1533 | /* If the object is on a map, make sure we update its face */ |
1552 | if (op->map) |
1534 | if (op->map) |
1553 | update_object (op, UP_OBJ_FACE); |
1535 | update_object (op, UP_OBJ_FACE); |
1554 | else |
1536 | else |
1555 | { |
1537 | { |
1556 | pl = is_player_inv (op->env); |
1538 | pl = op->in_player (); |
1557 | if (pl) |
1539 | if (pl) |
1558 | /* A lot of the values can change from an update - might as well send |
1540 | /* A lot of the values can change from an update - might as well send |
1559 | * it all. |
1541 | * it all. |
1560 | */ |
1542 | */ |
1561 | esrv_send_item (pl, op); |
1543 | esrv_send_item (pl, op); |
1562 | } |
1544 | } |
1563 | } |
1545 | } |
|
|
1546 | |