Well I'll try to explain it, best thing to do is compare my reset.c with smaugfuss reset.c though really. (Although I'm quite sure it's a good bit different) It will at least give you a good way to see some of the changes.
Basically in the struct obj_data and struct mob_data in mud.h I added in a pointer to resets like RESET_DATA *reset;. I also in struct reset_data I tossed in a CHAR_DATA *mob; OBJ_DATA *obj; pointers. (Not sure if I listed all the names I choose right since been awhile and not looking at the code currently.)
Then when an area resets it sets the mobile/object's reset pointer back to itself and sets its mob/obj pointer to the object or mobile it created when it reset. It isn't really to bad and keeps it all in tact. You will also at the point a mobile or object is extracted free up the reset pointer they pointed to so it no longer points to them and set the reset to reset again. and just set the reset it pointed to, to NULL.
Now if you do these you will need to figure something out about handling copyover/hotboot. I just always stopped the hoboot/copyover from saving the world so everything can reset on it's own to much hassle to try and keep it all how it was in my opinion.
Of course I've noticed that with the reset system how it is every hotboot you can end up with everything resetting so we still need to address that in the FUSS bases anyways sometime.