--- deliantra/server/common/player.C 2006/12/12 20:53:02 1.7 +++ deliantra/server/common/player.C 2006/12/21 23:37:05 1.11 @@ -27,7 +27,6 @@ void free_player (player *pl) { - if (first_player != pl) { player *prev = first_player; @@ -48,19 +47,22 @@ if (pl->ob) { - if (!QUERY_FLAG (pl->ob, FLAG_REMOVED)) - pl->ob->remove (); - pl->ob->contr = 0; pl->ob->destroy (); } + if (pl->ns) + { + pl->ns->send_packet ("goodbye"); + pl->ns->flush (); + pl->ns->pl = 0; + pl->ns->destroy (); + } + /* Clear item stack */ if (pl->stack_items) free (pl->stack_items); - free (pl->socket.faces_sent); - delete pl; } @@ -76,6 +78,7 @@ if (attacknr == ATNR_MAGIC || attacknr == ATNR_FIRE || attacknr == ATNR_ELECTRICITY || attacknr == ATNR_COLD || attacknr == ATNR_ACID || attacknr == ATNR_POISON) return 1; + return 0; }