Commit Graph
100 Commits
Author SHA1 Message Date
luis fbf6ee8ad3 fix(garrison): despawn the finalize goober so it can't linger as construction scaffolding
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-20 19:37:09 -03:00
luis e82dba9679 fix(mythic+): skip reward-less season rows when auto-detecting the active M+ season
ResolveActiveSeason() auto-detected the active MythicPlusSeason as the
highest-StartTimeEvent row of the highest expansion. In Midnight that row is
season 122, a placeholder with zero MythicPlusSeasonRewardLevels rows, while the
real Season 1 content season is 117 (reward-level table 233-272, consistent with
the resolved display season 34). Picking 122 made GetVaultRewardLevelCap() and
GetVaultActivityTierId() return 0, so the Great Vault reward level was left
UNCAPPED (a +18 key granted a +18-scaled vault item instead of the retail +10
cap) and the wrong season id was reported to the client.

Verified against the 69299 client DB2 (MythicPlusSeason, MythicPlusSeasonReward-
Levels, MythicPlusSeasonTrackedMap/TrackedAffix, DisplaySeason, KeystoneAffix):
season 122/118 carry no reward levels; 117 = Midnight S1, 120 = Midnight S2
(vault 305-318, matching the community mythicpl.us S2 tables).

Auto-detect now considers only seasons that carry reward-level rows (a live
vault-granting season always does), falling back to the previous unfiltered scan
only when the DB2 has no reward-level data at all (stripped/older client). This
keeps the active season a real content season and consistent with the display
season on both the live snapshot (-> 117) and the newer S2 snapshot (-> 120).

Affix rotation and dungeon pool were checked against the same DB2 and are already
correct (both DB2-derived; affix set {9,10,147,148,158,160,162,165} matches
TrackedAffix for display season 34 exactly).
2026-08-20 19:36:05 -03:00
luis 570e365ccb remove untill we sniff areatriggers 2026-08-20 18:49:52 -03:00
luis 6cd755d755 exiles 2026-08-20 16:52:07 -03:00
luis 899b92bee9 fix crash 2026-08-20 16:50:41 -03:00
luis b50043f362 crash fix part 1 2026-08-20 16:30:17 -03:00
luis 2841748030 fix crasf QUEST_COOKING_MEAT 2026-08-20 16:30:17 -03:00
luis 89ce9cda41 typo 2026-08-20 15:58:24 -03:00
luis 9d24f2e459 fix function 2026-08-20 15:57:28 -03:00
luis 4230b98be1 missing 2026-08-20 15:19:09 -03:00
luis 3344125e3d atal aman gobs 2026-08-20 13:09:55 -03:00
luis 6289266080 spawn atal aman delve 2026-08-20 13:07:25 -03:00
luis a6af5bb87b delve fixes 2026-08-20 13:01:04 -03:00
luis aed1dcc0b8 Turbulent Timeways 2026-08-20 09:56:36 -03:00
luis 25f8c51414 midnight systems 2026-08-20 09:44:14 -03:00
luis 19744765b9 fix(garrison): reveal WoD shipyard coastal spawns + make Fleet Command Table interactable 2026-08-20 09:12:58 -03:00
luis 6ef26dab1b missing enum 2026-08-20 07:13:18 -03:00
luis c9c5061e3d my fault missing port 2026-08-20 06:26:01 -03:00
luis e15b30e009 typo
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-20 06:13:30 -03:00
luis 108a7e7ff5 rework script system and fix windrunner spire
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-20 05:09:08 -03:00
luis 162acaaf83 portals 2026-08-20 04:11:31 -03:00
luis 584ed80d2b wq and eversong woods initial work on spawns 2026-08-20 03:23:14 -03:00
luis 2ca528ac9e db world boss 2026-08-20 03:22:10 -03:00
luis 6be541063f warning fix
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-20 02:51:50 -03:00
luis 91d676415c WorldbossXariona 2026-08-20 02:46:49 -03:00
luis e2275fb285 Port WoW Token trade work onto feature/commerce (surgical graft) 2026-08-20 02:15:03 -03:00
luis b8053bc531 fix(http): never erase an end() iterator in KillInactiveSessions 2026-08-20 01:56:43 -03:00
luis 5da9c4bf24 haranir and texts 2026-08-20 01:17:28 -03:00
luis 996834da48 haranir allied race data to start work on zone 2026-08-20 00:41:53 -03:00
luis 7174db7a77 Fix spawn gob 2026-08-20 00:08:07 -03:00
luis b772a621b2 Fix scheduler 2026-08-19 23:18:54 -03:00
luis 03794c3ea9 Shop: branch OPEN_CHECKOUT by payment rail + add license-request handler
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-19 22:24:01 -03:00
luis 23775473f9 exiles 2026-08-19 22:13:39 -03:00
luis 142fbe2d38 darkmaul 2026-08-19 21:54:55 -03:00
luis 5cd3eb575c warning fix 2026-08-19 21:52:50 -03:00
luis 5e960654ca warning fix 2026-08-19 21:49:47 -03:00
luis 24f7ca0bc5 exiles reach
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-19 21:28:58 -03:00
luis c9e03f64cc exiles reach warnings and sql 2026-08-19 21:20:54 -03:00
luis 8d6b3dc5a8 Fix warnings 2026-08-19 21:01:18 -03:00
luis 92bdaa01b3 typo 2026-08-19 20:59:05 -03:00
luis 02c14dc165 UpdateDelayedEventOperations 2026-08-19 20:47:53 -03:00
luis f767aa5314 implement missing code
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-19 19:02:32 -03:00
luis e03bc8dff5 Missing defs 2026-08-19 18:51:25 -03:00
luis c10a6e0b4f exiles reach rework part 1 2026-08-19 18:37:25 -03:00
luis 68cf458683 missing path
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-18 20:04:27 -03:00
luis 3d3b41d3cd exile reach missing data 2026-08-18 19:59:32 -03:00
luis e74cb65e10 mod effect 2026-08-18 18:51:09 -03:00
luis 64f426c4be typo 2026-08-18 11:40:14 -03:00
luis cbe43d0866 bots 2026-08-18 11:39:43 -03:00
luis 63274f6cd7 Core/PacketIO: Fix packet structure for CMSG_READY_CHECK_RESPONSE and CMSG_PARTY_UNINVITE 2026-08-18 11:37:41 -03:00
luis 888a881d4d Core/PacketIO: Use std::span instead of pointer to vector in SMSG_MOVE_UPDATE_TELEPORT
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-18 00:20:32 -03:00
luis 048df54b78 Core/PacketIO: Fix packet structure for SMSG_AUCTION_LIST_ITEMS_RESULT and SMSG_PARTY_UPDATE 2026-08-17 23:31:38 -03:00
luis 38ca44b243 Core/PacketIO: Rename a few unknown fields 2026-08-17 23:30:13 -03:00
luis f9a7d81fe9 fix build 2026-08-17 23:15:54 -03:00
luis 251ddc579d shop fixes 2026-08-17 23:13:44 -03:00
luis 95e7640d5e more spell work
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-17 20:47:44 -03:00
luis c216caa636 spell fixes 2026-08-17 20:42:23 -03:00
luis 304d37542a fix spell 2026-08-17 20:36:07 -03:00
luis eb35e36089 Core/Misc: Minor formatting fixes 2026-08-17 20:26:16 -03:00
luis ec0dc6149d Core/AuctionHouse: Implement some missing packet fields 2026-08-17 19:44:20 -03:00
luis 4e54de694c fix spells 2026-08-17 19:38:22 -03:00
luis 25ae3d89e0 update spells 2026-08-17 17:58:34 -03:00
luis 27c39ed576 typo 2026-08-17 16:19:53 -03:00
luis fea6fdb31d prev 2026-08-17 15:39:13 -03:00
luis 335c7bb8e5 Core/Players: Remove ForceDontShowChoicesAsList from playerchoice table (not a static value) and rename it in packets 2026-08-17 15:21:44 -03:00
luis 871e5d1afe spell fix 2026-08-17 00:30:25 -03:00
luis eca25b0284 typo 2026-08-16 05:57:03 -03:00
luis b845948c2f fix spell for 12.0.7
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-16 02:45:17 -03:00
luis bc288d6b89 ManagedWorldStateBuff.db2 2026-08-16 02:24:53 -03:00
luis 66dde1cab3 core warn fix 2026-08-16 02:04:08 -03:00
luis 1a82c1f5e4 great-vault: write WeeklyRewardsPeriodSinceOrigin (was never set)
Build (Windows x64) / build (push) Canceled after 0s
Build (Windows x64) / linux-build (push) Canceled after 0s
2026-08-15 22:18:14 -03:00
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
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
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
luis 02497014a9 feat(token): config-gated deferral of the token trade market (TK-7) 2026-08-15 18:19:32 -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
luis 4f94ee6838 Warfront/Contribution: byte-recovered wire for the two NativeUI packets 2026-08-15 14:12:29 -03:00