Commit Graph
3372 Commits
Author SHA1 Message Date
luis ab6ee82524 Shop: do not lose a class trial to the race it is created in 2026-08-15 22:14:23 -03:00
luis 74702df0c0 Commerce: let the glue screen reach the checkout and the token answers 2026-08-15 22:10:51 -03:00
luis c818475b79 Core/Chat: Extend ChatFlags to uint32 2026-08-15 21:48:38 -03:00
luis ca109b9fe1 Core/PacketIO: Added util to skip packet fields 2026-08-15 21:46:53 -03:00
luis fe0028d0d2 Shop: spend a boost entitlement on a character from the selection screen 2026-08-15 21:38:14 -03:00
luis f212322bce Shop: give a boosted character its level, its kit and its glue-screen look 2026-08-15 20:23:20 -03:00
Thordekk 1637e21d6f Add character boost configuration options 2026-08-15 20:20:47 -03:00
luis 73c23cf760 Shop: the wire for a character boost 2026-08-15 20:16:11 -03:00
luis b2e314be66 Shop: tell the client when a purchase has actually been delivered
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-15 19:55:16 -03:00
luis cc01605138 typo 2026-08-15 19:43:27 -03:00
Thordekk 842380ce75 Shop: default the purchase confirmation ON, because the client cannot finish a purchase without it 2026-08-15 19:43:06 -03:00
luis d705354a51 Commerce: tell the client which shop products this account already owns 2026-08-15 19:41:43 -03:00
luis f8a8de3b61 ll of this existed ONLY on integration/all-systems, which is a test assembly, not storage - it is
rebuilt from the feature branches, so anything living there alone is effectively unsaved. This puts
the work on the golden source where it belongs.

What lands here:

1. THE 94-RECORD CATALOG WRITER. The writer parsed only the first 9 product records; it now decodes
   the whole message - 94 products, 116 deliverables, 21 groups, 97 shop entries, 0 bytes remainder -
   with a byte-exact round trip verified over 12 captures across 3 client builds, plus a mutation
   test (fields rewritten to DIFFERENT lengths) and a splice test. The old ceiling was
   FRAME_AFTER_BLOCKA = 18 standing in for DisplayInfo presence bits; product 9 (Argi, id 108) is the
   first with hasFileDataID = 0, which shifts everything by 4 bytes.
   It also corrects three field mappings that were reading the wrong data entirely: ProductID at
   record+81 is really DisplayInfo.fileDataID (card artwork), Flags at record+85 is
   DisplayInfo.modelSceneID, and the header is 24 bytes / 6 u32, not 28 / 7.

2. THE PURCHASE FIX. SMSG_BATTLE_PAY_PURCHASE_UPDATE has no leading Result field; we were writing
   one, so the client read our always-zero Result as the record count and parsed ZERO purchase
   records. That silently broke every purchase: with confirmation on, the status-9 record never
   reached the client so no prompt appeared and nothing was charged; with it off, the goods arrived
   but the UI hung on "Connecting". Its sibling GET_PURCHASE_LIST_RESPONSE genuinely does have a
   leading Result - the two share a record type but not a header.

3. THE OWNERSHIP FIX. The catalog blob is a capture from a real retail account and carried that
   account's ownership state, which we shipped back verbatim: Product.Eligibility == 2 (Owned) and
   Deliverable.AlreadyOwns == 1 on 21 deliverables, affecting 12 products. Both are now cleared -
   clearing only Eligibility restores the Buy button but PurchaseProduct still never sends the CMSG.

4. NOT overwriting Product.Flags with our admin DisplayFlags. Product.Flags is a separate unreflected
   enum whose bits 1/3 drive buyableHere; writing our value (0 for all 66 rows) over it would have
   made every slot-pinned product unpurchasable. Display flags go to DisplayInfo.Flags, which is what
   sharedData.flags actually reads.
   Enum.BattlepayDisplayFlags is now fully recovered (12 values, registrar RVA 0x13EF840).

5. VAS status queries - CMSG_UPDATE_VAS_PURCHASE_STATES and CMSG_VAS_GET_SERVICE_STATUS, which every
   client sends at character select and which were dropped by STATUS_IGNORED without even a log line.
2026-08-15 18:48:26 -03:00
Thordekk 6118bb9e19 Define Shop.PlaceholderName in configuration
Add placeholder name for unavailable shop products
2026-08-15 18:34:04 -03:00
luis 02497014a9 feat(token): config-gated deferral of the token trade market (TK-7) 2026-08-15 18:19:32 -03:00
Thordekk 3504d603ad Add WoWToken.Market.Enabled configuration
Added configuration for WoW Token market enabling.
2026-08-15 18:11:56 -03:00
luis 46f35b9d31 WowToken: answer the commerce/token queries with real account state (P0) 2026-08-15 17:54:37 -03:00
luis e60c5d5e99 World States: put the realm's rotating world states on the wire 2026-08-15 16:59:58 -03:00
luis 1108dcb0a8 fix(garrison): read four CMSG bodies the way the 68275 client writes them 2026-08-15 16:22:15 -03:00
luis 7b980bd61d fix(garrison): correct two wire layouts a field-list audit could not catch 2026-08-15 16:20:45 -03:00
luis f12a3314d6 fix packets and add new commands 2026-08-15 16:18:38 -03:00
luis 9f6d0832a4 feat(garrison): sniff-confirmed login prologue, and five SMSG wire corrections 2026-08-15 16:04:19 -03:00
luis 60c1733832 Garrison: keep spell-driven vitality restore free (SRV-G2 follow-up) 2026-08-15 16:00:59 -03:00
luis 1a4cb00fae Garrison: make mission reward grant idempotent across a crash (SRV-G4) 2026-08-15 15:58:02 -03:00
luis b148727ee4 Garrison: fix offered-mission StartTime sentinel (SNF-G-C) 2026-08-15 15:56:24 -03:00
luis 1c9f0f12cd Garrison: force-complete must pin a guaranteed success (SRV-G5) 2026-08-15 15:54:50 -03:00
luis 7b23d1d580 Garrison: charge currency for follower rush-heal (SRV-G2) 2026-08-15 15:54:08 -03:00
luis 9d8fcd8562 Garrison: gate dead/exhausted followers, keep death across relog (SRV-G3) 2026-08-15 15:47:35 -03:00
luis ba33e404e0 Garrison: reject duplicate follower dbIDs in StartMission (SRV-G1) 2026-08-15 15:41:01 -03:00
luis 97c7324258 Garrison: fix the heal-follower packet layouts (heal-all button did nothing) 2026-08-15 15:26:13 -03:00
luis 6ac5bda6b5 Garrison: send the client's "researched" talent bit, and open the recruitment frame 2026-08-15 14:23:44 -03:00
luis 41ca782d6e fix(garrison): Adventures replay crashed on an event with no spell id 2026-08-15 14:20:32 -03:00
SistemasCPU eeaf722597 Core/Misc: Removed Chromie script (is now handled by SmartAI) + Fixed the console spam on Followship bots disable 2026-08-15 19:16:37 +02:00
luis 4f94ee6838 Warfront/Contribution: byte-recovered wire for the two NativeUI packets 2026-08-15 14:12:29 -03:00
luis 0d449bd968 start mission 2026-08-15 14:08:54 -03:00
Céfiro_Caecias 15e09a4b81 DB/World: DBErrors 2026-08-15 14:08:27 -03:00
luis 810813dea2 fix(covenant): the other three sanctums' feature scrolls, and 42 wrong-garrison call sites 2026-08-15 13:47:51 -03:00
SistemasCPU ec25ee40b6 Core/Bots: Fix the Death Knight's Ghoul interaction, damage and flags, also fixed the option to disable followship bots 2026-08-15 17:16:06 +02:00
Céfiro_Caecias c38e83e82f Update 2026_08_14_07_covenant.sql 2026-08-15 11:27:14 -03:00
SistemasCPU 63887a489e Core/Misc: Reuploading commit 2026-08-15 16:24:29 +02:00
SistemasCPU a9dbfacab2 Core/Misc: Fix for the Unholy, Frost and Blood Ghoul summoning 2026-08-15 16:16:24 +02:00
Céfiro_Caecias deb5052650 Update 2026_08_14_07_covenant.sql 2026-08-15 11:14:19 -03:00
Céfiro_Caecias 213762461d Update 2026_08_14_07_covenant.sql 2026-08-15 11:06:42 -03:00
Céfiro_Caecias 7eca784712 Update 2026_08_14_07_covenant.sql 2026-08-15 11:06:02 -03:00
Céfiro_Caecias 3757d103d2 DB/Hotfixes: Update VerifiedBuild 2026-08-15 10:58:53 -03:00
luis 3974f4dd20 Commerce: make the Shop's purchase confirmation prompt actually appear 2026-08-15 00:31:03 -03:00
luis 385333a772 Commerce: let the Shop sell things it cannot deliver yet 2026-08-15 00:29:18 -03:00
Thordekk 770989644f Add Shop Entitlements configuration options
Added configuration options for Shop Entitlements feature, including enabling entitlements and assignment functionality.
2026-08-14 22:52:00 -03:00
luis b8a06fe8ba Commerce: make the whole Shop catalog sellable, and fix why nothing ever resolved
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-14 20:19:16 -03:00
luis 9acc72ef0d Commerce: read the real CMSG_BATTLE_PAY_START_PURCHASE layout 2026-08-14 20:17:45 -03:00