--- deliantra/server/socket/image.C 2007/07/29 19:11:47 1.52 +++ deliantra/server/socket/image.C 2007/07/31 20:08:21 1.53 @@ -422,20 +422,22 @@ sl.printf ("replyinfo image_sums %d %d ", start, stop); for (int i = start; i <= stop && i < faces.size (); i++) - { - ns->faces_sent[i] = true; + if (const faceinfo *f = face_info (i)) + if (ns->fx_want [f->type]) + { + ns->faces_sent[i] = true; + + const facedata *d = f->data (ns->faceset); + + if (sl.room () < 2 + 4 + 1 + d->data.size () + 1) + break; + + sl << uint16 (i) + << uint32 (0) // checksum + << uint8 (ns->faceset); - const facedata *d = face_data (i, ns->faceset); - - if (sl.room () < 2 + 4 + 1 + d->data.size () + 1) - break; - - sl << uint16 (i) - << uint32 (0) // checksum - << uint8 (ns->faceset); - - print_facename (sl, *d); sl << uint8 (0); - } + print_facename (sl, *d); sl << uint8 (0); + } /* It would make more sense to catch this pre-emptively in the code above. * however, if this really happens, we probably just want to cut down the