1
0
forked from 0ad/0ad
0ad/source/ps/scripting
Angen f1acd22455 Do not allow to start pyrogenesis with incompatible mods
Fixing following problems:
Issue number one:
Enable mod with a23 compatibility in a23b.
Save configuration.
Start a24.
Better result:
Mod will be enabled and invisible in mod selection screen producing
various errors.
Worse result:
Game will crash and refuse to start.

Issue number two:
Mods can silently set loaded mods without restarting the engine, so mods
can unlist themselves from compatibility detection.

Solution:
Enable necessary mods instead if running with gui and open mod page.
Open information window on top of mod page to infom why mod page is
showing up.
On mod page show mods which failed in compatibility check and color the
resposnible ones.
Disable start button without enabled mods.
Show non existed mods if they failed in compatibility check.

Else just log to mainlog and close.

Another fixes:
Display in enabled mods really enabled mods as current logic confuses
players about which mods they have enabled and is not helpful (ref
#4881)

Note:
this will not solve issue with mods claiming being compatible with
engine version while in fact being incompatible.

Comments by: @vladislavbelov, @Stan, @Imarok
Tested by: @wraitii
Differential revision: D3592
Fixes: #6044 #4881

This was SVN commit r25410.
2021-05-09 13:53:25 +00:00
..
JSInterface_ConfigDB.cpp Split ScriptRequest in its own header. 2021-05-03 16:07:26 +00:00
JSInterface_ConfigDB.h Refactor all usage of RegisterFunction to ScriptFunction::Register 2021-03-02 20:01:14 +00:00
JSInterface_Console.cpp Refactor all usage of RegisterFunction to ScriptFunction::Register 2021-03-02 20:01:14 +00:00
JSInterface_Console.h Introduce C++ templates replacements for DEFINE_INTERFACE_X and RegisterFunction macros 2021-03-01 20:52:24 +00:00
JSInterface_Debug.cpp Split ScriptRequest in its own header. 2021-05-03 16:07:26 +00:00
JSInterface_Debug.h Refactor all usage of RegisterFunction to ScriptFunction::Register 2021-03-02 20:01:14 +00:00
JSInterface_Game.cpp Don't error in the network delay notifier. 2021-04-02 14:20:37 +00:00
JSInterface_Game.h Refactor all usage of RegisterFunction to ScriptFunction::Register 2021-03-02 20:01:14 +00:00
JSInterface_Hotkey.cpp Do not trigger "HotkeyPress" events when releasing a key. 2021-03-31 15:50:25 +00:00
JSInterface_Hotkey.h Introduce C++ templates replacements for DEFINE_INTERFACE_X and RegisterFunction macros 2021-03-01 20:52:24 +00:00
JSInterface_Main.cpp Do not trigger "HotkeyPress" events when releasing a key. 2021-03-31 15:50:25 +00:00
JSInterface_Main.h Refactor all usage of RegisterFunction to ScriptFunction::Register 2021-03-02 20:01:14 +00:00
JSInterface_Mod.cpp Do not allow to start pyrogenesis with incompatible mods 2021-05-09 13:53:25 +00:00
JSInterface_Mod.h Introduce C++ templates replacements for DEFINE_INTERFACE_X and RegisterFunction macros 2021-03-01 20:52:24 +00:00
JSInterface_ModIo.cpp Refactor all usage of RegisterFunction to ScriptFunction::Register 2021-03-02 20:01:14 +00:00
JSInterface_ModIo.h Refactor all usage of RegisterFunction to ScriptFunction::Register 2021-03-02 20:01:14 +00:00
JSInterface_SavedGame.cpp Refactor all usage of RegisterFunction to ScriptFunction::Register 2021-03-02 20:01:14 +00:00
JSInterface_SavedGame.h Refactor all usage of RegisterFunction to ScriptFunction::Register 2021-03-02 20:01:14 +00:00
JSInterface_UserReport.cpp Split ScriptRequest in its own header. 2021-05-03 16:07:26 +00:00
JSInterface_UserReport.h Refactor all usage of RegisterFunction to ScriptFunction::Register 2021-03-02 20:01:14 +00:00
JSInterface_VFS.cpp Refactor all usage of RegisterFunction to ScriptFunction::Register 2021-03-02 20:01:14 +00:00
JSInterface_VFS.h Refactor all usage of RegisterFunction to ScriptFunction::Register 2021-03-02 20:01:14 +00:00
JSInterface_VisualReplay.cpp Split ScriptRequest in its own header. 2021-05-03 16:07:26 +00:00
JSInterface_VisualReplay.h Refactor all usage of RegisterFunction to ScriptFunction::Register 2021-03-02 20:01:14 +00:00