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.77 by root, Tue Aug 7 23:38:12 2007 UTC vs.
Revision 1.81 by root, Sat Nov 10 03:40:17 2007 UTC

1/* 1/*
2 * This file is part of Crossfire TRT, the Roguelike Realtime MORPG. 2 * This file is part of Deliantra, the Roguelike Realtime MMORPG.
3 * 3 *
4 * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team 4 * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Deliantra team
5 * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team 5 * Copyright (©) 2002,2007 Mark Wedel & Crossfire Development Team
6 * Copyright (©) 1992,2007 Frank Tore Johansen 6 * Copyright (©) 1992,2007 Frank Tore Johansen
7 * 7 *
8 * Crossfire TRT is free software: you can redistribute it and/or modify 8 * Deliantra 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 3 of the License, or 10 * the Free Software Foundation, either version 3 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,
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, see <http://www.gnu.org/licenses/>. 19 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 * 20 *
21 * The authors can be reached via e-mail to <crossfire@schmorp.de> 21 * The authors can be reached via e-mail to <support@deliantra.net>
22 */ 22 */
23 23
24#include <global.h> 24#include <global.h>
25#include <funcpoint.h> 25#include <funcpoint.h>
26 26
1350 /* f is a number the represents the number of kg above (positive num) 1350 /* f is a number the represents the number of kg above (positive num)
1351 * or below (negative number) that the player is carrying. If above 1351 * or below (negative number) that the player is carrying. If above
1352 * weight limit, then player suffers a speed reduction based on how 1352 * weight limit, then player suffers a speed reduction based on how
1353 * much above he is, and what is max carry is 1353 * much above he is, and what is max carry is
1354 */ 1354 */
1355 f = (carrying / 1000) - max_carry[stats.Str]; 1355 float f = (carrying / 1000) - max_carry[stats.Str];
1356 if (f > 0) 1356 if (f > 0.f)
1357 speed = speed / (1.f + f / max_carry[stats.Str]); 1357 speed = speed / (1.f + f / max_carry[stats.Str]);
1358 } 1358 }
1359 1359
1360 speed += bonus_speed / 10.f; /* Not affected by limits */ 1360 speed += bonus_speed / 10.f; /* Not affected by limits */
1361
1362 speed = speed * speed_reduce_from_disease; 1361 speed *= speed_reduce_from_disease;
1363 1362
1364 /* Put a lower limit on speed. Note with this speed, you move once every 1363 /* Put a lower limit on speed. Note with this speed, you move once every
1365 * 100 ticks or so. This amounts to once every 12 seconds of realtime. 1364 * 25 ticks or so. This amounts to once every 3 seconds of realtime.
1366 */ 1365 */
1367 if (speed < 0.01f && type == PLAYER) 1366 if (speed < 0.04f && type == PLAYER)
1368 speed = 0.01f; 1367 speed = 0.04f;
1369 1368
1370 if (speed != old_speed) 1369 if (speed != old_speed)
1371 set_speed (speed); 1370 set_speed (speed);
1372 1371
1373 if (type == PLAYER) 1372 if (type == PLAYER)
1477 /* now if there are equals at highest level, pick the one with focus, 1476 /* now if there are equals at highest level, pick the one with focus,
1478 or else at random */ 1477 or else at random */
1479 if (atnr_is_dragon_enabled (abil->stats.exp) && abil->resist[abil->stats.exp] >= level) 1478 if (atnr_is_dragon_enabled (abil->stats.exp) && abil->resist[abil->stats.exp] >= level)
1480 atnr = abil->stats.exp; 1479 atnr = abil->stats.exp;
1481 1480
1482 level = (int) (level / 5.); 1481 level = (int) (level / 25.);
1483 1482
1484 /* now set the new title */ 1483 /* now set the new title */
1485 if (pl->contr != NULL) 1484 if (pl->contr)
1486 { 1485 {
1487 if (level == 0) 1486 if (level == 0)
1488 sprintf (pl->contr->title, "%s hatchling", attacks[atnr]); 1487 sprintf (pl->contr->title, "%s hatchling", attacks[atnr]);
1489 else if (level == 1) 1488 else if (level == 1)
1490 sprintf (pl->contr->title, "%s wyrm", attacks[atnr]); 1489 sprintf (pl->contr->title, "%s wyrm", attacks[atnr]);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines