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.20 by root, Sat Dec 23 06:30:49 2006 UTC vs.
Revision 1.25 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
224 "You feel stupid!", 225 "You feel stupid!",
225 "You feel less potent!" 226 "You feel less potent!"
226}; 227};
227 228
228const char *const statname[NUM_STATS] = { 229const char *const statname[NUM_STATS] = {
229 "strength", "dexterity", "constitution", "wisdom", "charisma", "intelligence", "power" 230 "strength", "dexterity", "constitution", "intelligence", "wisdom", "power", "charisma"
230}; 231};
231 232
232const char *const short_stat_name[NUM_STATS] = { 233const char *const short_stat_name[NUM_STATS] = {
233 "Str", "Dex", "Con", "Wis", "Cha", "Int", "Pow" 234 "Str", "Dex", "Con", "Int", "Wis", "Pow", "Cha"
234}; 235};
235 236
236/* 237/*
237 * sets Str/Dex/con/Wis/Cha/Int/Pow in stats to value, depending on 238 * sets Str/Dex/con/Wis/Cha/Int/Pow in stats to value, depending on
238 * what attr is (STR to POW). 239 * what attr is (STR to POW).
832 float f, max = 9, added_speed = 0, bonus_speed = 0, sp_tmp, speed_reduce_from_disease = 1; 833 float f, max = 9, added_speed = 0, bonus_speed = 0, sp_tmp, speed_reduce_from_disease = 1;
833 int weapon_weight = 0, weapon_speed = 0; 834 int weapon_weight = 0, weapon_speed = 0;
834 int best_wc = 0, best_ac = 0, wc = 0, ac = 0; 835 int best_wc = 0, best_ac = 0, wc = 0, ac = 0;
835 int prot[NROFATTACKS], vuln[NROFATTACKS], potion_resist[NROFATTACKS]; 836 int prot[NROFATTACKS], vuln[NROFATTACKS], potion_resist[NROFATTACKS];
836 object *grace_obj = NULL, *mana_obj = NULL, *wc_obj = NULL, *tmp; 837 object *grace_obj = NULL, *mana_obj = NULL, *wc_obj = NULL, *tmp;
838 float old_speed = speed;
837 839
838 /* First task is to clear all the values back to their original values */ 840 /* First task is to clear all the values back to their original values */
839 if (type == PLAYER) 841 if (type == PLAYER)
840 { 842 {
841 for (i = 0; i < NUM_STATS; i++) 843 for (i = 0; i < NUM_STATS; i++)
1028 if (tmp->type != POTION) 1030 if (tmp->type != POTION)
1029 { 1031 {
1030 for (i = 0; i < NROFATTACKS; i++) 1032 for (i = 0; i < NROFATTACKS; i++)
1031 { 1033 {
1032 /* Potential for cursed potions, in which case we just can use 1034 /* Potential for cursed potions, in which case we just can use
1033 * a straight MAX, as potion_resist is initialized to zero. 1035 * a straight MAX, as potion_resist is initialised to zero.
1034 */ 1036 */
1035 if (tmp->type == POTION_EFFECT) 1037 if (tmp->type == POTION_EFFECT)
1036 { 1038 {
1037 if (potion_resist[i]) 1039 if (potion_resist[i])
1038 potion_resist[i] = MAX (potion_resist[i], tmp->resist[i]); 1040 potion_resist[i] = MAX (potion_resist[i], tmp->resist[i]);
1502 if (move_type == 0) 1504 if (move_type == 0)
1503 move_type = MOVE_WALK; 1505 move_type = MOVE_WALK;
1504 else if (move_type & (MOVE_FLY_LOW | MOVE_FLY_HIGH)) 1506 else if (move_type & (MOVE_FLY_LOW | MOVE_FLY_HIGH))
1505 move_type &= ~MOVE_WALK; 1507 move_type &= ~MOVE_WALK;
1506 1508
1507 update_ob_speed (this); 1509 if (speed != old_speed)
1510 set_speed (speed);
1508 1511
1509 /* It is quite possible that a player's spell costing might have changed, 1512 /* It is quite possible that a player's spell costing might have changed,
1510 * so we will check that now. 1513 * so we will check that now.
1511 */ 1514 */
1512 if (type == PLAYER) 1515 if (type == PLAYER)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines