Cockatrice/libcockatrice_deck_list/libcockatrice/deck_list
BruebachL 0a09884c78
Some checks failed
CodeQL / Analyze (cpp) (push) Has been cancelled
CodeQL / Analyze (actions) (push) Has been cancelled
Build Desktop / Configure (push) Has been cancelled
Build Docker / Servatrice (arm) (push) Has been cancelled
Build Docker / Servatrice (x86) (push) Has been cancelled
Build Desktop / Debian 13 (push) Has been cancelled
Build Desktop / Debian 12 (push) Has been cancelled
Build Desktop / Fedora 44 (push) Has been cancelled
Build Desktop / Fedora 43 (push) Has been cancelled
Build Desktop / Servatrice_Debian 12 (push) Has been cancelled
Build Desktop / Ubuntu 26.04 (push) Has been cancelled
Build Desktop / Ubuntu 24.04 (push) Has been cancelled
Build Desktop / Arch (push) Has been cancelled
Build Desktop / macOS 13 Intel (push) Has been cancelled
Build Desktop / macOS 14 (push) Has been cancelled
Build Desktop / macOS 15 (push) Has been cancelled
Build Desktop / macOS 26 Debug (push) Has been cancelled
Build Desktop / Windows 10 (push) Has been cancelled
Build Docker / Publish multi-platform Servatrice image (push) Has been cancelled
[DeckList] Add custom deck zones to the deck tree (#7176)
* [DeckList] Add custom deck zones to the deck tree

Introduce user-definable zones nested under a board zone (main, side
or maybeboard) so players can organize cards inside a board without
changing board semantics.

- addCustomZone, renameCustomZone, moveCustomZone and removeCustomZone
  manage zones. Names are unique across the whole deck and the standard
  zone names (main/side/maybeboard/tokens) stay reserved.
- Board zones are created lazily on first use.
- getZoneObjFromName resolves custom names to their nested node so
  addCard and XML loading route cards into them. Unknown names keep
  creating legacy top-level zones.
- deleteNode keeps empty custom zones alive and only prunes empty
  board zones.
- New deck_list_zones test suite locks hash parity with flat decks,
  sideboard size accounting, maybeboard exclusion from plain export
  and native-format round-trips.

Took 17 minutes


Took 11 minutes

* Extract to function

Took 4 minutes

---------

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
2026-08-26 23:15:16 +02:00
..
tree [DeckList] Add custom deck zones to the deck tree (#7176) 2026-08-26 23:15:16 +02:00
deck_list.cpp [DeckList] Add maybeboard zone constant and skip it in exports (#7174) 2026-08-24 18:04:22 +02:00
deck_list.h [Game] Playmats (#7101) 2026-08-21 10:40:49 +02:00
deck_list_history_manager.cpp style: Add braces to all control flow statements (#6887) 2026-05-16 19:19:53 +02:00
deck_list_history_manager.h [Fix-Warnings] Mark const getters as [[nodiscard]] (#6365) 2025-11-28 21:38:54 +01:00
deck_list_memento.h [Fix-Warnings] Mark const getters as [[nodiscard]] (#6365) 2025-11-28 21:38:54 +01:00
deck_list_node_tree.cpp [DeckList] Add custom deck zones to the deck tree (#7176) 2026-08-26 23:15:16 +02:00
deck_list_node_tree.h [DeckList] Add custom deck zones to the deck tree (#7176) 2026-08-26 23:15:16 +02:00
playmat_resolver.cpp [Game] Playmats (#7101) 2026-08-21 10:40:49 +02:00
playmat_resolver.h [Game] Playmats (#7101) 2026-08-21 10:40:49 +02:00
sideboard_plan.cpp style: Add braces to all control flow statements (#6887) 2026-05-16 19:19:53 +02:00
sideboard_plan.h Standardize Doxygen documentation (#6885) 2026-05-21 22:58:07 +02:00