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.129 by root, Mon Nov 12 03:14:32 2012 UTC vs.
Revision 1.131 by root, Wed Nov 14 05:18:17 2012 UTC

33static const int con_bonus[MAX_STAT + 1] = { 33static const int con_bonus[MAX_STAT + 1] = {
34 -6, -5, -4, -3, -2, -1, -1, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20, 34 -6, -5, -4, -3, -2, -1, -1, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20,
35 22, 25, 30, 40, 50 35 22, 25, 30, 40, 50
36}; 36};
37 37
38/* changed the name of this to "sp_bonus" from "int_bonus" 38/* changed the name of this to "sp_bonus" from "int_bonus"
39 * because Pow can now be the stat that controls spellpoint 39 * because Pow can now be the stat that controls spellpoint
40 * advancement. -b.t. 40 * advancement. -b.t.
41 */ 41 */
42static const int sp_bonus[MAX_STAT + 1] = { 42static const int sp_bonus[MAX_STAT + 1] = {
43 -10, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20, 25, 43 -10, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20, 25,
730 */ 730 */
731void 731void
732object::update_stats () 732object::update_stats ()
733{ 733{
734 float max_speed = 9, added_speed = 0, bonus_speed = 0, speed_reduce_from_disease = 1; 734 float max_speed = 9, added_speed = 0, bonus_speed = 0, speed_reduce_from_disease = 1;
735 int weapon_weight = 0, weapon_speed = 0; 735 weight_t weapon_weight = 0;
736 int weapon_speed = 0;
736 int best_wc = 0, best_ac = 0, wc = 0, ac = 0; 737 int best_wc = 0, best_ac = 0, wc = 0, ac = 0;
737 int prot[NROFATTACKS], vuln[NROFATTACKS], potion_resist[NROFATTACKS]; 738 int prot[NROFATTACKS], vuln[NROFATTACKS], potion_resist[NROFATTACKS];
738 object *grace_obj = NULL, *mana_obj = NULL, *tmp; 739 object *grace_obj = NULL, *mana_obj = NULL, *tmp;
739 float old_speed = speed; 740 float old_speed = speed;
740 int stat_sum [NUM_STATS]; 741 int stat_sum [NUM_STATS];
1289 /* f is a number the represents the number of kg above (positive num) 1290 /* f is a number the represents the number of kg above (positive num)
1290 * or below (negative number) that the player is carrying. If above 1291 * or below (negative number) that the player is carrying. If above
1291 * weight limit, then player suffers a speed reduction based on how 1292 * weight limit, then player suffers a speed reduction based on how
1292 * much above he is, and what is max carry is 1293 * much above he is, and what is max carry is
1293 */ 1294 */
1294 double f = weight_to_kg_approx (carrying) - max_carry[stats.Str]; 1295 float f = (sint32)weight_to_kg_approx (carrying) - max_carry[stats.Str];
1295 if (f > 0.f) 1296 if (f > 0.f)
1296 speed /= (1.f + f / max_carry[stats.Str]); 1297 speed /= (1.f + f / max_carry[stats.Str]);
1297 } 1298 }
1298 1299
1299 speed += bonus_speed / 10.f; /* Not affected by limits */ 1300 speed += bonus_speed / 10.f; /* Not affected by limits */
1374 env->update_stats (); 1375 env->update_stats ();
1375 1376
1376 if (env->is_on_map ()) 1377 if (env->is_on_map ())
1377 update_all_los (env->map, env->x, env->y); 1378 update_all_los (env->map, env->x, env->y);
1378 } 1379 }
1379}
1380
1381/*
1382 * Returns true if the given player is a legal class.
1383 * The function to add and remove class-bonuses to the stats doesn't
1384 * check if the stat becomes negative, thus this function
1385 * merely checks that all stats are 1 or more, and returns
1386 * false otherwise.
1387 */
1388int
1389allowed_class (const object *op)
1390{
1391 return op->stats.Dex > 0
1392 && op->stats.Str > 0
1393 && op->stats.Con > 0
1394 && op->stats.Int > 0
1395 && op->stats.Wis > 0
1396 && op->stats.Pow > 0
1397 && op->stats.Cha > 0;
1398} 1380}
1399 1381
1400/* 1382/*
1401 * set the new dragon name after gaining levels or 1383 * set the new dragon name after gaining levels or
1402 * changing ability focus (later this can be extended to 1384 * changing ability focus (later this can be extended to

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines