Some Boot Module Addons

A place to post your add ons and ideas for them

Moderator: Moderator

Message
Author
Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Some Boot Module Addons

#1 Post by Zizzo »

It's a little-known feature of the T-Engine that the boot module (which provides the starting screen and various dialogs like New Game, Load Game and Addons) can itself have addons. I've cobbled together a few myself, and with inspiration from a recently proposed idea that could only be implemented with a boot module addon, I decided I'd share what I had.

Be advised, though, some warnings about using boot module addons:
  • There is no interface for managing, enabling or disabling boot module addons short of manually adding/removing the relevant addon files from the addons directory.
  • These addons are not "official" and won't be automatically updated. Since they're not game module addons, though, they won't invalidate your characters.
  • Boot module addons apparently count toward the "soft maximum" number of addons you can have installed (enabled or disabled) before the game starts fairly consistently crashing when you try to load a character.
  • Caveat emptor, use at your own risk, no warranty expressed or implied, if it breaks, you get to keep both pieces.
If that didn't scare you away, :wink: here's what I've got:

ZOmnibus Check (v1.0.7, last update 2024 Nov 09): This was the original boot module addon I mentioned in the above-linked post. It modifies the Addons dialog, adding visual highlighting to addons that would conflict with each other if enabled (as shown below), so that you don't accidentally enable several of them at once. Primarily this covers ZOmnibus/ZOmnibus Lite and their component addons (because even I have trouble keeping track of all of them sometimes :wink: ), but it also covers Proper Possession vs. Possessor Tweaks and Schrödinger's Lore vs. Schrödinger's Lore (Mark 2).
hmm1.jpg
hmm1.jpg (169.45 KiB) Viewed 11562 times
Along the way, it's also accumulated some tangentially related features (not shown above), like warning about addon dependencies and adding icons for addons that use DLCs.

Savefile Notes At the Top (v1.0.0): Requested by astralInferno. This addon interacts with the Savefile Notes addon, moving the savefile note added by that addon from the bottom of the savefile description to the top, so it doesn't get pushed off the screen if you have a lot of addons.

Main Menu Shortcuts (v1.1.1, last update 2024 Sep 24): Requested by nsrr. The goal is to add "shortcuts" to the main menu dialog (hence the name) to bypass the New Game dlalog. Currently, if you have only one game module installed, we modify "New Game" to e.g. "New Game (T.o.M.E.)" and have it skip straight ahead to character creation; if you have more than one game module installed, you can choose a module to be treated as the "default" in this manner via the option "Options | Game Options | UI | "New Game" shortcut module" (only accessible from the startup screen). In theory, we could also add a "Load Game" shortcut if you only have one character (or a most-recently-used-character shortcut, if that information is recorded anywhere).

Sort Addons (v1.0.3, last updated 2023 Jun 10): And speaking of having lots of addons… :wink: This addon sorts the addons list in the Addons dialog, to make a particular addon easy to find. DLCs and official addons are kept on top; the rest are sorted alphabetically. You can also type a letter key to jump ahead to the next addon in the list whose name starts with that letter.

Addon Cleanup (v1.0.2, last update 2020 Dec 28): Requested by nsrr. Adds two buttons to the Addons dialog: Disable All and Disable Auto:Enabled, which do pretty much what they say. This is useful for setting up addons for a character — you can quickly disable them all and enable only the ones you want to use for this character. If you have addons you want to use for all characters, you can set them to Manual: Enabled and use the Disable Auto:Enabled button to disable the rest.

Load Games with Long Names (v1.0.1, last updated 2023 Jun 10): This one works around a bug in the Load Game dialog that can happen if any of your characters have very long names. You probably won't run into the bug unless you're testing the limits of my Longer Character Names addon, but that's how I tripped over it, so… :mrgreen: Also adds functionality similar to Sort Addons, letting you type a letter key to jump to the next character in the list whose name starts with that character.

Dialog Tweaks (v1.0.1, released 2024 Sep 24): A few QoL tweaks to various startup dialogs, notably the ability to cancel out of the "really load this character in developer mode?" warning dialog via <Esc>, and not having your "Load Game" changed to "New Game" out from under you.


If I update these addons in the future, or add new boot module addons, I'll update the links up here at the top as needed and add descriptive notes down below.
Last edited by Zizzo on Sat Nov 09, 2024 10:23 pm, edited 16 times in total.
"Blessed are the yeeks, for they shall inherit Arda..."

nsrr
Sher'Tul
Posts: 1126
Joined: Mon Sep 21, 2015 8:45 pm
Location: Middle of Nowhere

Re: Some Boot Module Addons

#2 Post by nsrr »

Fantastic work, as always. I am absolutely using the main menu shortcuts, and probably the add-on sorter, too.

This actually reminds me of another idea I had recently that would need a boot add-on to work, and involves the add-on list. So, I always encourage folks who use add-ons to choose their add-ons before any new run, just to make sure there's not something enabled they may not want or could create conflicts. Enable just the add-ons you want for that character. If you want to run a class from an add-on, disable other class addons, and so on. I think it's just generally a good idea given how much time can go into a run; it sucks to have one ended by a conflict with something you forgot about or aren't even using.

I think to make add-on management easier it would be handy to have a 'disable all' button on the add-on list. I can also see an 'enable all' button being useful to some extent, as well. Getting a little more complicated, it would be really convient to have a way to flag an add-on as 'essential', causing it to ignore the 'disable all' button, for use with those QoL add-ons you just can't play without.

Keep up the great work :)

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Some Boot Module Addons

#3 Post by Zizzo »

nsrr wrote:This actually reminds me of another idea I had recently that would need a boot add-on to work, and involves the add-on list. So, I always encourage folks who use add-ons to choose their add-ons before any new run, just to make sure there's not something enabled they may not want or could create conflicts. Enable just the add-ons you want for that character. If you want to run a class from an add-on, disable other class addons, and so on. I think it's just generally a good idea given how much time can go into a run; it sucks to have one ended by a conflict with something you forgot about or aren't even using.
…Wait, you mean not everyone does that? :? That just seems obvious. In fact, that was part of the motivation for ZOmnibus Check, to ensure that I didn't accidentally enable a ZOmnibus component during that pre-character-creation addon-juggling sweep.
nsrr wrote:I think to make add-on management easier it would be handy to have a 'disable all' button on the add-on list. I can also see an 'enable all' button being useful to some extent, as well. Getting a little more complicated, it would be really convient to have a way to flag an add-on as 'essential', causing it to ignore the 'disable all' button, for use with those QoL add-ons you just can't play without.
[sound F/X: source diving] Hmm, adding a new component to the dialog would be tricky; I'd probably have to replace the entire Addons:init() method — and ZOmnibus Check is fiddling around in there too, so I'd have to coordinate the two. Give me time to investigate.

In the meantime, though, further investigation has revealed that your game option idea for the "New Game" action is in fact feasible, so I'm pushing out v1.1.0 of Main Menu Shortcuts with that feature. The relevant new option is "Options | Game Options | UI | "New Game" shortcut module", and can only be set from the startup screen.
"Blessed are the yeeks, for they shall inherit Arda..."

nsrr
Sher'Tul
Posts: 1126
Joined: Mon Sep 21, 2015 8:45 pm
Location: Middle of Nowhere

Re: Some Boot Module Addons

#4 Post by nsrr »

That's great, because it turns out I actually did have another module installed I had forgotten about. A port of ToME 2 or something, as if anyone would be interested in that ( jokes ;P).

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Some Boot Module Addons

#5 Post by Zizzo »

Zizzo wrote:[sound F/X: source diving] Hmm, adding a new component to the dialog would be tricky; I'd probably have to replace the entire Addons:init() method — and ZOmnibus Check is fiddling around in there too, so I'd have to coordinate the two. Give me time to investigate.
[sound F/X: further source diving] …huh. Apparently it's safe to call Dialog:loadUI()/Dialog:setupUI() multiple times, as each call effectively overrides and cleans up behind the previous one. That simplifies matters, since we can just rebuild the component layout from scratch with our buttons in place.

Which means I can release a first pass at an Addon Cleanup boot module addon. For now, we add buttons "Disable All" and "Disable Auto:Enabled" to the addons dialog, so you can effectively flag an addon as "essential" for this purpose by setting it to Manual: Enabled.
"Blessed are the yeeks, for they shall inherit Arda..."

nsrr
Sher'Tul
Posts: 1126
Joined: Mon Sep 21, 2015 8:45 pm
Location: Middle of Nowhere

Re: Some Boot Module Addons

#6 Post by nsrr »

Zizzo wrote: Which means I can release a first pass at an Addon Cleanup boot module addon. For now, we add buttons "Disable All" and "Disable Auto:Enabled" to the addons dialog, so you can effectively flag an addon as "essential" for this purpose by setting it to Manual: Enabled.
:D

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Some Boot Module Addons

#7 Post by Zizzo »

And with the big ZOmnibus v16 release, we update ZOmnibus Check to v1.0.1, covering the new addons merged into ZOmnibus and ZOmnibus Lite. And as long as I was in the neighborhood, I also added cross-check highlighting for Escort Rescheduling vs. No Escort Quests.
"Blessed are the yeeks, for they shall inherit Arda..."

Phantomfrettchen
Halfling
Posts: 83
Joined: Mon Apr 10, 2017 3:39 pm

Re: Some Boot Module Addons

#8 Post by Phantomfrettchen »

Thank you so much, Zizzo, this is good stuff.

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Some Boot Module Addons

#9 Post by Zizzo »

So I was experimenting with the Technomancer evolution recently, and my character Everett Baze Carrington, Professor of Technomancy tripped over a small bug in the Load Game dialog. See, during the process of building the list of savefiles, Module:loadSavefileDescription() populates the 'dir' field of each savefile entry with… something? I don't think it's the directory where the savefile lives. Anyway, the problem is that the engine's TreeList also uses the 'dir' field internally to manage its "ping-pong" horizontal scrolling of long list entries, so they trip over each other and everything breaks. Of course, you probably won't trigger the bug unless you're using a really long character name:mrgreen:

AFAICT, the dialog doesn't actually use that 'dir' field for anything, and all my games still seem to load fine after stripping it out, so I'm releasing it as my new Load Games with Long Names addon.
"Blessed are the yeeks, for they shall inherit Arda..."

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Some Boot Module Addons

#10 Post by Zizzo »

Pushing out v1.0.1 of Addon Cleanup, which was leaving behind detritus from ZOmnibus Check. So far the simple expedient of waiting until everything is disabled to redraw all the addon states seems to clean everything up.
"Blessed are the yeeks, for they shall inherit Arda..."

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Some Boot Module Addons

#11 Post by Zizzo »

Had a random idea for an improvement to ZOmnibus Check: since the boot module already has icons for the various DLCs lying around, we can use them to mark addons that depend on the DLCs:
zom-check-dlc-icons.png
zom-check-dlc-icons.png (61.44 KiB) Viewed 9587 times
In retrospect, I'm not sure the icons are big enough to be identifiable for this purpose, but I'm going with it as v1.0.2. This also requires an update of Sort Addons to v1.0.1, so that the icons in the addon names don't mix up the sort order.
"Blessed are the yeeks, for they shall inherit Arda..."

rexorcorum
Graphical God
Posts: 482
Joined: Wed Jan 05, 2011 8:05 am
Location: There and Back again

Re: Some Boot Module Addons

#12 Post by rexorcorum »

Looks good to me :)
~ [ RexOrcorum, a.k.a "rexo": Official Visual Magus, Addon Beautifier, Achiever, Knight of the 561 Trees, Dark Interfacer ] ~
darkgod wrote:~ [ DarkGod whips rexorcorum with Suslik (& many others as well) ] ~

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Some Boot Module Addons

#13 Post by Zizzo »

Updating ZOmnibus Check to v1.0.3 with all our new ZOmnibus hotness for v17. Also had a new boot module to fix this bug, but that's no longer necessary. :wink:
"Blessed are the yeeks, for they shall inherit Arda..."

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Some Boot Module Addons

#14 Post by Zizzo »

Small tweak in Addon Cleanup v1.0.2: we never disable the ToME Addon's Development Tools addon, no matter which button you press. (Well, more specifically, we don't disable any addon with the 'cheat_only' flag, but that's the only one I know of.] My motivation is that I never actually want it to be disabled (since it doesn't actually affect anything in normal non-debug-mode practice), and I have to switch into debug mode to turn it back on when I disable everything else.
"Blessed are the yeeks, for they shall inherit Arda..."

Zizzo
Sher'Tul Godslayer
Posts: 2512
Joined: Thu Jan 23, 2003 8:13 pm
Location: A shallow water area south of Bree
Contact:

Re: Some Boot Module Addons

#15 Post by Zizzo »

Another random improvement idea: since I have a lot of addons (as you can imagine :wink: ), it frequently takes a lot of scrolling and paging around to find the one I'm looking for on the Addons dialog. Now, the Create Item debug dialog has a feature that lets you press a letter key to jump to the next item in the list whose name starts with that letter, which is exactly the sort of thing that would help me here. Sort Addons seemed like the best place to add that feature, since we're depending on the addons being in alphabetical order; that's going out as v1.0.2.
"Blessed are the yeeks, for they shall inherit Arda..."

Post Reply