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.76 by root, Wed Mar 14 13:05:30 2007 UTC vs.
Revision 1.79 by root, Thu Mar 15 16:25:45 2007 UTC

132static void 132static void
133clear_map (player *pl) 133clear_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 && 0)
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 158 clear_map (pl);
159 }
160 else if (socket.current_map != ob->map)
161 {
155 clear_map (pl); 162 clear_map (pl);
156 163
157 if (socket.mapinfocmd) 164 if (socket.mapinfocmd)
158 { 165 {
159 if (ob->map && ob->map->path[0]) 166 if (ob->map && ob->map->path[0])
562 * This is what takes care of it. We tell the client how things worked out. 569 * This is what takes care of it. We tell the client how things worked out.
563 * I am not sure if this file is the best place for this function. however, 570 * I am not sure if this file is the best place for this function. however,
564 * it either has to be here or init_sockets needs to be exported. 571 * it either has to be here or init_sockets needs to be exported.
565 */ 572 */
566void 573void
567AddMeCmd (char *buf, int len, client * ns) 574AddMeCmd (char *buf, int len, client *ns)
568{ 575{
576 // face caching is mandatory
577 if (!ns->facecache)
578 {
579 ns->send_drawinfo (
580 "\n"
581 "\n"
582 "***\n"
583 "*** WARNING:\n"
584 "*** Your client does not support face/image caching,\n"
585 "*** or it has been disabled. Face caching is mandatory\n"
586 "*** so please enable it or use a newer client.\n"
587 "***\n"
588 "*** Look at your client preferences:\n"
589 "***\n"
590 "*** CFPlus: all known versions automatically enable the facecache.\n"
591 "*** cfclient: use the -cache commandline option.\n"
592 "*** cfclient: map will not redraw automatically (bug).\n"
593 "*** gcfclient: use -cache commandline option, or enable\n"
594 "*** gcfclient: Client=>Configure=>Map & Image=>Cache Images.\n"
595 "*** jcrossclient: your client is broken, use CFPlus or gcfclient.\n"
596 "***\n"
597 "***\n",
598 NDI_RED
599 );
600
601 if (strstr (ns->version, "jcrossclient"))
602 /* let them, for now*/;
603 else
604 {
605 ns->flush ();
606 //ns->destroy ();
607 }
608 //ns->facecache = true;
609 }
610
569 INVOKE_CLIENT (ADDME, ns, ARG_DATA (buf, len)); 611 INVOKE_CLIENT (ADDME, ns, ARG_DATA (buf, len));
570} 612}
571 613
572/** Reply to ExtendedInfos command */ 614/** Reply to ExtendedInfos command */
573void 615void
681 snprintf (temp, sizeof (temp), "%d", i); 723 snprintf (temp, sizeof (temp), "%d", i);
682 strcat (cmdback, temp); 724 strcat (cmdback, temp);
683 } 725 }
684 726
685 ns->send_packet (cmdback); 727 ns->send_packet (cmdback);
728}
729
730/**
731 * client requested an image. send it rate-limited
732 * before flushing.
733 */
734void
735AskFaceCmd (char *buf, int len, client *ns)
736{
737 ns->askface.push_back (atoi (buf));
686} 738}
687 739
688/** 740/**
689 * Tells client the picture it has to use 741 * Tells client the picture it has to use
690 * to smooth a picture number given as argument. 742 * to smooth a picture number given as argument.
1251 << uint8 (extendedinfos) 1303 << uint8 (extendedinfos)
1252 << uint8 (eentrysize); 1304 << uint8 (eentrysize);
1253 1305
1254 estartlen = esl.length (); 1306 estartlen = esl.length ();
1255 } 1307 }
1256 else
1257 {
1258 /* suppress compiler warnings */
1259 ewhatstart = 0;
1260 ewhatflag = 0;
1261 estartlen = 0;
1262 }
1263 1308
1264 /* x,y are the real map locations. ax, ay are viewport relative 1309 /* x,y are the real map locations. ax, ay are viewport relative
1265 * locations. 1310 * locations.
1266 */ 1311 */
1267 ay = 0; 1312 ay = 0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines