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.101 by root, Mon Nov 9 18:47:55 2009 UTC vs.
Revision 1.103 by root, Mon Nov 23 12:19:57 2009 UTC

767 int stat_sum [NUM_STATS]; 767 int stat_sum [NUM_STATS];
768 768
769 /* First task is to clear all the values back to their original values */ 769 /* First task is to clear all the values back to their original values */
770 if (type == PLAYER) 770 if (type == PLAYER)
771 { 771 {
772 contr->delayed_update = false;
773
772 for (int i = 0; i < NUM_STATS; i++) 774 for (int i = 0; i < NUM_STATS; i++)
773 stat_sum [i] = contr->orig_stats.stat (i); 775 stat_sum [i] = contr->orig_stats.stat (i);
774 776
775 if (settings.spell_encumbrance == TRUE) 777 if (settings.spell_encumbrance == TRUE)
776 contr->encumbrance = 0; 778 contr->encumbrance = 0;
909 && !tmp->flag [FLAG_CURSED] 911 && !tmp->flag [FLAG_CURSED]
910 && !tmp->flag [FLAG_DAMNED]) 912 && !tmp->flag [FLAG_DAMNED])
911 continue; 913 continue;
912 914
913 for (int i = 0; i < NUM_STATS; i++) 915 for (int i = 0; i < NUM_STATS; i++)
914 stat_sum [i] = stat_sum [i] + tmp->stats.stat (i); 916 stat_sum [i] += tmp->stats.stat (i);
915 917
916 if (digest_types [tmp->type]) 918 if (digest_types [tmp->type])
917 { 919 {
918 contr->digestion += tmp->stats.food; 920 contr->digestion += tmp->stats.food;
919 contr->gen_hp += tmp->stats.hp; 921 contr->gen_hp += tmp->stats.hp;
1172 1174
1173 if (type == PLAYER) 1175 if (type == PLAYER)
1174 { 1176 {
1175 // clamp various player stats 1177 // clamp various player stats
1176 for (int i = 0; i < NUM_STATS; ++i) 1178 for (int i = 0; i < NUM_STATS; ++i)
1177 stats.stat (i) = clamp (stat_sum [i], MIN_STAT, MAX_STAT); 1179 stats.stat (i) = stat_sum [i];
1180
1181 check_stat_bounds (&stats);
1178 1182
1179 contr->digestion = clamp (contr->digestion, MIN_DIGESTION, MAX_DIGESTION); 1183 contr->digestion = clamp (contr->digestion, MIN_DIGESTION, MAX_DIGESTION);
1180 1184
1181 /* Figure out the players sp/mana/hp totals. */ 1185 /* Figure out the players sp/mana/hp totals. */
1182 int pl_level; 1186 int pl_level;
1183 1187
1184 check_stat_bounds (&(stats));
1185 pl_level = level;
1186
1187 if (pl_level < 1)
1188 pl_level = 1; /* safety, we should always get 1 levels worth of hp! */ 1188 pl_level = max (1, level); /* safety, we should always get 1 levels worth of hp! */
1189 1189
1190 /* You basically get half a con bonus/level. But we do take into account rounding, 1190 /* You basically get half a con bonus/level. But we do take into account rounding,
1191 * so if your bonus is 7, you still get 7 worth of bonus every 2 levels. 1191 * so if your bonus is 7, you still get 7 worth of bonus every 2 levels.
1192 */ 1192 */
1193 stats.maxhp = 0; 1193 stats.maxhp = 0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines