… | |
… | |
159 | { |
159 | { |
160 | if (ob->map && ob->map->path[0]) |
160 | if (ob->map && ob->map->path[0]) |
161 | { |
161 | { |
162 | int flags = 0; |
162 | int flags = 0; |
163 | |
163 | |
164 | if (ob->map->tile_path[0]) |
164 | if (ob->map->tile_path[0]) flags |= 1; |
165 | flags |= 1; |
|
|
166 | if (ob->map->tile_path[1]) |
165 | if (ob->map->tile_path[1]) flags |= 2; |
167 | flags |= 2; |
|
|
168 | if (ob->map->tile_path[2]) |
166 | if (ob->map->tile_path[2]) flags |= 4; |
169 | flags |= 4; |
|
|
170 | if (ob->map->tile_path[3]) |
167 | if (ob->map->tile_path[3]) flags |= 8; |
171 | flags |= 8; |
|
|
172 | |
168 | |
173 | 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", |
174 | 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); |
175 | } |
171 | } |
176 | else |
172 | else |
… | |
… | |
325 | snprintf (bigbuf, MAX_BUF, "mapinfo %s error", token); |
321 | snprintf (bigbuf, MAX_BUF, "mapinfo %s error", token); |
326 | else if (map && map->path[0]) |
322 | else if (map && map->path[0]) |
327 | { |
323 | { |
328 | int flags = 0; |
324 | int flags = 0; |
329 | |
325 | |
330 | if (map->tile_path[0]) |
326 | if (map->tile_path[0]) flags |= 1; |
331 | flags |= 1; |
|
|
332 | if (map->tile_path[1]) |
327 | if (map->tile_path[1]) flags |= 2; |
333 | flags |= 2; |
|
|
334 | if (map->tile_path[2]) |
328 | if (map->tile_path[2]) flags |= 4; |
335 | flags |= 4; |
|
|
336 | if (map->tile_path[3]) |
329 | if (map->tile_path[3]) flags |= 8; |
337 | flags |= 8; |
|
|
338 | |
330 | |
339 | 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); |
340 | } |
332 | } |
341 | else |
333 | else |
342 | snprintf (bigbuf, MAX_BUF, "mapinfo %s nomap", token); |
334 | snprintf (bigbuf, MAX_BUF, "mapinfo %s nomap", token); |
… | |
… | |
611 | { |
603 | { |
612 | case ST_PLAYING: |
604 | case ST_PLAYING: |
613 | LOG (llevError, "Got reply message with ST_PLAYING input state\n"); |
605 | LOG (llevError, "Got reply message with ST_PLAYING input state\n"); |
614 | break; |
606 | break; |
615 | |
607 | |
616 | case ST_CHANGE_CLASS: |
|
|
617 | key_change_class (pl->ob, buf[0]); |
|
|
618 | break; |
|
|
619 | |
|
|
620 | case ST_GET_PARTY_PASSWORD: /* Get password for party */ |
608 | case ST_GET_PARTY_PASSWORD: /* Get password for party */ |
621 | receive_party_password (pl->ob, 13); |
609 | receive_party_password (pl->ob, 13); |
622 | break; |
610 | break; |
623 | |
611 | |
624 | default: |
612 | default: |
… | |
… | |
663 | |
651 | |
664 | cp = strchr (cp + 1, ' '); |
652 | cp = strchr (cp + 1, ' '); |
665 | |
653 | |
666 | if (cp) |
654 | if (cp) |
667 | { |
655 | { |
668 | assign (ns->version, cp + 1); |
656 | ns->version = cp + 1; |
669 | |
657 | |
670 | if (ns->sc_version < 1026) |
658 | if (ns->sc_version < 1026) |
671 | ns->send_packet_printf ("drawinfo %d %s", NDI_RED, |
659 | ns->send_packet_printf ("drawinfo %d %s", NDI_RED, |
672 | "**** VERSION WARNING ****\n**** CLIENT IS TOO OLD!! UPDATE THE CLIENT!! ****"); |
660 | "**** VERSION WARNING ****\n**** CLIENT IS TOO OLD!! UPDATE THE CLIENT!! ****"); |
673 | } |
661 | } |
… | |
… | |
736 | */ |
724 | */ |
737 | void |
725 | void |
738 | send_query (client *ns, uint8 flags, const char *text) |
726 | send_query (client *ns, uint8 flags, const char *text) |
739 | { |
727 | { |
740 | ns->send_packet_printf ("query %d %s", flags, text ? text : ""); |
728 | ns->send_packet_printf ("query %d %s", flags, text ? text : ""); |
|
|
729 | } |
|
|
730 | |
|
|
731 | /** |
|
|
732 | * Get player's current range attack in obuf. |
|
|
733 | */ |
|
|
734 | static void |
|
|
735 | rangetostring (object *ob, char *obuf) |
|
|
736 | { |
|
|
737 | dynbuf_text buf; |
|
|
738 | |
|
|
739 | player *pl = ob->contr; |
|
|
740 | |
|
|
741 | if (pl->ranged_ob) |
|
|
742 | buf << " Range: " << pl->ranged_ob->name; |
|
|
743 | |
|
|
744 | if (pl->combat_ob) |
|
|
745 | buf << " Combat: " << pl->combat_ob->name; |
|
|
746 | |
|
|
747 | if (pl->golem) |
|
|
748 | buf << " Golem: " << pl->golem->name; |
|
|
749 | |
|
|
750 | buf.linearise (obuf); |
|
|
751 | obuf [buf.size ()] = 0; |
741 | } |
752 | } |
742 | |
753 | |
743 | #define AddIfInt64(Old,New,Type) if (Old != New) {\ |
754 | #define AddIfInt64(Old,New,Type) if (Old != New) {\ |
744 | Old = New; \ |
755 | Old = New; \ |
745 | sl << uint8 (Type) << uint64 (New); \ |
756 | sl << uint8 (Type) << uint64 (New); \ |