Skip to content

Support multipliers per mode - #528

Merged
zcsahok merged 19 commits into
Tlf:masterfrom
zcsahok:feature_mult_by_mode
Aug 16, 2026
Merged

Support multipliers per mode#528
zcsahok merged 19 commits into
Tlf:masterfrom
zcsahok:feature_mult_by_mode

Conversation

@zcsahok

@zcsahok zcsahok commented Aug 10, 2026

Copy link
Copy Markdown
Member

A number of contests use multipliers by band and mode. Currently TLF supports only mults by band. The goal is to add support for mults by band and mode.

The basic idea is to extend the single band field in mults_t into a array band[mode] and in remember_multi() consider also mode, if needed.

@zcsahok

zcsahok commented Aug 10, 2026

Copy link
Copy Markdown
Member Author

Code is mostly ready, the harder part is now the configuration as the legacy boolean configs define the multiplier application mode implicitly: SECTION_MULT and SECTION_MULT_ONCE, etc.
SECTION_MULT_BAND doesn't look not too intuitive to me.
Maybe SECTION_MULT=BAND+MODE ? With SECTION_MULT=ALL being equal to SECTION_MULT_ONCE. Not sure.

@zcsahok

zcsahok commented Aug 10, 2026

Copy link
Copy Markdown
Member Author

Added the new BAND+MODE value to UNIQUE_CALL_MULTI and GENERIC_MULT.

The remaining configs are these booleans

config for per-band / once (or ALL) related variables
WYSIWYG_MULTIBAND / WYSIWYG_ONCE wysiwyg_multi / wysiwyg_once
SERIAL+SECTION / --- serial_section_mult / ---
SECTION_MULT / SECTION_MULT_ONCE sectn_mult / sectn_mult_once
SERIAL+GRID4 / --- serial_grid4_mult / ---

The approach will be add for example WYSIWYG_MULTI with the same values are for GENERIC_MULT, but also keep the legacy configs. So for example WYSIWYG_ONCE will be equivalent to WYSIWYG_MULTI=ALL.
Variables have to be unified and changed to int to hold the MULT_xxx values.

and also handle the legacy boolean configs WYSIWYG_MULTIBAND / WYSIWYG_ONCE
the old boolean behavor is also preserved
@zcsahok

zcsahok commented Aug 10, 2026

Copy link
Copy Markdown
Member Author

Multiplier configs without "only" were kept as-is for the moment.

Updated pacc_dx and included a test for it.

@zcsahok

zcsahok commented Aug 10, 2026

Copy link
Copy Markdown
Member Author

Migrated IOTA to BAND+MODE mult setting.

@zcsahok

zcsahok commented Aug 11, 2026

Copy link
Copy Markdown
Member Author

Came across SERIAL_OR_SECTION: despite the promising description in the man page it does merely control the showing of the "section?" pop-up. I think it is safe to assume that the user is aware of the rules, so an extra question is just causes confusion.
Shall be fixed/improved separately.

@zcsahok
zcsahok marked this pull request as ready for review August 11, 2026 18:53
@zcsahok

zcsahok commented Aug 11, 2026

Copy link
Copy Markdown
Member Author

I'd do man page update in a separate PR as we have #525 that also touches the man page.

@dl1jbe dl1jbe left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is quite a bit of work to study so comments are preliminary.

  • Base concept looks good. Mult handling seems also well implemented.
  • A change of controlling keywords seems really needed. But i like that we harmonize the usage, e.g. 'GENERIC_MULT = NONE|ALL|....'.
  • Do we have a way to announce the old keywords as 'deprecated' to motivate for migration?
  • Just as a comment: I always have mental problems to connect 'ALL' to 'mults counts only once per contest'. The old 'ONCE' triggers more cells in my brain.

@zcsahok

zcsahok commented Aug 15, 2026

Copy link
Copy Markdown
Member Author

ALL makes me also think a bit more, than optimal. ONCE is definitely more intuitive.
(ALL comes from an earlier UNIQUECALL_ALL define)
Will add ONCE as an alternative configuration value for ALL.

Adding deprecation shouldn't be an issue, I have to just check how this affects the tests.

@dl1jbe

dl1jbe commented Aug 16, 2026

Copy link
Copy Markdown
Member

Very well. Looks like it is ready to go in. +1

@zcsahok

zcsahok commented Aug 16, 2026

Copy link
Copy Markdown
Member Author

Changed ALLs into ONCE in rules.

Will address deprecation warning after the merge-in to handle it with a common function.

@zcsahok
zcsahok merged commit f1b3d43 into Tlf:master Aug 16, 2026
2 checks passed
@zcsahok
zcsahok deleted the feature_mult_by_mode branch August 16, 2026 18:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants