--- deliantra/server/common/player.C 2006/09/14 22:34:00 1.5 +++ deliantra/server/common/player.C 2006/09/27 00:36:08 1.6 @@ -34,22 +34,27 @@ while (prev != NULL && prev->next != NULL && prev->next != pl) prev = prev->next; + if (prev->next != pl) { LOG (llevError, "Free_player: Can't find previous player.\n"); exit (1); } + prev->next = pl->next; } else first_player = pl->next; - if (pl->ob != NULL) + if (pl->ob) { if (!QUERY_FLAG (pl->ob, FLAG_REMOVED)) remove_ob (pl->ob); - free_object (pl->ob); + + pl->ob->contr = 0; + pl->ob->destroy (); } + /* Clear item stack */ if (pl->stack_items) free (pl->stack_items);