--- deliantra/server/socket/loop.C 2007/04/02 19:56:11 1.44 +++ deliantra/server/socket/loop.C 2007/04/03 00:21:38 1.45 @@ -172,7 +172,15 @@ if (update_look) esrv_draw_look (pl->ob); - if (askface.empty ()) + if (partial_face_ofs) + { + } + + if (partial_face_ofs) + { + // one hell of a big thing that must be + } + else if (askface.empty ()) { // regularly send a new face when queue is empty if (bg_scrub && !--bg_scrub && enable_bg_scrub) @@ -182,6 +190,8 @@ if (!faces_sent [scrub_idx]) { send_face (scrub_idx); + flush_fx (); + bg_scrub = 1; // send up to one face per tick, unless an image was requested break; } @@ -201,25 +211,24 @@ // if we can split images, transfer up to mss packets if possible if (fxix) avail += mss - (ol % mss); - fprintf (stderr, "ra %6d a %6d ", rate_avail, avail); - while (!askface.empty () && avail > 0) { // use a lifo to send most recently requested images - faceidx face = askface.back (); + faceidx facenum = askface.back (); askface.pop_back (); - send_image (face); - - bg_scrub = BG_SCRUB_RATE; + if (fxix && 0) + { + } + else + send_image (facenum); int consumed = ol - outputbuffer_len (); avail -= consumed; rate_avail -= consumed; - } - - fprintf (stderr, "ra %6d a %6d\n", rate_avail, avail); + bg_scrub = BG_SCRUB_RATE; + } } }