… | |
… | |
229 | if (!(pl->contr->socket->faces_sent[empty_face->number] & NS_FACESENT_FACE)) |
229 | if (!(pl->contr->socket->faces_sent[empty_face->number] & NS_FACESENT_FACE)) |
230 | esrv_send_face (pl->contr->socket, empty_face->number, 0); |
230 | esrv_send_face (pl->contr->socket, empty_face->number, 0); |
231 | |
231 | |
232 | if (pl->contr->socket->look_position) |
232 | if (pl->contr->socket->look_position) |
233 | { |
233 | { |
|
|
234 | char buf[80]; |
|
|
235 | snprintf (buf, 80, "Apply this to see %d previous items", NUM_LOOK_OBJECTS); |
|
|
236 | |
234 | sl << uint32 (0x80000000 | (pl->contr->socket->look_position - NUM_LOOK_OBJECTS)) |
237 | sl << uint32 (0x80000000 | (pl->contr->socket->look_position - NUM_LOOK_OBJECTS)) |
235 | << uint32 (0) |
238 | << uint32 (0) |
236 | << sint32 (-1) |
239 | << sint32 (-1) |
237 | << uint32 (empty_face->number); |
240 | << uint32 (empty_face->number) |
238 | |
241 | << data8 (buf) |
239 | sl.printf ("Click here to see %d previous items", NUM_LOOK_OBJECTS); |
|
|
240 | |
|
|
241 | sl << uint16 (0) |
242 | << uint16 (0) |
242 | << uint8 (0) |
243 | << uint8 (0) |
243 | << uint32 (0); |
244 | << uint32 (0); |
244 | |
245 | |
245 | if (pl->contr->socket->itemcmd == 2) |
246 | if (pl->contr->socket->itemcmd == 2) |
246 | sl << uint16 (0); |
247 | sl << uint16 (0); |
… | |
… | |
270 | * we notice the special tag the object has, and act accordingly. |
271 | * we notice the special tag the object has, and act accordingly. |
271 | */ |
272 | */ |
272 | sl << uint32 (0x80000000 | (pl->contr->socket->look_position + NUM_LOOK_OBJECTS)) |
273 | sl << uint32 (0x80000000 | (pl->contr->socket->look_position + NUM_LOOK_OBJECTS)) |
273 | << uint32 (0) |
274 | << uint32 (0) |
274 | << uint32 ((uint32) - 1) |
275 | << uint32 ((uint32) - 1) |
275 | << uint32 (empty_face->number); |
276 | << uint32 (empty_face->number) |
276 | |
277 | << data8 ("Apply this to see next group of items") |
277 | sl.printf ("Click here to see next group of items"); |
|
|
278 | |
|
|
279 | sl << uint16 (0) |
278 | << uint16 (0) |
280 | << uint8 (0) |
279 | << uint8 (0) |
281 | << uint32 (0); |
280 | << uint32 (0); |
282 | |
281 | |
283 | if (pl->contr->socket->itemcmd == 2) |
282 | if (pl->contr->socket->itemcmd == 2) |
284 | sl << uint16 (0); |
283 | sl << uint16 (0); |
… | |
… | |
294 | add_object_to_socklist (*pl->contr->socket, sl, head); |
293 | add_object_to_socklist (*pl->contr->socket, sl, head); |
295 | got_one++; |
294 | got_one++; |
296 | |
295 | |
297 | if (sl.length () >= (MAXSOCKBUF - MAXITEMLEN)) |
296 | if (sl.length () >= (MAXSOCKBUF - MAXITEMLEN)) |
298 | { |
297 | { |
299 | Send_With_Handling (pl->contr->socket, &sl); |
298 | pl->contr->socket->send_packet (sl); |
300 | |
299 | |
301 | sl.reset (); |
300 | sl.reset (); |
302 | sl.printf ("item%d ", pl->contr->socket->itemcmd); |
301 | sl.printf ("item%d ", pl->contr->socket->itemcmd); |
303 | sl << uint32 (0); |
302 | sl << uint32 (0); |
304 | got_one = 0; |
303 | got_one = 0; |
305 | } |
304 | } |
306 | } /* If LOOK_OBJ() */ |
305 | } /* If LOOK_OBJ() */ |
307 | } |
306 | } |
308 | |
307 | |
309 | if (got_one) |
308 | if (got_one) |
310 | Send_With_Handling (pl->contr->socket, &sl); |
309 | pl->contr->socket->send_packet (sl); |
311 | |
310 | |
312 | } |
311 | } |
313 | |
312 | |
314 | /** |
313 | /** |
315 | * Sends whole inventory. |
314 | * Sends whole inventory. |
… | |
… | |
321 | int got_one = 0; |
320 | int got_one = 0; |
322 | |
321 | |
323 | packet sl; |
322 | packet sl; |
324 | |
323 | |
325 | sl.printf ("delinv %d", op->count); |
324 | sl.printf ("delinv %d", op->count); |
326 | Send_With_Handling (pl->contr->socket, &sl); |
325 | pl->contr->socket->send_packet (sl); |
327 | |
326 | |
328 | sl.reset (); |
327 | sl.reset (); |
329 | sl.printf ("item%d ", pl->contr->socket->itemcmd); |
328 | sl.printf ("item%d ", pl->contr->socket->itemcmd); |
330 | |
329 | |
331 | sl << uint32 (op->count); |
330 | sl << uint32 (op->count); |
… | |
… | |
349 | * items (especially with some of the bags out there) to |
348 | * items (especially with some of the bags out there) to |
350 | * overflow the buffer. IF so, send multiple item commands. |
349 | * overflow the buffer. IF so, send multiple item commands. |
351 | */ |
350 | */ |
352 | if (sl.length () >= (MAXSOCKBUF - MAXITEMLEN)) |
351 | if (sl.length () >= (MAXSOCKBUF - MAXITEMLEN)) |
353 | { |
352 | { |
354 | Send_With_Handling (pl->contr->socket, &sl); |
353 | pl->contr->socket->send_packet (sl); |
355 | |
354 | |
356 | sl.reset (); |
355 | sl.reset (); |
357 | sl.printf ("item%d ", pl->contr->socket->itemcmd); |
356 | sl.printf ("item%d ", pl->contr->socket->itemcmd); |
358 | sl << uint32 (op->count); |
357 | sl << uint32 (op->count); |
359 | got_one = 0; |
358 | got_one = 0; |
360 | } |
359 | } |
361 | } /* If LOOK_OBJ() */ |
360 | } /* If LOOK_OBJ() */ |
362 | } |
361 | } |
363 | |
362 | |
364 | if (got_one) |
363 | if (got_one) |
365 | Send_With_Handling (pl->contr->socket, &sl); |
364 | pl->contr->socket->send_packet (sl); |
366 | |
365 | |
367 | } |
366 | } |
368 | |
367 | |
369 | /** |
368 | /** |
370 | * Updates object *op for player *pl. |
369 | * Updates object *op for player *pl. |
… | |
… | |
488 | } |
487 | } |
489 | |
488 | |
490 | if (flags & UPD_NROF) |
489 | if (flags & UPD_NROF) |
491 | sl << uint32 (op->nrof); |
490 | sl << uint32 (op->nrof); |
492 | |
491 | |
493 | Send_With_Handling (pl->contr->socket, &sl); |
492 | pl->contr->socket->send_packet (sl); |
494 | } |
493 | } |
495 | |
494 | |
496 | /** |
495 | /** |
497 | * Sends item's info to player. |
496 | * Sends item's info to player. |
498 | */ |
497 | */ |
… | |
… | |
524 | |
523 | |
525 | sl << uint32 (op->env ? op->env->count : 0); |
524 | sl << uint32 (op->env ? op->env->count : 0); |
526 | |
525 | |
527 | add_object_to_socklist (*pl->contr->socket, sl, op); |
526 | add_object_to_socklist (*pl->contr->socket, sl, op); |
528 | |
527 | |
529 | Send_With_Handling (pl->contr->socket, &sl); |
528 | pl->contr->socket->send_packet (sl); |
530 | SET_FLAG (op, FLAG_CLIENT_SENT); |
529 | SET_FLAG (op, FLAG_CLIENT_SENT); |
531 | |
530 | |
532 | } |
531 | } |
533 | |
532 | |
534 | /** |
533 | /** |
… | |
… | |
542 | packet sl; |
541 | packet sl; |
543 | |
542 | |
544 | sl << "delitem " |
543 | sl << "delitem " |
545 | << uint32 (tag); |
544 | << uint32 (tag); |
546 | |
545 | |
547 | Send_With_Handling (pl->socket, &sl); |
546 | pl->socket->send_packet (sl); |
548 | } |
547 | } |
549 | |
548 | |
550 | |
549 | |
551 | /******************************************************************************* |
550 | /******************************************************************************* |
552 | * |
551 | * |