After modifying an obj, the obj stats are changed in all the objects with
that vnum in the object_list. But it messes up the stats of a person that is
wearing it. What I've done is a unequip the person, update, and then
re-equip.
--- genobj.c.save Thu Aug 2 14:10:14 2001
+++ genobj.c Thu Aug 2 11:36:30 2001
@@ -16,6 +16,11 @@
#include "genobj.h"
#include "genzon.h"
+/* external functions */
+void equip_char(struct char_data * ch, struct obj_data * obj, int pos);
+struct obj_data *unequip_char(struct char_data * ch, int pos);
+
+
static int copy_object_main(struct obj_data *to, struct obj_data *from, int
free_object);
/* external variables */
@@ -68,17 +73,27 @@
/* Update the existing object but save a copy for private information.
*/
swap = *obj;
+
+ /* this should fix people wearing it */
+ if (obj->worn_by)
+ unequip_char(obj->worn_by, obj->worn_on);
+
*obj = *refobj;
/* Copy game-time dependent variables over. */
obj->in_room = swap.in_room;
obj->carried_by = swap.carried_by;
- obj->worn_by = swap.worn_by;
- obj->worn_on = swap.worn_on;
obj->in_obj = swap.in_obj;
obj->contains = swap.contains;
obj->next_content = swap.next_content;
obj->next = swap.next;
+
+ if (swap.worn_by)
+ equip_char(swap.worn_by, obj, swap.worn_on);
}
return count;
_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp
--
+---------------------------------------------------------------+
| FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
| Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
+---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/06/01 PST