feat: add T4 menu dumping and loading (#986)

* feat: add T4 menu dumping

* chore: align with latest changes

* feat: add T4 menu loading

Load T4 menulists and menu files through the shared menu parser.

Preserve T4-specific menu and listbox fields and cover loading, dumping, linking, and round-trip behaviour.

* chore: make flag fields unsigned

* chore: rename `expOperationEnum` -> `operationEnum`

* chore: use default enum numeration for T4 operationEnum

* chore: remove unused members of operationEnum

* chore: remove redundant op from operationEnum

* refactor: align T4 expression operand names with IW3

* chore: small adjustment to iw3,t4 types

---------

Co-authored-by: Jan Laupetin <[email protected]>
This commit is contained in:
mo
2026-09-03 23:19:03 +02:00
committed by GitHub
co-authored by Jan Laupetin
parent 7d027e8f89
commit 4da55a351a
36 changed files with 3366 additions and 29 deletions
@@ -929,8 +929,8 @@ void EventHandlerSetScopeSequences::AddSequences(const FeatureLevel featureLevel
{
AddSequence(std::make_unique<SequenceSkipEmptyStatements>());
// IW3 stores event handlers as opaque script strings rather than structured handlers.
if (featureLevel == FeatureLevel::IW3)
// IW3 and T4 store event handlers as opaque script strings rather than structured handlers.
if (featureLevel == FeatureLevel::IW3 || featureLevel == FeatureLevel::T4)
{
AddSequence(std::make_unique<SequenceCloseBlock>());
AddSequence(std::make_unique<SequenceSkipScriptToken>());