I've implemented "morphing" commands into my mud (currently just for Gods). And I realize I may have a real clunky way of doing things, but hey, it works. Anywho... I've added a few things to char_special_data: char *mname; char *mshort_descr; char *mlong_descr; char *mdescription; Etc... Basically I use str_dup to set those strings to whatever the player is "morphed" to. Now, for gods I have "unmorph" which clears these strings and turns them back to "normal" and this is what I have in the unmorph function: vict->char_specials.mname = NULL; vict->char_specials.mshort_descr = NULL; vict->char_specials.mlong_descr = NULL; vict->char_specials.mdescription = NULL; vict->char_specials.msex = NULL; Among other things... Anyways... Works fine: 5000/5000h [none] > morph avatar pig Avatar is suddenly turned into a messy pig! 5000/5000h [none] > unmorph pig A messy pig suddenly screams in pain and changes into Avatar! (Also changes long_descr, description, sex, and some other things *grin*) Here's the question: What about those strings I'm using, don't they need to be free()'d somewhere? If so, where would I do this, just in free_char() in db.c? Thanks... Melen Allanthya.org port 4000 +------------------------------------------------------------+ | 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