--- deliantra/server/socket/request.C 2006/12/16 21:40:26 1.44 +++ deliantra/server/socket/request.C 2006/12/20 11:36:39 1.48 @@ -140,15 +140,12 @@ static void clear_map (player *pl) { - client &socket = *pl->socket; - - memset (&socket.lastmap, 0, sizeof (socket.lastmap)); + memset (&pl->socket->lastmap, 0, sizeof (pl->socket->lastmap)); - if (socket.newmapcmd == 1) - socket.send_packet ("newmap"); + if (pl->socket->newmapcmd == 1) + pl->socket->send_packet ("newmap"); - socket.update_look = 1; - socket.look_position = 0; + pl->socket->floorbox_reset (); } /** check for map change and send new map data */ @@ -199,8 +196,7 @@ else { socket_map_scroll (&socket, ob->x - socket.current_x, ob->y - socket.current_y); - socket.update_look = 1; - socket.look_position = 0; + socket.floorbox_reset (); } } @@ -259,6 +255,12 @@ } void +ExtiCmd (char *buf, int len, client *ns) +{ + INVOKE_CLIENT (EXTICMD, ns, ARG_DATA (buf, len)); +} + +void MapInfoCmd (char *buf, int len, player *pl) { // faces_sent[face] |= NS_FACESENT_SMOOTH; - packet sl; + packet sl ("smooth"); - sl << "smooth " - << uint16 (face) + sl << uint16 (face) << uint16 (smoothface); ns->send_packet (sl); @@ -809,8 +810,8 @@ : time = (int) (MAX_TIME / FABS (pl->ob->speed)); /* Send confirmation of command execution now */ - packet sl; - sl << "comc " << uint16 (cmdid) << uint32 (time); + packet sl ("comc"); + sl << uint16 (cmdid) << uint32 (time); pl->socket->send_packet (sl); } @@ -1033,8 +1034,7 @@ char buf[MAX_BUF]; uint16 flags; - packet sl; - sl << "stats "; + packet sl ("stats"); if (pl->ob) { @@ -1127,8 +1127,7 @@ { pl->last_weight = weight; - packet sl; - sl << "player "; + packet sl ("player"); sl << uint32 (pl->ob->count) << uint32 (weight) @@ -1159,10 +1158,9 @@ return; } - packet sl; + packet sl ("anim"); - sl << "anim " - << uint16 (anim_num) + sl << uint16 (anim_num) << uint16 (0); /* flags - not used right now */ /* Build up the list of faces. Also, send any information (ie, the @@ -1618,10 +1616,9 @@ check_map_change (pl->contr); - packet sl; + packet sl (socket.mapmode == Map1Cmd ? "map1" : "map1a"); packet esl; - sl << (socket.mapmode == Map1Cmd ? "map1 " : "map1a "); startlen = sl.length (); /*Extendedmapinfo structure initialisation */ @@ -1675,7 +1672,6 @@ ax = 0; for (x = pl->x - socket.mapx / 2; x < max_x; x++, ax++) { - emask = mask = (ax & 0x3f) << 10 | (ay & 0x3f) << 4; /* If this space is out of the normal viewable area, we only check @@ -2016,28 +2012,24 @@ memset (&newmap, 0, sizeof (struct Map)); for (j = (pl->y - pl->contr->socket->mapy / 2); j < (pl->y + (pl->contr->socket->mapy + 1) / 2); j++) - { - for (i = (pl->x - pl->contr->socket->mapx / 2); i < (pl->x + (pl->contr->socket->mapx + 1) / 2); i++) - { - ax = i; - ay = j; - m = pm; - mflags = get_map_flags (m, &m, ax, ay, &ax, &ay); + for (i = (pl->x - pl->contr->socket->mapx / 2); i < (pl->x + (pl->contr->socket->mapx + 1) / 2); i++) + { + ax = i; + ay = j; + m = pm; + mflags = get_map_flags (m, &m, ax, ay, &ax, &ay); - if (mflags & P_OUT_OF_MAP) - continue; + if (mflags & P_OUT_OF_MAP) + continue; - if (mflags & P_NEED_UPDATE) - update_position (m, ax, ay); + /* If a map is visible to the player, we don't want to swap it out + * just to reload it. This should really call something like + * swap_map, but this is much more efficient and 'good enough' + */ + if (mflags & P_NEW_MAP) + m->timeout = 50; + } - /* If a map is visible to the player, we don't want to swap it out - * just to reload it. This should really call something like - * swap_map, but this is much more efficient and 'good enough' - */ - if (mflags & P_NEW_MAP) - m->timeout = 50; - } - } /* do LOS after calls to update_position */ if (pl->contr->do_los) { @@ -2175,10 +2167,9 @@ return; } - packet sl; + packet sl ("delspell"); - sl << "delspell " - << uint32 (spell->count); + sl << uint32 (spell->count); pl->socket->send_packet (sl); } @@ -2241,8 +2232,7 @@ if (!pl->socket->monitor_spells) return; - packet sl; - sl << "addspell "; + packet sl ("addspell"); if (!spell) {