--- deliantra/server/socket/request.C 2007/01/19 17:50:11 1.63 +++ deliantra/server/socket/request.C 2007/03/01 12:28:17 1.67 @@ -1,26 +1,26 @@ /* - CrossFire, A Multiplayer game for X-windows - - Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team - Copyright (C) 2001 Mark Wedel - Copyright (C) 1992 Frank Tore Johansen - - This program 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 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - The author can be reached via e-mail to -*/ + * CrossFire, A Multiplayer game for X-windows + * + * Copyright (C) 2005, 2006, 2007 Marc Lehmann & Crossfire+ Development Team + * Copyright (C) 2001 Mark Wedel + * Copyright (C) 1992 Frank Tore Johansen + * + * This program 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 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + * The author can be reached via e-mail to + */ /** * \file @@ -38,9 +38,6 @@ * * esrv_map_new starts updating the map * - * esrv_map_setbelow allows filling in all of the faces for the map. - * if a face has not already been sent to the client, it is sent now. - * */ #include @@ -149,7 +146,7 @@ pl->ns->floorbox_reset (); } -/** check for map change and send new map data */ +/** check for map/region change and send new map data */ static void check_map_change (player *pl) { @@ -203,6 +200,13 @@ socket.current_x = ob->x; socket.current_y = ob->y; + + region *reg = ob->region (); + if (socket.current_region != reg) + { + socket.current_region = reg; + socket.send_packet_printf ("drawinfo 0 You are now %s.\n(use whereami for more details)", ®->longname); + } } /** @@ -800,9 +804,9 @@ pl->count = 0; //TODO: schmorp thinks whatever this calculates, it makes no sense at all - int time = FABS (pl->ob->speed) < 0.001 + int time = fabs (pl->ob->speed) < 0.001 ? time = MAX_TIME * 100 - : time = (int) (MAX_TIME / FABS (pl->ob->speed)); + : time = (int) (MAX_TIME / fabs (pl->ob->speed)); /* Send confirmation of command execution now */ packet sl ("comc"); @@ -1162,28 +1166,6 @@ * ******************************************************************************/ -/** - * This adds face_num to a map cell at x,y. If the client doesn't have - * the face yet, we will also send it. - */ -static void -esrv_map_setbelow (client * ns, int x, int y, short face_num, struct Map *newmap) -{ - if (newmap->cells[x][y].count >= MAP_LAYERS) - { - //TODO: one or the other, can't both have abort and return, verify and act - LOG (llevError, "Too many faces in map cell %d %d\n", x, y); - return; - abort (); - } - - newmap->cells[x][y].faces[newmap->cells[x][y].count] = face_num; - newmap->cells[x][y].count++; - - if (!(ns->faces_sent[face_num] & NS_FACESENT_FACE)) - esrv_send_face (ns, face_num, 0); -} - /** Clears a map cell */ static void map_clearcell (struct MapCell *cell, int face0, int face1, int face2, int count) @@ -1993,10 +1975,8 @@ draw_client_map (object *pl) { int i, j; - sint16 ax, ay, nx, ny; /* ax and ay goes from 0 to max-size of arrays */ - facetile *face, *floor; - facetile *floor2; - int d, mflags; + sint16 ax, ay; /* ax and ay goes from 0 to max-size of arrays */ + int mflags; struct Map newmap; maptile *m, *pm; @@ -2187,7 +2167,7 @@ static void append_spell (player *pl, packet &sl, object *spell) { - int len, i, skill = 0; + int i, skill = 0; if (!(spell->name)) {