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

Comparing deliantra/server/common/living.C (file contents):
Revision 1.28 by root, Tue Jan 9 00:22:01 2007 UTC vs.
Revision 1.31 by root, Thu Jan 18 19:42:09 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) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team
5 Copyright (C) 2002 Mark Wedel & Crossfire Development Team 5 * Copyright (C) 2002 Mark Wedel & Crossfire Development Team
6 Copyright (C) 1992 Frank Tore Johansen 6 * Copyright (C) 1992 Frank Tore Johansen
7 7 *
8 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
9 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
10 the Free Software Foundation; either version 2 of the License, or 10 * the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version. 11 * (at your option) any later version.
12 12 *
13 This program is distributed in the hope that it will be useful, 13 * This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details. 16 * GNU General Public License for more details.
17 17 *
18 You should have received a copy of the GNU General Public License 18 * You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software 19 * along with this program; if not, write to the Free Software
20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 21 *
22 The authors can be reached via e-mail at <crossfire@schmorp.de> 22 * The authors can be reached via e-mail at <crossfire@schmorp.de>
23*/ 23 */
24 24
25#include <global.h> 25#include <global.h>
26#include <funcpoint.h> 26#include <funcpoint.h>
27 27
28/* Handy little macro that adds exp and keeps it within bounds. Since 28/* Handy little macro that adds exp and keeps it within bounds. Since
755 return; 755 return;
756 756
757 /* Randomly change the players luck. Basically, we move it 757 /* Randomly change the players luck. Basically, we move it
758 * back neutral (if greater>0, subtract, otherwise add) 758 * back neutral (if greater>0, subtract, otherwise add)
759 */ 759 */
760 if (RANDOM () % (FABS (tmp->stats.luck)) >= RANDOM () % 30) 760 if (RANDOM () % (FABS (tmp->stats.luck)) >= rndm (30))
761 { 761 {
762 int diff = tmp->stats.luck > 0 ? -1 : 1; 762 int diff = tmp->stats.luck > 0 ? -1 : 1;
763 763
764 stats.luck += diff; 764 stats.luck += diff;
765 tmp->stats.luck += diff; 765 tmp->stats.luck += diff;
1609 object *skin = NULL; /* pointer to dragon skin force */ 1609 object *skin = NULL; /* pointer to dragon skin force */
1610 object *tmp = NULL; /* tmp. object */ 1610 object *tmp = NULL; /* tmp. object */
1611 char buf[MAX_BUF]; /* tmp. string buffer */ 1611 char buf[MAX_BUF]; /* tmp. string buffer */
1612 1612
1613 /* now grab the 'dragon_ability'-forces from the player's inventory */ 1613 /* now grab the 'dragon_ability'-forces from the player's inventory */
1614 shstr_cmp dragon_ability_force ("dragon_ability_force");
1615 shstr_cmp dragon_skin_force ("dragon_skin_force");
1616
1614 for (tmp = who->inv; tmp != NULL; tmp = tmp->below) 1617 for (tmp = who->inv; tmp; tmp = tmp->below)
1615 {
1616 if (tmp->type == FORCE) 1618 if (tmp->type == FORCE)
1617 {
1618 if (strcmp (tmp->arch->name, "dragon_ability_force") == 0) 1619 if (tmp->arch->name == dragon_ability_force)
1619 abil = tmp; 1620 abil = tmp;
1620 if (strcmp (tmp->arch->name, "dragon_skin_force") == 0) 1621 else if (tmp->arch->name == dragon_skin_force)
1621 skin = tmp; 1622 skin = tmp;
1622 } 1623
1623 }
1624 /* if the force is missing -> bail out */ 1624 /* if the force is missing -> bail out */
1625 if (abil == NULL) 1625 if (abil == NULL)
1626 return; 1626 return;
1627 1627
1628 /* The ability_force keeps track of maximum level ever achieved. 1628 /* The ability_force keeps track of maximum level ever achieved.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines