Pocket Plane Group

Friends and Neighbors => Weimer Republic (WeiDU.org) => WeiDU => Topic started by: AL|EN on July 30, 2017, 05:01:17 AM

Title: INSTALL_ORDER/INSTALL_SEQUENCE keyword won't work
Post by: AL|EN on July 30, 2017, 05:01:17 AM
Quote
Would this be sufficiently fine-grained to be of use? If two mods are to be installed at the end, which is installed last?
Having a basic install order, donne by the modder themself, would be very handy.
That's a concrete way of doing it, but this is improvable

Add a INSTALL_ORDER metadata, that require a number betwenn 0 and 1000 (or 0 and 10000)
give some threshold (that are not restrictive) for the modder to chose an install number
- 0-100 : mod that require to be installed first( like the BG2fixpack)
- 100-200 : big quest mod
- 200-300 : quest mod
- 300-500 : NPC mod
- 500-600 : tweak/kit mod
- 600-700 : AI mod
- 700-800 : tweak/kit mod
- 900-1000 : mod that need to be installed very late (EET-end, worldmap)

in case of indentical number, have weidu/zeitgeist use the modname to sort them

I'm afraid that INSTALL_ORDER/INSTALL_SEQUENCE won't work. Take a look at this file: https://bitbucket.org/BigWorldSetup/bigworldsetup/src/cbc0a41a491a60e1f7c82ace1d6cf3676451e978/BiG%20World%20Setup/Config/BG2EE/Select.txt?at=master&fileviewer=file-view-default (https://bitbucket.org/BigWorldSetup/bigworldsetup/src/cbc0a41a491a60e1f7c82ace1d6cf3676451e978/BiG%20World%20Setup/Config/BG2EE/Select.txt?at=master&fileviewer=file-view-default)

There are over 3000 components for EET. So obviously, a range number for INSTALL_ORDER must be from 100000 to 999999. But that is not a problem. The problem lies with the fact that tp2 code is spread across multiple sources:
 
Mod-ABC.tp2
Quote
BEGIN "ABC First component"
DESIGNATED 10
INSTALL_ORDER 100000

BEGIN "ABC Second component"
DESIGNATED 20
INSTALL_ORDER 100001


BEGIN "ABC Third component"
DESIGNATED 30
INSTALL_ORDER 100002


BEGIN "ABC Last component"
DESIGNATED 40
INSTALL_ORDER 100003

Mod-XXX.tp2

Quote
BEGIN "XXX First component"
DESIGNATED 100
INSTALL_ORDER 90000

BEGIN "XXX Second component"
DESIGNATED 200
INSTALL_ORDER 100002

BEGIN "XXX Third component"
DESIGNATED 300
INSTALL_ORDER 100100

Install order loaded from the code ( using DESIGNATED ):
XXX 100
ABC 10
ABC 20
ABC 30
XXX 200 <
ABC 40
XXX 300

But according to the intention of the author, XXX 200 component should be installed BEFORE "ABC 30". Let's say that authors of those mods will cooperate and correct INSTALL_SEQUENCE numbers. But because those are two independent tp2 files, even after modification of INSTALL_SEQUENCE numbers for one mod, to correct such unwanted install order, there might be other mods (Mod-ZZZ) which will face the same problem because of the introduced changes and it would be never ending domino of changes.
 
Trying to use INSTALL_SEQUENCE in such way is like trying to setup the install order of 10000 mod components by using 1000 separate files. It will never work practically.
 
Maybe if the will be GUID/UUID for each component and such GUID/UUID could be registered into global mod/conflict/install order webpage where mod authors can see other mods position and manipulate INSTALL_SEQUENCE in relation to other mods would give us desired results. Otherwise I don't see how it can work but I'm open to proposition.
 
Title: Re: INSTALL_ORDER/INSTALL_SEQUENCE keyword won't work
Post by: ikki on July 30, 2017, 06:51:55 AM
I was thinking that this INSTALL_ORDER/INSTALL_SEQUENCE keyword would do a "basic" sorting, so that at least zeitgeist/bws_next could install the bg2fixpack first and the worldmap mod last, (maybe a little more), without aiming to reach a perfect install order

but without such a keyword, someone will have to provide a standard install order ( Leonardo Watson did it once, you have expended it) but it require a lot of work that the modder himself should think about