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

Comparing deliantra/server/common/object.C (file contents):
Revision 1.117 by root, Thu Jan 18 16:19:34 2007 UTC vs.
Revision 1.122 by root, Wed Jan 24 22:42:48 2007 UTC

489 489
490 if (is_removed) 490 if (is_removed)
491 SET_FLAG (dst, FLAG_REMOVED); 491 SET_FLAG (dst, FLAG_REMOVED);
492 492
493 if (speed < 0) 493 if (speed < 0)
494 dst->speed_left = speed_left - RANDOM () % 200 / 100.0; 494 dst->speed_left = speed_left - rndm ();
495 495
496 /* Copy over key_values, if any. */ 496 /* Copy over key_values, if any. */
497 if (key_values) 497 if (key_values)
498 { 498 {
499 key_value *tail = 0; 499 key_value *tail = 0;
670 face = blank_face; 670 face = blank_face;
671} 671}
672 672
673object::~object () 673object::~object ()
674{ 674{
675 unlink ();
676
675 free_key_values (this); 677 free_key_values (this);
676} 678}
677 679
678static int object_count; 680static int object_count;
679 681
687 objects.insert (this); 689 objects.insert (this);
688} 690}
689 691
690void object::unlink () 692void object::unlink ()
691{ 693{
692 assert (index);//D 694 if (!index)
695 return;
696
693 objects.erase (this); 697 objects.erase (this);
694 refcnt_dec (); 698 refcnt_dec ();
695} 699}
696 700
697void 701void
771 * drop on that space. 775 * drop on that space.
772 */ 776 */
773 if (!drop_to_ground 777 if (!drop_to_ground
774 || !map 778 || !map
775 || map->in_memory != MAP_IN_MEMORY 779 || map->in_memory != MAP_IN_MEMORY
780 || map->nodrop
776 || ms ().move_block == MOVE_ALL) 781 || ms ().move_block == MOVE_ALL)
777 { 782 {
778 while (inv) 783 while (inv)
779 { 784 {
780 inv->destroy_inv (drop_to_ground); 785 inv->destroy_inv (drop_to_ground);
1746 if ((!op->move_type && tmp->move_slow & MOVE_WALK) || 1751 if ((!op->move_type && tmp->move_slow & MOVE_WALK) ||
1747 ((op->move_type & tmp->move_slow) && (op->move_type & ~tmp->move_slow & ~tmp->move_block) == 0)) 1752 ((op->move_type & tmp->move_slow) && (op->move_type & ~tmp->move_slow & ~tmp->move_block) == 0))
1748 { 1753 {
1749 1754
1750 float 1755 float
1751 diff = tmp->move_slow_penalty * FABS (op->speed); 1756 diff = tmp->move_slow_penalty * fabs (op->speed);
1752 1757
1753 if (op->type == PLAYER) 1758 if (op->type == PLAYER)
1754 if ((QUERY_FLAG (tmp, FLAG_IS_HILLY) && find_skill_by_number (op, SK_CLIMBING)) || 1759 if ((QUERY_FLAG (tmp, FLAG_IS_HILLY) && find_skill_by_number (op, SK_CLIMBING)) ||
1755 (QUERY_FLAG (tmp, FLAG_IS_WOODED) && find_skill_by_number (op, SK_WOODSMAN))) 1760 (QUERY_FLAG (tmp, FLAG_IS_WOODED) && find_skill_by_number (op, SK_WOODSMAN)))
1756 diff /= 4.0; 1761 diff /= 4.0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines