Jump to content
The Dark Mod Forums

FenPhoenix

Member
  • Posts

    54
  • Joined

  • Days Won

    8

FenPhoenix last won the day on November 29 2023

FenPhoenix had the most liked content!

Reputation

134 Excellent

4 Followers

About FenPhoenix

  • Birthday 05/14/1986

Profile Information

  • Gender
    Male
  • Location
    Canada

Recent Profile Visitors

1888 profile views
  1. I've opened a github issue https://github.com/FenPhoenix/AngelLoader/issues/117
  2. Public release v1.7.6 (with Dark Mod support) is out. Improvements since the final beta 14 are: Fixed a few remaining bugs with zip/pk4 support. Game Versions window now properly displays TDM version. Import window no longer has a vestigial off-screen TDM field (because TDM doesn't need or support importing). Web search option is now disabled if an unknown/unsupported FM is selected. If an FM with an unknown or unsupported game type is selected, the messages in the tab area now no longer refer to Thief 3 ("Mod management is not supported for Thief: Deadly Shadows"). The full changelog can be viewed at the release link. The de facto official AngelLoader thread is here: https://www.ttlg.com/forums/showthread.php?t=149706 Bug reports, feature requests etc. are usually posted there. I'll continue following this thread though. Thanks everyone and enjoy!
  3. Here's the latest beta. I feel like this is about ready for a public release at this point. If no one has any bug reports or anything, and if I don't find any issues in the next few days, I'll start preparing the first public release. Beta 14 Matching game behavior on a bunch of subtler points. None of the below scenarios are likely to occur, but it's best to be able to handle them. TDM auto-converts FM file names to a valid form (lowercase, replacing disallowed chars with underscores, etc.). AngelLoader is now able to match non-converted FM names to their converted counterparts, so it knows for example "BaKerY;job.pk4" is the FM "bakery_job". TDM doesn't care what the pk4 inside an fm's folder is called. So "C:\darkmod\fms\bakery_job\bakery_job.pk4" will load just as well as "C:\darkmod\fms\bakery_job\totally_different_name.pk4". AngelLoader is now aware of this during scans and will not require the in-fm-folder pk4's name to match the FM's. TDM supports compressed FMs with the .zip extension as well as .pk4 when the FM is in the base FMs dir (hasn't been moved yet). AngelLoader is now aware of this, and of the priority order of the two extensions, and will choose the correct file when scanning/loading. In Settings -> Paths, the Backup Path area has been polished a bit. In Settings -> Appearance -> Show or hide interface elements, the checkboxes are now "Show" instead of "Hide", to be more straightforward. When scanning, the progress box will now show a message that it's getting TDM FM data from the server if it's doing so, rather than the more generic "preparing scan" message.
  4. Beta 13 More robust TDM file reading attempts: we now try until we can access them or until a 5 second timeout If a TDM file is not found at all, we now continue immediately and don't wait the 5 seconds Rework auto-refresh system to be simpler and more robust: Refreshes run completely on the UI thread now Refreshes happen immediately or not at all; no more deferred refreshes Refreshes are not allowed when the main window is blocked or disabled (mostly if a progress box is up) If a dialog window is open (Settings, About, etc.) then a "lightweight" refresh (UI update only) is allowed, but a "heavyweight" refresh (FM list reload, possible scan and/or readme cache update) is not. Remove installed status from unavailable TDM FMs (those not found on disk) Gracefully handle scenarios where some or all watched TDM files or directories may not exist (clean install, partially broken install etc.) Ignore empty or invalid FM dirs (dirs with no pk4 files in them; TDM clean installs may add an empty "saintlucia" folder for example)
  5. Yeah, there's the last played date, but there's no (reliable) way to know if you actually completed the game on that date. What I mean by "no reliable way" is that the following would have to occur for the last completed date to be accurate: AngelLoader is running. You're playing an FM (say, Iris) on a difficulty you have not completed yet (say, Expert). You complete the FM, the game marks it as "completed on Expert" and writes that out to missions.tdminfo. AngelLoader detects the change to missions.tdminfo, reads it, and compares to its internal list. It sees that Iris' finished states differ between the internal database and missions.tdminfo: the latter has Expert marked, whereas the internal database only has Normal marked (or nothing, or whatever). It adds the Expert finished state to the internal database for Iris, and updates the UI. Because it catches every modification of this file and updates its internal database every time, it knows the difference in finished states occured on the most recent write. Thus, it could timestamp this and there's your last completed date. Unreliabilities: If AngelLoader were not running when the game writes the value out, then you have no guarantee of time anymore. Not only were you not there to catch the change event, but the file's last-write-time doesn't save you either: the file could have been modified any number of times (updating any number of FMs' entries) since the time of the updating of the actual FM you completed, and individual entries are not marked with the time of their finished state change. So if multiple FMs were finished between AngelLoader runs? Even if you went with the file timestamp, that's still only one. If you finished two FMs between AL runs, any information whatsoever about the time of completion of the first one is completely lost. Same if the game simply wrote over the file with unchanged data, that would lose your correct file timestamp too. If you finished an FM on a difficulty you have finished before, then the game will simply write out the same value resulting in no change to the FM entry in missions.tdminfo. AngelLoader will still detect the file modification and will still read and compare the file, but now no differences will be found, so it's impossible for it to know whether any FM's finished state has been changed, and thus it can't know whether you finished it that run or not, and can't datestamp it. The last finished dates of any FMs you completed before you set up AngelLoader are unknowable, period. It might be the last played date but it just as well might not be. We'd end up with a mishmash of correct data and guesses that may just as well be wrong as right. If you can't trust the data then I'm not convinced it's that useful.
  6. Yeah, a last completed date would be something the game would have to implement (and write it out to missions.tdminfo). Apart from that, there's no reliable way for AngelLoader to know it. Beta 12 Fixed: the first "refresh from disk" trigger from TDM would be ignored, due to spurious refreshes being queued on startup and then never run, thus not having the refresh level value reset. In the Settings window, if a setting was changed that required a view refresh (game paths etc.), the filters would lose their state after the refresh. Dark Mod FM scans now show a progress box with a cancel button, because it's theoretically possible for the server data download to take some unboundedly large amount of time (highly unlikely, but covering the edge cases). Title filter searches now also search TDM "archive" names, same as for the other games. The DarkLoader Import window will now disable the Import Saves checkbox if no backup path has been specified, and shows a link to go to the Settings window where you can specify a backup path.
  7. Beta 11 Fix finished-on state auto-update was unreliable Slighty improve scanner title/author detect Tags are now named some whatever regular-version-looking thing to force GitHub to put the newest at the top
  8. In-app downloading is turning out to be a lot more troublesome than I thought, and some of the auto-detection of stuff the game does is more troublesome than I thought too. So I'm thinking I could just make the first public release sans downloader and then take my time to develop something nice. Anyway, new beta. Beta 10 Auto-update finished difficulty when an FM is finished in-game. If AngelLoader doesn't have a last-played date already, it will pull it from TDM's database. But if it has its own, it will use that, because it's more granular (TDM's only goes down to the day). Sorting for the Archive column for TDM FMs now works correctly. "Play Without FM" for TDM now deselects any selected FM before running it. Don't know, just seemed cleaner. Think of a like a roundabout "download missions" button where you can go in-game with no FM and download some, I dunno. Added support for detecting in-place updated FMs, but only scan on next startup due to race condition with the pk4 Removed support for auto-refreshing on pk4 add, because the game adds pk4s individually to the fms dir before moving them to their own dirs, and we were trying to scan with each one (and failing due to locks and such)
  9. Beta 8 Some fixes... Selected TDM FM was not updated on refresh from disk. Selected TDM FM was not updated if the FM was deselected in-game. An optimization was broken which caused a refresh from disk even when unnecessary. We no longer pass the FM as an argument to the game, but rather simply write it out to currentfm.txt. This avoids an issue where if you pass an FM as an argument to the game (+set fs_currentfm some_fm), then you deselect the FM or select another one, upon game restart it will re-select the FM you initially passed, thus effectively preventing any change of selection unless you quit and start again manually.
  10. Anyway, Linux is backburner until I get TDM support release-ready and an AL public release is out. AL on Linux would be awkwardly in between worlds, supporting 4 games that must run on Wine, and one game that's native. That sounds like a headache any way you look at it. I know some people have been able to run AL on Wine, but from screenshots I've seen it doesn't even look right, some of the GDI drawn stuff looks janky without the high quality scaled filter it's supposed to have, and dark mode doesn't fully work either afaik, etc. So I don't think AL on Wine is that great a solution in the first place, even if it could interface with native TDM. Now, AL as it stands is stuck on Windows - and WinForms at that - because of the need for the RichTextBox (WinForms has the only acceptably performing one). Making a native Linux version would need a cross-platform UI, so Avalonia or something else as long as it does theming and a virtualizable datagrid I guess. And then I would have to remove rtf support for that version, and then interface with Wine for Thief but native for TDM. Like I said, sounds like a huge headache. However, a separate Linux app that only supports TDM but otherwise has all of AL's functionality would be MUCH simpler to make. AL's code is already modern-.NET-ready except for the UI, so I would "just" have to learn Avalonia or whatever, and then simply copy AL's code wholesale and rip out anything not TDM-related (which is a large portion of it). That would lessen the "one-stop shop" factor, but would still be way more feature-rich than the in-game mission manager. But that's for the future if I feel like taking it on. For now, I'm just going to get TDM working at a public release level for AngelLoader and offer my sincere apologies to Linux users.
  11. No mention of anything else, and Those are C++ compilers. No mention of .NET anywhere on the page either.
  12. That's only for native C and C++ I guess.
  13. Beta 7 TDM FM Scanner now uses a hybrid of local and server data for more accuracy. Titles, authors, and release dates improve. AngelLoader will auto-refresh its FMs list when new pk4 FMs are added manually. Localization packs (*_l10n.pk4) in the fms directory are now ignored: the game moves these to their appropriate folders on next start. I reckon this is now pretty usable. I'm working on an in-app downloader, but until that's done, you can use the game to download FMs and AngelLoader to launch them and manage their metadata.
  14. Actually I'd already figured that part out from the source code and a bit of trial-and-error, but thanks nonetheless! I do have one question. The tdm_mission_list_urls cvar has two urls: http://missions.thedarkmod.com/get_available_missions.php http://missions.thedarkmod.com/available_missions.xml They both appear to lead to the exact same xml file, except the first one has an xml header and the second one doesn't. From looking at the code it seems like it tries them in order. Should I be doing this too? Are they just mirrors and one might be down? Since they're both on the same domain it seems odd they'd be mirrors, surely if one was down the other would be too, but I dunno.
×
×
  • Create New...