mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-05-11 11:33:52 +00:00
feat(pipeline): WGBK guild bank tabs catalog (131st open format)
Novel format providing what vanilla WoW lacked entirely: a
guild-level shared storage facility (Blizzard added guild banks
in TBC, but the Wowee project provides this format from day one
for the Classic-1.12 server flavor as well as later expansions).
Each WGBK entry binds one guild bank tab to its display label,
slot count (1..98 vanilla cap), deposit-only flag, icon, and a
fixed-size per-guild-rank withdrawal limit array (slots/day cap
per rank 0..7, where rank 0 is GuildMaster, kUnlimited =
0xFFFFFFFF).
Three presets:
--gen-gbk Standard 4-tab bank (General/Materials/
Consumables/Officer) for guildId 1 with
progressive per-rank caps
--gen-gbk-raid 5-tab raid guild (Tier1_BWL/Tier2_AQ40/
Tier3_Naxx + Consumables + Officer) — tier
tabs strictly officer-only with 4-slot/day
cap on rank 1
--gen-gbk-small 2-tab small guild (General + Officer) with
tight 5-slot/day caps below officer rank
Validator catches: id+guildId+tabName required, slotCount 1..98
(vanilla cap), GM withdrawal limit > 0 (rank 0 cannot be locked
out — almost certainly a typo), per-rank monotonicity (lower
rank cannot exceed higher rank's cap — kUnlimited treated as
infinity for compare), no duplicate tabIds, no duplicate
(guildId,tabName) pairs (UI dispatch tie). Warns on depositOnly
flag set with non-zero rank-0 limit (self-contradiction — flag
overrides at runtime but data is contradictory).
Format count 130 -> 131. CLI flag count 1373 -> 1380.
This commit is contained in:
parent
fab32a1cff
commit
98316b48ac
10 changed files with 690 additions and 0 deletions
|
|
@ -2587,6 +2587,16 @@ void printUsage(const char* argv0) {
|
|||
std::printf(" Export binary .wcst to a human-editable JSON sidecar (defaults to <base>.wcst.json; emits classId as int + className string for readability)\n");
|
||||
std::printf(" --import-wcst-json <json-path> [out-base]\n");
|
||||
std::printf(" Import a .wcst.json sidecar back into binary .wcst (className field is informational; classId int is authoritative — round-trips per-class per-level stat tables byte-identical)\n");
|
||||
std::printf(" --gen-gbk <wgbk-base> [name]\n");
|
||||
std::printf(" Emit .wgbk standard 4-tab guild bank for guildId 1 (General/Materials/Consumables/Officer) with progressive per-rank withdrawal limits (GM unlimited, lower ranks tighter caps)\n");
|
||||
std::printf(" --gen-gbk-raid <wgbk-base> [name]\n");
|
||||
std::printf(" Emit .wgbk 5-tab raid guild bank for guildId 2 (Tier1_BWL/Tier2_AQ40/Tier3_Naxx tier-set tabs + Consumables + Officer) — tier tabs strictly officer-only\n");
|
||||
std::printf(" --gen-gbk-small <wgbk-base> [name]\n");
|
||||
std::printf(" Emit .wgbk 2-tab small guild bank for guildId 3 (General + Officer) with tight 5-slot/day per-rank caps below officer\n");
|
||||
std::printf(" --info-wgbk <wgbk-base> [--json]\n");
|
||||
std::printf(" Print WGBK entries (id / guildId / slotCount / depositOnly / per-rank-0..7 withdrawal limits / tabName)\n");
|
||||
std::printf(" --validate-wgbk <wgbk-base> [--json]\n");
|
||||
std::printf(" Static checks: id+guildId+tabName required, slotCount 1..98 (vanilla cap), GM withdrawal limit > 0 (rank 0 cannot be locked out — almost certainly a typo), per-rank monotonicity (lower rank cannot exceed higher rank's cap), no duplicate tabIds, no duplicate (guildId,tabName) pairs (UI tab dispatch tie); warns on depositOnly flag set with non-zero rank-0 limit (self-contradiction — flag overrides at runtime but data is contradictory)\n");
|
||||
std::printf(" --catalog-pluck <wXXX-file> <id> [--json]\n");
|
||||
std::printf(" Extract one entry by id from any registered catalog format. Auto-detects magic, dispatches to the per-format --info-* handler internally, then prints just the matching entry. Primary-key field is auto-detected (first *Id field, or first numeric)\n");
|
||||
std::printf(" --catalog-find <directory> <id> [--magic <WXXX>] [--json]\n");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue