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.84 by root, Tue Apr 3 00:21:38 2007 UTC vs.
Revision 1.90 by root, Fri Apr 27 00:49:58 2007 UTC

148{ 148{
149 client &socket = *pl->ns; 149 client &socket = *pl->ns;
150 object *ob = pl->ob; 150 object *ob = pl->ob;
151 char buf[MAX_BUF]; /* eauugggh */ 151 char buf[MAX_BUF]; /* eauugggh */
152 152
153 if (socket.force_newmap) 153 if (socket.current_map != ob->map || socket.force_newmap)
154 {
155 // force newmap is used for clients that do not redraw their map
156 // after image uploads.
157 socket.current_map = ob->map;
158 clear_map (pl);
159 }
160 else if (socket.current_map != ob->map)
161 { 154 {
162 clear_map (pl); 155 clear_map (pl);
163 socket.current_map = ob->map; 156 socket.current_map = ob->map;
164 157
165 if (socket.mapinfocmd) 158 if (socket.mapinfocmd)
166 { 159 {
167 if (ob->map && ob->map->path[0]) 160 if (ob->map && ob->map->path[0])
168 { 161 {
169 int flags = 0; 162 int flags = 0;
170 163
171 if (ob->map->tile_path[0]) 164 if (ob->map->tile_path[0]) flags |= 1;
172 flags |= 1;
173 if (ob->map->tile_path[1]) 165 if (ob->map->tile_path[1]) flags |= 2;
174 flags |= 2;
175 if (ob->map->tile_path[2]) 166 if (ob->map->tile_path[2]) flags |= 4;
176 flags |= 4;
177 if (ob->map->tile_path[3]) 167 if (ob->map->tile_path[3]) flags |= 8;
178 flags |= 8;
179 168
180 snprintf (buf, MAX_BUF, "mapinfo - spatial %d %d %d %d %d %s", 169 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); 170 flags, socket.mapx / 2 - ob->x, socket.mapy / 2 - ob->y, ob->map->width, ob->map->height, &ob->map->path);
182 } 171 }
183 else 172 else
332 snprintf (bigbuf, MAX_BUF, "mapinfo %s error", token); 321 snprintf (bigbuf, MAX_BUF, "mapinfo %s error", token);
333 else if (map && map->path[0]) 322 else if (map && map->path[0])
334 { 323 {
335 int flags = 0; 324 int flags = 0;
336 325
337 if (map->tile_path[0]) 326 if (map->tile_path[0]) flags |= 1;
338 flags |= 1;
339 if (map->tile_path[1]) 327 if (map->tile_path[1]) flags |= 2;
340 flags |= 2;
341 if (map->tile_path[2]) 328 if (map->tile_path[2]) flags |= 4;
342 flags |= 4;
343 if (map->tile_path[3]) 329 if (map->tile_path[3]) flags |= 8;
344 flags |= 8;
345 330
346 snprintf (bigbuf, MAX_BUF, "mapinfo %s spatial %d %d %d %d %d %s", token, flags, mapx, mapy, map->width, map->height, &map->path); 331 snprintf (bigbuf, MAX_BUF, "mapinfo %s spatial %d %d %d %d %d %s", token, flags, mapx, mapy, map->width, map->height, &map->path);
347 } 332 }
348 else 333 else
349 snprintf (bigbuf, MAX_BUF, "mapinfo %s nomap", token); 334 snprintf (bigbuf, MAX_BUF, "mapinfo %s nomap", token);
618 { 603 {
619 case ST_PLAYING: 604 case ST_PLAYING:
620 LOG (llevError, "Got reply message with ST_PLAYING input state\n"); 605 LOG (llevError, "Got reply message with ST_PLAYING input state\n");
621 break; 606 break;
622 607
623 case ST_CHANGE_CLASS:
624 key_change_class (pl->ob, buf[0]);
625 break;
626
627 case ST_GET_PARTY_PASSWORD: /* Get password for party */ 608 case ST_GET_PARTY_PASSWORD: /* Get password for party */
628 receive_party_password (pl->ob, 13); 609 receive_party_password (pl->ob, 13);
629 break; 610 break;
630 611
631 default: 612 default:
670 651
671 cp = strchr (cp + 1, ' '); 652 cp = strchr (cp + 1, ' ');
672 653
673 if (cp) 654 if (cp)
674 { 655 {
675 assign (ns->version, cp + 1); 656 ns->version = cp + 1;
676 657
677 if (ns->sc_version < 1026) 658 if (ns->sc_version < 1026)
678 ns->send_packet_printf ("drawinfo %d %s", NDI_RED, 659 ns->send_packet_printf ("drawinfo %d %s", NDI_RED,
679 "**** VERSION WARNING ****\n**** CLIENT IS TOO OLD!! UPDATE THE CLIENT!! ****"); 660 "**** VERSION WARNING ****\n**** CLIENT IS TOO OLD!! UPDATE THE CLIENT!! ****");
680 } 661 }
1190 1171
1191 mapspace &ms = m->at (nx, ny); 1172 mapspace &ms = m->at (nx, ny);
1192 1173
1193 if (socket.extmap) 1174 if (socket.extmap)
1194 { 1175 {
1195 uint8 stat_hp = 0; 1176 uint8 stat_hp = 0;
1196 uint8 stat_width = 0; 1177 uint8 stat_width = 0;
1197 uint8 flags = 0; 1178 uint8 flags = 0;
1198 UUID player = 0; 1179 tag_t player = 0;
1199 1180
1200 // send hp information, if applicable 1181 // send hp information, if applicable
1201 if (object *op = ms.faces_obj [0]) 1182 if (object *op = ms.faces_obj [0])
1202 { 1183 {
1203 if (op->head || op->invisible) 1184 if (op->head || op->invisible)
1244 1225
1245 mask |= 0x8; 1226 mask |= 0x8;
1246 *last_ext |= 0x80; 1227 *last_ext |= 0x80;
1247 last_ext = &sl[sl.length ()]; 1228 last_ext = &sl[sl.length ()];
1248 1229
1249 sl << uint8 (0x47) << uint8 (8) << (uint64)player; 1230 sl << uint8 (0x47) << uint8 (4) << (uint32)player;
1250 } 1231 }
1251 1232
1252 if (lastcell.flags != flags) 1233 if (lastcell.flags != flags)
1253 { 1234 {
1254 lastcell.flags = flags; 1235 lastcell.flags = flags;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines