AngelLoader: The Rest of the Scanner | Programming Talk

Channel:
Subscribers:
3,410
Published on ● Video Link: https://www.youtube.com/watch?v=0LuWWHpw2eM



Duration: 36:33
165 views
14


Witness the awesome detection prowess of the crown jewel of AngelLoader. Heck yeah!

"I thank the Builder that pride is no sin, else of it sinfully proud would I be!" -Father Karras

Corrections:
Broken Triad's miss22.mis does actually appear to be a real .mis file, but some FMs have just garbage data in their dummy .mis files. Or so I recall anyway. Point is, they're not actually used.

Video about the game type scanner: https://www.youtube.com/watch?v=DmxHfbS6eYo

00:00 - Intro
01:36 - Different FM formats: .zip, .7z, uncompressed
02:05 - Two code paths diverge in a yellow wood
03:12 - Performance is messy
03:39 - Cache FM Data: Loop once, do everything
06:59 - .mis files & used .mis files
08:14 - If multiple different titles are found, we keep them all
08:53 - Scan fminfo.xml, fm.ini, mod.ini
10:42 - Cache contents of readme files (converting to plaintext where necessary)
13:02 - Scan Release Date
15:27 - Scan Title from titles.str
21:30 - Scan Title from explicit readme line
22:35 - Scan Title from newgame.str
23:43 - Scan Title from top of readme
25:32 - Scan Author from explicit readme line & top of readme
27:02 - Scan Author: full text scan
27:46 - Scan Author from copyright message
29:32 - Scan Author from explicit readme line but we support a linebreak
30:09 - Scan Author from occur-anywhere "title by author" line (title cross-reference fuzzy-match)
32:02 - String cleanup
33:29 - Languages & language tags
34:35 - We prebake everything we can to avoid the cost of constructing it at run time
35:10 - Final additions to tags
35:30 - That's all folks
35:52 - Bonus: Character encoding detection

-

AngelLoader is a Thief fan mission loader written by myself and designed to look and work like DarkLoader but with modern features and full proper NewDark support.

● Source code: https://github.com/FenPhoenix/AngelLoader
● TTLG thread: https://www.ttlg.com/forums/showthread.php?t=149706