--- deliantra/server/common/map.C 2007/01/13 23:06:12 1.72 +++ deliantra/server/common/map.C 2007/01/15 01:25:41 1.75 @@ -500,11 +500,13 @@ for (int i = 0; i < size (); ++i) { +#if 0 // temporarily disabled for improved(?) stability, schmorp #TODO#d#//D if (cede_count >= 500) { cede_count = 0; coroapi::cede (); } +#endif int unique = 0; for (object *op = spaces [i].bot; op; op = op->above) @@ -1110,7 +1112,7 @@ mapspace::update_ () { object *tmp, *last = 0; - uint8 flags = 0, light = 0, anywhere = 0; + uint8 flags = P_UPTODATE, light = 0, anywhere = 0; New_Face *top, *floor, *middle; object *top_obj, *floor_obj, *middle_obj; MoveType move_block = 0, move_slow = 0, move_on = 0, move_off = 0, move_allow = 0; @@ -1608,14 +1610,16 @@ best = tmp; } } + if (best != op1) { retval->distance_x += op1->x - best->x; retval->distance_y += op1->y - best->y; } } + retval->part = best; - retval->distance = isqrt (retval->distance_x * retval->distance_x + retval->distance_y * retval->distance_y); + retval->distance = idistance (retval->distance_x, retval->distance_y); retval->direction = find_dir_2 (-retval->distance_x, -retval->distance_y); } } @@ -1649,7 +1653,7 @@ retval->distance_y += op2->y - y; retval->part = NULL; - retval->distance = isqrt (retval->distance_x * retval->distance_x + retval->distance_y * retval->distance_y); + retval->distance = idistance (retval->distance_x, retval->distance_y); retval->direction = find_dir_2 (-retval->distance_x, -retval->distance_y); } }