At 12:15 AM 12/2/98 +0100, you wrote:
>Hmm .. good question would be if someone has coded it so it is loaded
after a reboot, or when a player quits >and reenters. I was thinking
simthing in a line of makeing a proto-type obj and loading that, replacing
the >data from the restringed item. But thats only a thought :)
Well actually, I was coding this as these e-mails were coming in. I
only allowed for the restring of the obj->short_description variable. The
new name is also added to the end of obj->name variable so the char could
use the new name to interact with the item.
I implemented tagged ascii files, so making this save was no problem at
all, but it is still rather easy if you use the obj_file_elem variable(only
problem being: player obj wipe). What you need to do is add a restring
variable to obj_file_elem and then fill that variable in Obj_to_store() in
obj_save.c. You only want to fill the restring variable if the obj name is
different from the obj_proto name.
Add this to obj_file_elem:
// Use whatever size buffer u thinkis good, MA_STRING_LENGTH is prolly a
bit too big.
char restring[MAX_STRING_LENGTH];
So the check in Obj_to_store() would look something like:
if (obj->short_description !=
obj_proto[GET_OBJ_RNUM(obj)].short_desctiption)
strcpy(object.restring, obj->short_description);
else
object.restring = '\0';
That should save it just fine. Then when loading, str_dup the restring
variable if it's not NULL.
So in Obj_from_store() in obj_save.c add:
if (object.restring != NULL)
obj->short_description = str_dup(object.restring);
You may have to add the external declaration of *obj_proto at the top of
obj_save.c. Also I am pretty sure that there already is aline in
free_obj() that will free the restrung variable, so dont worry about
freeing it.
That should do it; I dont think I am forgetting anything. This will need a
player obj wipe and is just an example, so don't yell at me if it doesn't
work. :P Hope it points you in the right direction though.
<*jB*>
+------------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
| http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
+------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST