[Obuild bug fix]

Date: 12/23/96

I haven't gotton the newest act.build yet, but I think it still has this 
bug. Whenever you edit a mob or object that is allready in the game, you 
can seriously mess up those existing objects. It has to do with pointers 
being splayed about, and can be fixed thusly:

add this at the top of do_osave:
struct obj_data *obj;

and farther down in the function, right after it logs the save to file:

   /* Pointer update to fix crashes and fubard objects after edit (EA, 
	12/20/96) */
   for (obj = object_list;obj;obj=obj->next)
     if (GET_OBJ_VNUM(obj) == obj_new_vnum) {
       obj->name = obj_proto[obj->item_number].name;
       obj->short_description = 
       obj->description = obj_proto[obj->item_number].description;
       obj->action_description = 

the mob fix is similar, at the top of do_medit:
struct char_data *mob;

and after it notifys of mob save to file:
   /* Pointer update to fix crashes and fubard mobs after edit (EA, 
	12/20/96) */
   for (mob = character_list;mob;mob=mob->next)
     if (GET_MOB_VNUM(mob) == mob_new_vnum) {
       mob->player.name = mob_proto[mob->nr].player.name;
       mob->player.short_descr = mob_proto[mob->nr].player.short_descr;
       mob->player.long_descr = mob_proto[mob->nr].player.long_descr;
       mob->player.description = mob_proto[mob->nr].player.description;

I hope that helps out a bit for all you OBuild users!

The MAD Coder,	 ?able Sanity -=- porsche.ag.net ( 4000
| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |

This archive was generated by hypermail 2b30 : 12/18/00 PST