FenPhoenix on 6/1/2019 at 19:39
AngelLoader doesn't suffer from the DarkLoader game detection problem. DarkLoader detects game type by scanning .mis files for the string "SKYOBJVAR". It used to be that only Thief 2 missions would have that string, so it worked fine. But with NewDark, all missions have that string, which is why DarkLoader thinks every NewDark mission is for Thief 2. AngelLoader is running a different and more accurate scan, which is 100% accurate as tested over my 1,098-mission test set, plus my own personal mission collection as well (442 missions, most of them probably duplicates of ones in the test set but a few that aren't in there). Not a single FM's game type has been misdetected.
GORT on 6/1/2019 at 20:17
This is looking pretty awesome. Really liking the options here and how quick it reads the FMs (especially ones in the Gigabyte range). One thing I've noticed about the read me in "An Enigmatic Treasure with a Recondite Discovery". Those images should be scaled and faded in the background behind the text. It's not the programs fault. The read me was done in the current Microsoft Word. I should've checked it in Wordpad for compatibility.
FenPhoenix on 6/1/2019 at 22:05
Oh, well thanks for pointing it out anyway. A quick test with a WPF RichTextBox control shows it doesn't display it right either. Must be a feature specific to Microsoft Word and not part of the official RTF spec, I guess?
I would actually fix this if I could, because I'm picky, but oh well.
R Soul on 15/1/2019 at 23:19
All is forgiven Fen. I understand your explanation.
7z files can be accessed quickly if the FM author makes the archive in two stages. I don't think the order matters, but in one stage most of the files are added, and in the second stage things like titles.str and missflag.str (and other things scanned during the 'get all info' operation) are added.
baeuchlein on 19/1/2019 at 17:13
R Soul, AFAIK order does matter in .7z archives. One disadvantage of the .7z file format is that you cannot access a file in the middle or at the end of the archive immediately, but have to decompress everything before that file and throw the results away.
For example, if an FM author creates a large campaign and puts an info file (e.g., FMInfo.rtf) into it as well as an fm.ini file (which may contain the name, creation date and tags displayed by FMSel), and puts these two files at the end of the .7z archive (by compressing everything else first), the player will first notice a delay when starting FMSel for the first time after that. FMSel now has to decompress the whole .7z archive (and throw away most of the results) to get to the fm.ini file and read the name, date and tags of the campaign. When it is finally done, the player may wish to read the info file to decide whether he/she wants to play that campaign or not. Again, FMSel has to decompress almost the whole archive to get to FMInfo.rtf and display it. And if the player then decides to play the campaign, FMSel will decompress the whole archive a third time in order to make it playable... and the player is probably asleep before the computer by that time.:p
If, however, fm.ini and FMInfo.rtf (in this example) are added to a newly created .7z archive first, and then everything else, FMSel will only have to read the very first part of the archive when "seeing" the mission for the first time (and scanning the archive), as well as when the info file is to be displayed. Full decompression will then only take place when the player installs the mission.
As far as I know, this is not a fault of FMSel, but rather a disadvantage of .7z. To my knowledge, .zip archives can be read differently, and can be scanned much faster by FMSel. Depending on how NewDarkLoader (and AngelLoader) deal with the contents of an archive, they may suffer from the same problem to some degree.
I also do not know whether fm.ini and the FM info file are the only ones scanned by FMSel (or any other non-ancient FM loader). Most likely, FMSel looks into several directories/folders inside archives if it does not find an info file in the root directory, meaning that a very long delay could happen if there just is no info file in the whole campaign. Furthermore, since one can also define which info file should be displayed in FMSel, it may as well mean another long delay if there's no fm.ini file either.
What I do know is that if fm.ini and an info file (defined in fm.ini as well) are placed in the root directory of the FM, and then also added to the newly created (!) .7z archive first, long delays are usually avoided. It may also be the case that other .cfg and .osm files in the FM's root directory should be added first as well, but I did not verify that. I usually pack fm.ini, the info files, all .osm and .cfg files of the root directory into the new archive first, and then everything else. Seems to work well so far.
Your mileage may vary, especially if another FM loader handles the scanning process differently.
If one just tells 7-Zip to compress everything in the FM folder into the FM archive, 7-Zip may not place the relevant files near the beginning of the archive, causing delays when accessing the FM archive by an FM loader later on. This is why it may be desirable to control which file gets compressed first.
GORT, you may be right with your idea on the info file problem with "An Enigmatic Treasure with a Recondite Discovery". When I open that .RTF file in Libre Office, it displays yet another variant: The pictures are scaled so that they just fit onto the page, and then the text is placed behind the pictures. A disaster for readability, I'm afraid. Apparently, that feature of .RTF files is interpreted differently by several programs. -sigh-
PsymH on 20/1/2019 at 08:33
@baeuchlein: This happens only if you choose "solid compression" or any solid block size.
FenPhoenix on 20/1/2019 at 19:43
It's true you can tell 7-zip to make an archive non-solid, but because solid is the default and the Add To Archive window has enough options to probably make most people just go "meh, I'll just go with these", I would assume most .7z files will be solid. Due to the reasons baeuchlein has mentioned, AngelLoader just does a full extract when it scans .7z files, because at least then the time spent has a known maximum, whereas if I just seek for 5+ different files in the archive one-at-a-time, it's quite possible the data I would have to decompress and throw away to do so would amount to more than just decompressing the whole thing once. I also plan to implement a special case for .7z files where it copies any cachable data (readme files, etc.) directly from the temp extract folder after the scan, so it doesn't have to do another temp extract when it goes to cache the readme. As far as installing the FM, though, I'm thinking I'll have to let it do a second extract, because if I cached the whole thing in anticipation that the user might install it, that would be taking up a potentially very large amount of disk space (non-temporarily) without the user's knowledge, and that seems like bad form to me.
I should note that I've actually only come across one .7z FM so far: Waterfront Racket. And even then there seems to be a version floating around that's a .zip. So I don't really know how popular .7z is or will be, given it's been supported since NewDark and almost no one has used it. RAR too, but I don't know of an FMs at all that use that. So, I'll support them, but yeah. shrug
Stingm on 4/4/2019 at 23:54
This looks really nice but I do have a question. I currently use newdarkloader and have notes by each fan mission that specify if its part of a campaign and which mission to play next. Is there any way to transfer this to Angeloader or will I have to do it all again manualy?