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.9 by root, Thu Dec 14 04:30:32 2006 UTC vs.
Revision 1.13 by pippijn, Sat Jan 6 14:42:29 2007 UTC

1/* 1/*
2 CrossFire, A Multiplayer game for X-windows 2 CrossFire, A Multiplayer game for X-windows
3 3
4 Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team
4 Copyright (C) 2002 Mark Wedel & Crossfire Development Team 5 Copyright (C) 2002 Mark Wedel & Crossfire Development Team
5 Copyright (C) 1992 Frank Tore Johansen 6 Copyright (C) 1992 Frank Tore Johansen
6 7
7 This program is free software; you can redistribute it and/or modify 8 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 it under the terms of the GNU General Public License as published by
22*/ 23*/
23 24
24#include <global.h> 25#include <global.h>
25#include <funcpoint.h> 26#include <funcpoint.h>
26 27
27void
28free_player (player *pl)
29{
30 if (first_player != pl)
31 {
32 player *prev = first_player;
33
34 while (prev != NULL && prev->next != NULL && prev->next != pl)
35 prev = prev->next;
36
37 if (prev->next != pl)
38 {
39 LOG (llevError, "Free_player: Can't find previous player.\n");
40 exit (1);
41 }
42
43 prev->next = pl->next;
44 }
45 else
46 first_player = pl->next;
47
48 if (pl->ob)
49 {
50 pl->ob->contr = 0;
51 pl->ob->destroy ();
52 }
53
54 /* Clear item stack */
55 if (pl->stack_items)
56 free (pl->stack_items);
57
58 pl->socket->status = Ns_Dead;
59 pl->socket->pl = 0;
60
61 delete pl;
62}
63
64
65/* Determine if the attacktype represented by the 28/* Determine if the attacktype represented by the
66 * specified attack-number is enabled for dragon players. 29 * specified attack-number is enabled for dragon players.
67 * A dragon player (quetzal) can gain resistances for 30 * A dragon player (quetzal) can gain resistances for
68 * all enabled attacktypes. 31 * all enabled attacktypes.
69 */ 32 */
71atnr_is_dragon_enabled (int attacknr) 34atnr_is_dragon_enabled (int attacknr)
72{ 35{
73 if (attacknr == ATNR_MAGIC || attacknr == ATNR_FIRE || 36 if (attacknr == ATNR_MAGIC || attacknr == ATNR_FIRE ||
74 attacknr == ATNR_ELECTRICITY || attacknr == ATNR_COLD || attacknr == ATNR_ACID || attacknr == ATNR_POISON) 37 attacknr == ATNR_ELECTRICITY || attacknr == ATNR_COLD || attacknr == ATNR_ACID || attacknr == ATNR_POISON)
75 return 1; 38 return 1;
39
76 return 0; 40 return 0;
77} 41}
78 42
79/* 43/*
80 * returns true if the adressed object 'ob' is a player 44 * returns true if the adressed object 'ob' is a player

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines