--- deliantra/server/server/move.C 2008/08/26 02:35:05 1.26 +++ deliantra/server/server/move.C 2008/09/07 09:22:47 1.27 @@ -286,13 +286,14 @@ user->remove (); /* Update location for the object */ - for (tmp = user; tmp != NULL; tmp = tmp->more) + for (tmp = user; tmp; tmp = tmp->more) { - tmp->x = other_teleporter->x + freearr_x[k] + (tmp->arch == NULL ? 0 : tmp->arch->x); - tmp->y = other_teleporter->y + freearr_y[k] + (tmp->arch == NULL ? 0 : tmp->arch->y); + tmp->x = other_teleporter->x + freearr_x[k] + (tmp->arch ? tmp->arch->x : 0); + tmp->y = other_teleporter->y + freearr_y[k] + (tmp->arch ? tmp->arch->y : 0); } + tmp = insert_ob_in_map (user, other_teleporter->map, NULL, 0); - return (tmp == NULL); + return !tmp; } void