Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated compatibility checker #699

Draft
wants to merge 24 commits into
base: master
Choose a base branch
from

Conversation

originalfoo
Copy link
Member

@originalfoo originalfoo commented Feb 13, 2020

Work in progress. So far it just logs some stuff to TMPE.log - still got to do all the UI work which will probably take longest.

Once complete....

Fixes #697 :

  • Handle --continuelastsave launch option:
  • > - Turn it off, but remember if it was set
  • > - Only if no compatibility issues found, load last save if applicable
  • Decruft LoadingExtension by moving game version checks to new CompatibilityManager

Fixes #608 :

  • Incompatible mods list moved in to .cs file; old incompatible_mods.txt resource removed
  • Items in list now specify a Severity enum
  • Severity enum allows better decision making:
  • > - Critical items will always be scanned and must be completely unsubscribed
  • > - Major and Minor items only scanned if enabled
  • > - Minor items can be ignored at user discretion
  • Updated mods list logger to include Severity markers and counts
  • Duplicate and zombie assembly detection
  • > - If duplicates are found, user asked to choose which to use
  • > - If zombies are found, user will be notified
  • > - In both cases, exit to desktop required to flush unwanted stuff from RAM
  • More granular error catching and reporting

Fixes #439 :

  • Will exit to desktop (if necessary) after making changes to any mods
  • Disabled mods not scanned by default as Severity enum can be used to override that for Critical conflicts

Fixes #700 :

  • List relevant DLC status in TMPE.log

Updates #724 & UI:

  • Translate the game version warning
  • Mod remover UI (delete vs. disable)
  • Assembly chooser UI
  • Updates to global settings and translations
  • Exit to desktop UI?

Fixes #719 :

  • Include camera scripts in mod checking loop

Fixes #727 :

  • Skip compatibility checks during in-game hot reloads

New incompatible mods added:

Fixes #36
Fixes #149
Fixes #190

Currently broken, just committing as I've been having lots of power cuts and want to put this somewhere safe.
@originalfoo originalfoo added EXTERNAL Mod conflict or other external factor COMPATIBILITY Mod (in)compatibility / checker labels Feb 13, 2020
@originalfoo originalfoo added this to the 11.2 milestone Feb 13, 2020
@originalfoo originalfoo self-assigned this Feb 13, 2020
- Successfully prevents launcher continuelastsave
- Mod scanner working (no UI yet)
@originalfoo
Copy link
Member Author

@krzychu124 - looks like we need to update game version on appveyor or something?

  Compatibility\CompatibilityManager.cs(47,36): error CS0103: The name 'LauncherLoginData' does not exist in the current context [C:\projects\cities-skylines-traffic-manager-president-edition-labs\TLM\TLM\TLM.csproj]
  Compatibility\CompatibilityManager.cs(48,17): error CS0103: The name 'LauncherLoginData' does not exist in the current context [C:\projects\cities-skylines-traffic-manager-president-edition-labs\TLM\TLM\TLM.csproj]

LauncherLoginData class was added in recent launcher update.

@krzychu124
Copy link
Member

Yeah, I completely forgot to update dependencies. I will fix it later today 😉

@originalfoo originalfoo modified the milestones: 11.2, 11.1.1 Feb 14, 2020
Not having much luck, because I have no idea what I am doing!
@originalfoo
Copy link
Member Author

originalfoo commented Feb 15, 2020

IGNORE

Can someone see where I'm going wrong in /Compatibilty/Check/Assemblies.cs, specifically the method at bottom which attempts to extract strings Version and BRANCH from the assembly?

I've never used reflection before so no clue how it really works, despite lots of RTFM I can't see where I'm going wrong.

@originalfoo
Copy link
Member Author

originalfoo commented Feb 15, 2020

Oh, wait, I need to pass the class in, not the assembly...? codes...

Nope, still fail.

@originalfoo originalfoo added in-progress The problem is being solved currently Usability Make mod easier to use labels Feb 15, 2020
@originalfoo originalfoo added code cleanup Refactor code, remove old code, improve maintainability technical Tasks that need to be performed in order to improve quality and maintainability UI User interface updates labels Feb 21, 2020
TLM/TLM/Compatibility/Check/DLCs.cs Outdated Show resolved Hide resolved
TLM/TLM/Compatibility/CompatibilityManager.cs Outdated Show resolved Hide resolved
TLM/TLM/Compatibility/GUI/ProcessIncompatibleMods.cs Outdated Show resolved Hide resolved
@originalfoo originalfoo modified the milestones: 11.1.1, 11.2 Feb 26, 2020
originalfoo added a commit that referenced this pull request Mar 3, 2020
Not updated the `LoadingExtension` because PRs #773 and #699 will be changing it.
@originalfoo originalfoo added ⏸Paused Paused for now and removed in-progress The problem is being solved currently labels Mar 6, 2020
@originalfoo
Copy link
Member Author

Pausing; going to wait for the form builder that kvakvs is working on before implementing the UI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
code cleanup Refactor code, remove old code, improve maintainability COMPATIBILITY Mod (in)compatibility / checker EXTERNAL Mod conflict or other external factor ⏸Paused Paused for now technical Tasks that need to be performed in order to improve quality and maintainability UI User interface updates Usability Make mod easier to use
Projects
None yet
3 participants