Here’s the current state of things:
- I’ve written an abstraction layer that allows for multiple file access “drivers”. This means one driver for Unix-style FILE* files, and another for the methods in common/savefile.h and common/file.h
- The ScummVM file driver is finished. The UNIX one is mostly done, but I’m still trying to figure out how to have it deal with some of the path information. The driver is defined in engine/sci/src/include/file_handler.h and file_driver.h, and the actual driver and implementation are in engine/sci/src/scicore/file_handler.c and scumm_file_driver.c.
- The FILE* invocations scattered throughout the FreeSCI source have been replaced with calls to the driver. There are a few exceptions to this, but as far as I can tell none are very critical.
- There’s now a sequencer that uses ScummVM’s Adlib midi driver, and a midi device that uses ScummVM for output. The instrument setup in these is unfinished.
I was hoping to be done with files and audio at the beginning of this week, but the time spent making the file handling modular has put us somewhat behind schedule. The revised plan is to put in overtime and finish all the File/Audio stuff within the next three days, bundle the finished product as a stable build, and then compress the next step (configuration file management) from fourteen days to nine or ten. This should put us back on track by the time midterm evals roll around. We also have three weeks of general-purpose “debug and test” time at the end of the schedule to work with.