it should be fairly easy to rewrite the installer to work the correct way and Install the files in the correct order. This should also make it feasable to write the Disk Prompt and have it in the right location as it will traverse the Install media in the correct order. I'm going to work on it this weekend some time, but I'll need help cleaning up my code to make it wine worthy as this will be my first attempt at a patch. Here is some pseudo code, explaining how I think it should work. Let me know if I'm wrong or you have any suggestions.
In InstallFiles() it will need to execute step 1 and create the folders as it currently does.
Then for step 2 do the following -
1. initialize the DiskId to 1. Initialize the previous diskId-lastSequence to 0.
2. Query the total number or DiskIds from the media table.
3. Loop through DiskId until Total Disk Id is reached.
foreach ( DiskId ) { select * from media where DiskId == DiskId initialize LastSequence to that of LastSequence column in Media Table cabinet = cabinet column
print out, changing media to "Name of Cabinet" - Disk Prompt Here for the current DiskId check to make sure the lastSequence is > previous diskId sequence
if ( lastSequence < previousDiskIdSeq ) { DiskId++ } else { Here call a function to iterate current install Medium IterateInstallMedia(LastSeq, cabinet); --in this function select * from file table where Sequence < lastSequence order by Sequence
then iterate through the file table for the current install medium and extract the files from the cabinet and copy files.
}
DiskId++;
}