ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/player.C
(Generate patch)

Comparing deliantra/server/common/player.C (file contents):
Revision 1.5 by root, Thu Sep 14 22:34:00 2006 UTC vs.
Revision 1.11 by root, Thu Dec 21 23:37:05 2006 UTC

25#include <funcpoint.h> 25#include <funcpoint.h>
26 26
27void 27void
28free_player (player *pl) 28free_player (player *pl)
29{ 29{
30
31 if (first_player != pl) 30 if (first_player != pl)
32 { 31 {
33 player *prev = first_player; 32 player *prev = first_player;
34 33
35 while (prev != NULL && prev->next != NULL && prev->next != pl) 34 while (prev != NULL && prev->next != NULL && prev->next != pl)
36 prev = prev->next; 35 prev = prev->next;
36
37 if (prev->next != pl) 37 if (prev->next != pl)
38 { 38 {
39 LOG (llevError, "Free_player: Can't find previous player.\n"); 39 LOG (llevError, "Free_player: Can't find previous player.\n");
40 exit (1); 40 exit (1);
41 } 41 }
42
42 prev->next = pl->next; 43 prev->next = pl->next;
43 } 44 }
44 else 45 else
45 first_player = pl->next; 46 first_player = pl->next;
46 47
47 if (pl->ob != NULL) 48 if (pl->ob)
48 { 49 {
49 if (!QUERY_FLAG (pl->ob, FLAG_REMOVED)) 50 pl->ob->contr = 0;
50 remove_ob (pl->ob); 51 pl->ob->destroy ();
51 free_object (pl->ob);
52 } 52 }
53
54 if (pl->ns)
55 {
56 pl->ns->send_packet ("goodbye");
57 pl->ns->flush ();
58 pl->ns->pl = 0;
59 pl->ns->destroy ();
60 }
61
53 /* Clear item stack */ 62 /* Clear item stack */
54 if (pl->stack_items) 63 if (pl->stack_items)
55 free (pl->stack_items); 64 free (pl->stack_items);
56
57 free (pl->socket.faces_sent);
58 65
59 delete pl; 66 delete pl;
60} 67}
61 68
62 69
69atnr_is_dragon_enabled (int attacknr) 76atnr_is_dragon_enabled (int attacknr)
70{ 77{
71 if (attacknr == ATNR_MAGIC || attacknr == ATNR_FIRE || 78 if (attacknr == ATNR_MAGIC || attacknr == ATNR_FIRE ||
72 attacknr == ATNR_ELECTRICITY || attacknr == ATNR_COLD || attacknr == ATNR_ACID || attacknr == ATNR_POISON) 79 attacknr == ATNR_ELECTRICITY || attacknr == ATNR_COLD || attacknr == ATNR_ACID || attacknr == ATNR_POISON)
73 return 1; 80 return 1;
81
74 return 0; 82 return 0;
75} 83}
76 84
77/* 85/*
78 * returns true if the adressed object 'ob' is a player 86 * returns true if the adressed object 'ob' is a player

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines