How exactly does this work?
if (make_new)
{
int wear;
wear = obj->wear_loc;
extract_obj(obj);
obj = create_object(obj->pIndexData,0);
obj->wear_loc = wear;
}
if you extract_obj(obj), then how can you
create_object(obj->pIndexData,0)? obj would be NULL, and pIndexData
wouldn't exist, and if for some reason obj weren't NULL, if pIndexData
were NULL it would cause an exit() within create_object... That looked
like the only part that might've applied to my situation, as the only
other part that wasn't stock was the inclusion of this:
if ( ch && ch != NULL )
obj_to_char( obj, ch );
else
obj_to_room( obj,
get_room_index(ROOM_VNUM_LIMBO) );
... and you can probably get rid of that double ch check, when you say
if ( ch && ch != NULL ), what you're saying is that if ch has a value
(hence, != NULL) and ch != NULL (which you just checked)... still open
for suggestions tho :)
Richard Lindsey.