--- deliantra/server/socket/request.C 2007/08/24 00:26:10 1.119 +++ deliantra/server/socket/request.C 2007/11/08 19:43:30 1.123 @@ -1,11 +1,11 @@ /* - * This file is part of Crossfire TRT, the Roguelike Realtime MORPG. + * This file is part of Deliantra, the Roguelike Realtime MMORPG. * - * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Crossfire TRT team + * Copyright (©) 2005,2006,2007 Marc Alexander Lehmann / Robin Redeker / the Deliantra team * Copyright (©) 2001,2007 Mark Wedel * Copyright (©) 1992,2007 Frank Tore Johansen * - * Crossfire TRT is free software: you can redistribute it and/or modify + * Deliantra is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. @@ -18,7 +18,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . * - * The authors can be reached via e-mail to + * The authors can be reached via e-mail to */ /** @@ -265,9 +265,9 @@ buf += strlen (buf) + 9; // initial map and its origin - maptile *map = pl->ob->map; - int mapx = pl->ns->mapx / 2 - pl->ob->x; - int mapy = pl->ns->mapy / 2 - pl->ob->y; + maptile *map = pl->observe->map; + int mapx = pl->ns->mapx / 2 - pl->observe->x; + int mapy = pl->ns->mapy / 2 - pl->observe->y; int max_distance = 8; // limit maximum path length to something generous while (*buf && map && max_distance) @@ -278,7 +278,7 @@ { if (!map->tile_path [dir]) map = 0; - else if (map->tile_available (dir)) + else if (map->tile_available (dir, false)) { maptile *neigh = map->tile_map [dir]; @@ -302,7 +302,7 @@ if (!max_distance) send_packet_printf ("mapinfo %s error", token); - else if (!map || !map->path[0]) + else if (!map || !map->path) send_packet_printf ("mapinfo %s nomap", token); else { @@ -1131,7 +1131,9 @@ { nx = x; ny = y; m = plmap; - if (!xy_normalise (m, nx, ny)) + if (xy_normalise (m, nx, ny)) + m->touch (); + else m = 0; } @@ -1158,8 +1160,6 @@ continue; } - m->touch (); - int d = pl->blocked_los[ax][ay]; if (d > 3)