Albeoris / Memoria

Final Fantasy IX tools
MIT License
391 stars 50 forks source link

Submod options not parsed by order of declaration #967

Open faospark opened 1 week ago

faospark commented 1 week ago

Screenshot_205 before submods by order of how it was declared on the ModDescription.xml file the mod manager seems to be taking into account the declaration as an ordinal sorting Tir explained this to me sometime ago that that is not the case but rather its function is more of an override of another mod example Screenshot_206

alternate portrait set will override full portrait set if both are activated and partial portrait set will override both .

the problem with the current mod manager if i have a mod Screenshot_207 this will be parsed as Full portrait set Not Related mod Alternate portrait set Partial portrait set

SamsamTS commented 1 week ago

I don't really get how this mod options system works but I've been thinking it might need a rework.

I'd like the possibility to to have combo boxes for option that are mutually exclusive. For example for your Title Screen option a combo box with the following entries would be nice:

In fact I'd like all the options listed at once instead of everything inside a combo box

☑ My option1 ☑ My option2 My option3 [combobox] ☑ My option4 ...

What do you think?

faospark commented 1 week ago

I agree that the UI really needs an improvement and prefer your latter suggestion as its makes it mcore
That said if its possible to for modders to explicitly declare a modal window in the center activated via configure button on sidebar same idea as combo box i guess now that i think about it lol. cause scrolling to the side bar is not really a good user experience.

SamsamTS commented 6 days ago

Here is what I have in mind.

ModOptions1 ModOptions2

New xml tags for submods (all optional for retro-compatibility):

<Section>Section 1</Section>
<Group>My group</Group>
<Default/>
<PreviewFile>MyImage.jpg</PreviewFile>

Section will create a header, must be placed in-between SubMods:

<Section>Section 1</Section>
<SubMod>...</SubMod>
<SubMod>...</SubMod>
<SubMod>...</SubMod>
<Section>Section 2</Section>
<SubMod>...</SubMod>
<SubMod>...</SubMod>
<SubMod>...</SubMod>

Group is for mutually exclusive options. Default determine the default option of the group and will automatically be activated by default. InstallationPath tag can be omitted for the default option, that means no submod is activated by defaut (removes the need to create an empty submod folder) Example of a group:

 <Section>My group</Section>
 <SubMod>
     <Name>Default</Name>
     <Group>MyGroup</Group>
     <Default/>
</SubMod>
 <SubMod>
     <Name>Option 1</Name>
     <Group>MyGroup</Group>
     <InstallationPath>...</InstallationPath>
     <Description>Option 1 description</Description>
     <PreviewFile>Previews/Option1.jpg</PreviewFile>
     <Priority>1</Priority>
</SubMod>
 <SubMod>
     <Name>Option 2</Name>
     <Group>MyGroup</Group>
     <InstallationPath>...</InstallationPath>
     <Description>Option 2 description</Description>
     <PreviewFile>Previews/Option2.jpg</PreviewFile>
     <Priority>1</Priority>
</SubMod>

This is not final and subject to change. Feel free to comment and suggest improvements.

faospark commented 6 days ago

Nice !. the new possible markup is literally the same as how i used to the it in mog-addons albeit how it looks is more blended in the ui Screenshot_212 My handy trick to make like you mod options you have there is to dedicate as submod block that does nothing but serves as a good call to action that there are options inside the mod. Similar to your section tag I dedicated a submod that does nothing but its Name has text based like headings.

looking forward for the possible future changes. that said please keep the original function of the Priority tag as its very handy for overrides. :)

Emeiru commented 5 days ago

Definitely looking forward as well for this overhaul. Currently, I'm getting possible issues with users that may have skipped activating the actual submod, hence reporting why the mod in question was not working for them. A default option will address this as a catch-all for none-the-wiser users. Additionally, if not mentioned already (or I didn't understood it clearly, could be the mutually exclusive feature), the restriction to only select one mod at a time will be great.

SamsamTS commented 5 days ago

Additionally, if not mentioned already (or I didn't understood it clearly, could be the mutually exclusive feature), the restriction to only select one mod at a time will be great.

Yes, that's what the mutually exclusive is. Only one sub-mod from the same group can be active at a time. If I activate a sub-mod that belongs in a group, all other sub-mods of the same group gets deactivated.

Also the ones tagged Default will be automatically activated when first activating the main mod. It doesn't need to be in a group necessarily. Meaning you can have sub-mods on by default that can be deactivated by the user.