ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/common/player.C
Revision: 1.8
Committed: Tue Dec 12 21:39:56 2006 UTC (17 years, 5 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.7: +0 -3 lines
Log Message:
- more ooficiation
- removed now superfluous remove calls

File Contents

# Content
1 /*
2 CrossFire, A Multiplayer game for X-windows
3
4 Copyright (C) 2002 Mark Wedel & Crossfire Development Team
5 Copyright (C) 1992 Frank Tore Johansen
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2 of the License, or
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
19 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
20
21 The authors can be reached via e-mail at <crossfire@schmorp.de>
22 */
23
24 #include <global.h>
25 #include <funcpoint.h>
26
27 void
28 free_player (player *pl)
29 {
30
31 if (first_player != pl)
32 {
33 player *prev = first_player;
34
35 while (prev != NULL && prev->next != NULL && prev->next != pl)
36 prev = prev->next;
37
38 if (prev->next != pl)
39 {
40 LOG (llevError, "Free_player: Can't find previous player.\n");
41 exit (1);
42 }
43
44 prev->next = pl->next;
45 }
46 else
47 first_player = pl->next;
48
49 if (pl->ob)
50 {
51 pl->ob->contr = 0;
52 pl->ob->destroy ();
53 }
54
55 /* Clear item stack */
56 if (pl->stack_items)
57 free (pl->stack_items);
58
59 free (pl->socket.faces_sent);
60
61 delete pl;
62 }
63
64
65 /* Determine if the attacktype represented by the
66 * specified attack-number is enabled for dragon players.
67 * A dragon player (quetzal) can gain resistances for
68 * all enabled attacktypes.
69 */
70 int
71 atnr_is_dragon_enabled (int attacknr)
72 {
73 if (attacknr == ATNR_MAGIC || attacknr == ATNR_FIRE ||
74 attacknr == ATNR_ELECTRICITY || attacknr == ATNR_COLD || attacknr == ATNR_ACID || attacknr == ATNR_POISON)
75 return 1;
76 return 0;
77 }
78
79 /*
80 * returns true if the adressed object 'ob' is a player
81 * of the dragon race.
82 */
83 int
84 is_dragon_pl (const object *op)
85 {
86 if (op != NULL && op->type == PLAYER && op->arch != NULL && op->arch->clone.race != NULL && strcmp (op->arch->clone.race, "dragon") == 0)
87 return 1;
88 return 0;
89 }