… | |
… | |
132 | static void |
132 | static void |
133 | clear_map (player *pl) |
133 | clear_map (player *pl) |
134 | { |
134 | { |
135 | memset (&pl->ns->lastmap, 0, sizeof (pl->ns->lastmap)); |
135 | memset (&pl->ns->lastmap, 0, sizeof (pl->ns->lastmap)); |
136 | |
136 | |
|
|
137 | pl->ns->force_newmap = false; |
|
|
138 | |
137 | if (pl->ns->newmapcmd == 1) |
139 | if (pl->ns->newmapcmd == 1) |
138 | pl->ns->send_packet ("newmap"); |
140 | pl->ns->send_packet ("newmap"); |
139 | |
141 | |
140 | pl->ns->floorbox_reset (); |
142 | pl->ns->floorbox_reset (); |
141 | } |
143 | } |
… | |
… | |
146 | { |
148 | { |
147 | client &socket = *pl->ns; |
149 | client &socket = *pl->ns; |
148 | object *ob = pl->ob; |
150 | object *ob = pl->ob; |
149 | char buf[MAX_BUF]; /* eauugggh */ |
151 | char buf[MAX_BUF]; /* eauugggh */ |
150 | |
152 | |
151 | if (socket.current_map != ob->map) |
153 | if (socket.force_newmap) |
152 | { |
154 | { |
|
|
155 | // force newmap is used for clients that do not redraw their map |
|
|
156 | // after image uploads. |
153 | socket.current_map = ob->map; |
157 | socket.current_map = ob->map; |
154 | |
|
|
155 | clear_map (pl); |
158 | clear_map (pl); |
|
|
159 | } |
|
|
160 | else if (socket.current_map != ob->map) |
|
|
161 | { |
|
|
162 | clear_map (pl); |
|
|
163 | socket.current_map = ob->map; |
156 | |
164 | |
157 | if (socket.mapinfocmd) |
165 | if (socket.mapinfocmd) |
158 | { |
166 | { |
159 | if (ob->map && ob->map->path[0]) |
167 | if (ob->map && ob->map->path[0]) |
160 | { |
168 | { |
… | |
… | |
576 | "*** WARNING:\n" |
584 | "*** WARNING:\n" |
577 | "*** Your client does not support face/image caching,\n" |
585 | "*** Your client does not support face/image caching,\n" |
578 | "*** or it has been disabled. Face caching is mandatory\n" |
586 | "*** or it has been disabled. Face caching is mandatory\n" |
579 | "*** so please enable it or use a newer client.\n" |
587 | "*** so please enable it or use a newer client.\n" |
580 | "***\n" |
588 | "***\n" |
581 | "*** I will proceed as if face caching were enabled.\n" |
589 | "*** Look at your client preferences:\n" |
582 | "\n" |
590 | "***\n" |
|
|
591 | "*** CFPlus: all known versions automatically enable the facecache.\n" |
|
|
592 | "*** cfclient: use the -cache commandline option.\n" |
|
|
593 | "*** cfclient: map will not redraw automatically (bug).\n" |
|
|
594 | "*** gcfclient: use -cache commandline option, or enable\n" |
|
|
595 | "*** gcfclient: Client=>Configure=>Map & Image=>Cache Images.\n" |
|
|
596 | "*** jcrossclient: your client is broken, use CFPlus or gcfclient.\n" |
|
|
597 | "***\n" |
583 | "***\n", |
598 | "***\n", |
584 | NDI_RED |
599 | NDI_RED |
585 | ); |
600 | ); |
|
|
601 | |
|
|
602 | if (strstr (ns->version, "jcrossclient")) |
|
|
603 | /* let them, for now*/; |
|
|
604 | else |
|
|
605 | { |
|
|
606 | ns->flush (); |
|
|
607 | //ns->destroy (); |
|
|
608 | } |
586 | //ns->facecache = true; |
609 | //ns->facecache = true; |
587 | } |
610 | } |
588 | |
611 | |
589 | INVOKE_CLIENT (ADDME, ns, ARG_DATA (buf, len)); |
612 | INVOKE_CLIENT (ADDME, ns, ARG_DATA (buf, len)); |
590 | } |
613 | } |