-int
-ef_nbwrite(int type, int id, void *ptr)
-{
- register struct empfile *ep;
- register int r;
-
- if (ef_check(type) < 0)
- return 0;
- ep = &empfile[type];
- if (id > 65536) {
- /* largest unit id; this may bite us in large games */
- logerror("ef_nbwrite: %s id %d is too large!\n", ep->name, id);
- return 0;
- }
- if ((r = lseek(ep->fd, id * ep->size, 0)) < 0) {
- logerror("ef_nbwrite: %s #%d lseek(%d, %d, 0) -> %d",
- ep->name, id, ep->fd, id * ep->size, r);
- return 0;
- }
- if (ep->prewrite)
- ep->prewrite(id, ptr);
- if ((r = write(ep->fd, ptr, ep->size)) != ep->size) {
- logerror("ef_nbwrite: %s #%d write(%d, %x, %d) -> %d",
- ep->name, id, ep->fd, ptr, ep->size, r);
- return 0;
- }
- ef_zapcache(type);
- if (id >= ep->fids) {
- /* write expanded file; ep->fids = last id + 1 */
- ep->fids = id + 1;
- }
- return 1;
-}
-#endif
-