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

Comparing deliantra/server/socket/request.C (file contents):
Revision 1.52 by root, Sat Dec 23 09:41:55 2006 UTC vs.
Revision 1.58 by root, Thu Jan 4 16:19:32 2007 UTC

176 flags |= 4; 176 flags |= 4;
177 if (ob->map->tile_path[3]) 177 if (ob->map->tile_path[3])
178 flags |= 8; 178 flags |= 8;
179 179
180 snprintf (buf, MAX_BUF, "mapinfo - spatial %d %d %d %d %d %s", 180 snprintf (buf, MAX_BUF, "mapinfo - spatial %d %d %d %d %d %s",
181 flags, socket.mapx / 2 - ob->x, socket.mapy / 2 - ob->y, ob->map->width, ob->map->height, ob->map->path); 181 flags, socket.mapx / 2 - ob->x, socket.mapy / 2 - ob->y, ob->map->width, ob->map->height, &ob->map->path);
182 } 182 }
183 else 183 else
184 snprintf (buf, MAX_BUF, "mapinfo current"); 184 snprintf (buf, MAX_BUF, "mapinfo current");
185 185
186 socket.send_packet (buf); 186 socket.send_packet (buf);
290 { 290 {
291 int dir = *buf++; 291 int dir = *buf++;
292 292
293 switch (dir) 293 switch (dir)
294 { 294 {
295 case '1': 295 case '1':
296 dx = 0; 296 dx = 0;
297 dy = -1; 297 dy = -1;
298 map = get_map_from_coord (map, &dx, &dy); 298 map = map->xy_find (dx, dy);
299 map && (mapy -= map->height); 299 map && (mapy -= map->height);
300 break; 300 break;
301 case '2': 301 case '2':
302 mapx += map->width; 302 mapx += map->width;
303 dx = map->width; 303 dx = map->width;
304 dy = 0; 304 dy = 0;
305 map = get_map_from_coord (map, &dx, &dy); 305 map = map->xy_find (dx, dy);
306 break; 306 break;
307 case '3': 307 case '3':
308 mapy += map->height; 308 mapy += map->height;
309 dx = 0; 309 dx = 0;
310 dy = map->height; 310 dy = map->height;
311 map = get_map_from_coord (map, &dx, &dy); 311 map = map->xy_find (dx, dy);
312 break; 312 break;
313 case '4': 313 case '4':
314 dx = -1; 314 dx = -1;
315 dy = 0; 315 dy = 0;
316 map = get_map_from_coord (map, &dx, &dy); 316 map = map->xy_find (dx, dy);
317 map && (mapx -= map->width); 317 map && (mapx -= map->width);
318 break; 318 break;
319 } 319 }
320 320
321 --max_distance; 321 --max_distance;
322 } 322 }
323 323
334 if (map->tile_path[2]) 334 if (map->tile_path[2])
335 flags |= 4; 335 flags |= 4;
336 if (map->tile_path[3]) 336 if (map->tile_path[3])
337 flags |= 8; 337 flags |= 8;
338 338
339 snprintf (bigbuf, MAX_BUF, "mapinfo %s spatial %d %d %d %d %d %s", token, flags, mapx, mapy, map->width, map->height, map->path); 339 snprintf (bigbuf, MAX_BUF, "mapinfo %s spatial %d %d %d %d %d %s", token, flags, mapx, mapy, map->width, map->height, &map->path);
340 } 340 }
341 else 341 else
342 snprintf (bigbuf, MAX_BUF, "mapinfo %s nomap", token); 342 snprintf (bigbuf, MAX_BUF, "mapinfo %s nomap", token);
343 } 343 }
344 else 344 else
914{ 914{
915 ns->sound = atoi (buf); 915 ns->sound = atoi (buf);
916} 916}
917 917
918/** client wants the map resent */ 918/** client wants the map resent */
919
920void 919void
921MapRedrawCmd (char *buf, int len, player *pl) 920MapRedrawCmd (char *buf, int len, player *pl)
922{ 921{
923/* This function is currently disabled; just clearing the map state results in 922/* This function is currently disabled; just clearing the map state results in
924 * display errors. It should clear the cache and send a newmap command. 923 * display errors. It should clear the cache and send a newmap command.
1010void 1009void
1011esrv_update_stats (player *pl) 1010esrv_update_stats (player *pl)
1012{ 1011{
1013 char buf[MAX_BUF]; 1012 char buf[MAX_BUF];
1014 uint16 flags; 1013 uint16 flags;
1014
1015 if (!pl->ns)
1016 return;
1015 1017
1016 packet sl ("stats"); 1018 packet sl ("stats");
1017 1019
1018 if (pl->ob) 1020 if (pl->ob)
1019 { 1021 {
1503 ob = GET_MAP_FACE_OBJ (mp, mx, my, layer); 1505 ob = GET_MAP_FACE_OBJ (mp, mx, my, layer);
1504 1506
1505 /* If there is no object for this space, or if the face for the object 1507 /* If there is no object for this space, or if the face for the object
1506 * is the blank face, set the smoothlevel to zero. 1508 * is the blank face, set the smoothlevel to zero.
1507 */ 1509 */
1508 if (!ob || ob->face == blank_face || MAP_NOSMOOTH (mp)) 1510 if (!ob || ob->face == blank_face)
1509 smoothlevel = 0; 1511 smoothlevel = 0;
1510 else 1512 else
1511 { 1513 {
1512 smoothlevel = ob->smoothlevel; 1514 smoothlevel = ob->smoothlevel;
1513 if (smoothlevel && !(ns.faces_sent[ob->face->number] & NS_FACESENT_SMOOTH)) 1515 if (smoothlevel && !(ns.faces_sent[ob->face->number] & NS_FACESENT_SMOOTH))
1586 uint8 extendedinfos; 1588 uint8 extendedinfos;
1587 maptile *m; 1589 maptile *m;
1588 1590
1589 client &socket = *pl->contr->ns; 1591 client &socket = *pl->contr->ns;
1590 1592
1593 if (!pl->active ())
1594 return;
1595
1591 check_map_change (pl->contr); 1596 check_map_change (pl->contr);
1592 1597
1593 packet sl (socket.mapmode == Map1Cmd ? "map1" : "map1a"); 1598 packet sl (socket.mapmode == Map1Cmd ? "map1" : "map1a");
1594 packet esl; 1599 packet esl;
1595 1600
1715 map_clearcell (&lastcell, 0, 0, 0, -1); 1720 map_clearcell (&lastcell, 0, 0, 0, -1);
1716 } 1721 }
1717 } 1722 }
1718 else if (d > 3) 1723 else if (d > 3)
1719 { 1724 {
1725 m->touch ();
1726
1720 int need_send = 0, count; 1727 int need_send = 0, count;
1721 1728
1722 /* This block deals with spaces that are not visible for whatever 1729 /* This block deals with spaces that are not visible for whatever
1723 * reason. Still may need to send the head for this space. 1730 * reason. Still may need to send the head for this space.
1724 */ 1731 */
1757 else 1764 else
1758 sl.reset (oldlen); 1765 sl.reset (oldlen);
1759 } 1766 }
1760 else 1767 else
1761 { 1768 {
1769 m->touch ();
1770
1762 /* In this block, the space is visible or there are head objects 1771 /* In this block, the space is visible or there are head objects
1763 * we need to send. 1772 * we need to send.
1764 */ 1773 */
1765 1774
1766 /* Rather than try to figure out what everything that we might 1775 /* Rather than try to figure out what everything that we might
2081 * it then sends an updspell packet for each spell that has changed in this way 2090 * it then sends an updspell packet for each spell that has changed in this way
2082 */ 2091 */
2083void 2092void
2084esrv_update_spells (player *pl) 2093esrv_update_spells (player *pl)
2085{ 2094{
2095 if (!pl->ns)
2096 return;
2097
2086 if (!pl->ns->monitor_spells) 2098 if (!pl->ns->monitor_spells)
2087 return; 2099 return;
2088 2100
2089 for (object *spell = pl->ob->inv; spell; spell = spell->below) 2101 for (object *spell = pl->ob->inv; spell; spell = spell->below)
2090 { 2102 {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines