missing/in-memory-created door GO templates previously had no Data10/goober.spell
that caused the client cast to be rejected or the door not to activate
now the generated door GO templates include the correct housing door spell
plate). Remove armor subclass restriction in CanTransmogrifyItemWithItem
while preserving slot compatibility and weapon category rules. Replace
CanUseItem check in transmog handler with faction/race-only gating.
Quest package items now learn appearances for all armor types.
Replace the narrow reagent-only / warbound-only auto-deposit handlers
with the modern "Deposit All" behaviour the warband bank UI expects:
- Each tab's BagSlotFlags::Priority<Equipment|Consumables|TradeGoods|
Junk|QuestItems|Reagents> are persisted in {character,account}_bank_
tab_settings.depositFlags. The handler now classifies every eligible
inventory item (Player::GetItemAutoDepositCategory) and routes it
to the first tab whose flags match (Player::PickAutoDepositTab),
falling back to the first tab without any priority filter, then to
any tab without DisableAutoSort ("Cleanup: Ignore this tab").
- Player::GetItemsForBankAutoDeposit collects eligible inventory
items per bank type, applying the warband bank's
"Include tradeable reagents" toggle (CVar bankAutoDepositReagents)
when bank == Account.
CMSG_AUTO_DEPOSIT_ACCOUNT_BANK actually carries that toggle on the
wire (verified against build 12.0.5.67186 client serializer): 1 bit
IncludeReagents, then the banker GUID. The previous Read() consumed
the GUID byte-aligned and silently mis-parsed when the bit was set.
Add the IncludeReagents field and read it first.
✅ Only creates new bot characters if there's space available (< 10 characters per account)
✅ Gracefully skips creation when account is full instead of failing with repeated errors
✅ Logs appropriate debug messages when accounts are full
Companion cleanup to commit 6e7b84dbc1. With yesterday's speculative
SMSG response classes gone, the 7 paired CMSGs whose handlers no-oped
are pure dead code — never invoked because the CMSG opcodes are
TC-CUSTOM placeholders that retail never sends.
Cross-checked each against the auto-generated Lua API docs in
wow-ui-source-12.0.5/Blizzard_APIDocumentationGenerated:
CMSG_HOUSING_DECOR_BATCH_OPERATION no C_HousingDecor.BatchOperation
CMSG_HOUSING_DECOR_CATALOG_CREATE_SEARCHER HousingCatalogSearcherAPI is
entirely client-side (filter/
sort/search local catalog data)
CMSG_HOUSING_DECOR_PLACEMENT_PREVIEW no PlacementPreview API anywhere
CMSG_HOUSING_DECOR_START_PLACING_NEW_DECOR C_HousingBasicMode.StartPlacing-
NewDecor is fire-and-forget;
no Returns, no response event
CMSG_HOUSING_DECOR_START_PLACING_FROM_SRC same — no API counterpart
CMSG_HOUSING_REQUEST_EDITOR_AVAILABILITY C_HouseEditor.GetHouseEditor-
Availability returns synchron-
ously — no server roundtrip
CMSG_HOUSING_SYSTEM_HOUSE_SNAPSHOT no C_HouseSnapshot namespace
exists in retail 12.0.5
Removed per CMSG:
- ClientPacket class declaration (HousingPackets.h)
- Read() body (HousingPackets.cpp)
- Handler function (HousingHandler.cpp)
- Handler declaration (WorldSession.h)
- Handler registration (Opcodes.cpp)
- Opcode enum entry (Opcodes.h)
Retirement-marker comments left in each location pointing at the
Lua-API rationale for future readers.
Diff:
6 files changed
+43 / -250 = 207-line net deletion
Build-verified clean against the 12.0.5 source tree with VS17 2022
RelWithDebInfo (-j 1 to bypass MSVC PCH virtual-memory exhaustion).
No real code errors.
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Signed-off-by: luis <[email protected]>