Commit Graph
669 Commits
Author SHA1 Message Date
Céfiro_Caecias 8fb786fe5e DB/World: DBErrors Clean 2026-03-01 02:30:39 -03:00
luis 60fe9f18aa typo 2026-02-28 19:32:41 -03:00
luis 4323d61765 Housing: Visual respawning, room updates, collection notifications, and decor refunds
Add instant visual feedback for fixture/room changes, populate licensed
decor quantities from catalog, and implement the decor refund window.

- Fixture handlers (SetCore, Create, Delete) now despawn+respawn house
  MeshObjects so changes are visible without relog
- All 8 room handlers refresh interior MeshObjects after success via
  shared RefreshInteriorRoomVisuals helper
- Send SMSG_ACCOUNT_*_COLLECTION_UPDATE for room add, theme set, and
  material apply operations
- HandleGetAllLicensedDecorQuantities returns catalog + starter decor
- HandleGetDecorRefundList returns recently placed decor within 2-hour
  refund window using new PlacementTime field persisted to DB
2026-02-28 19:30:49 -03:00
luis 8813046b06 new tables 2026-02-28 19:10:33 -03:00
luis 2724d62d91 Housing: Data-driven DB2 exterior houses, room textures, and indexed lookups
Replace hardcoded values across the housing system with DB2-driven data:

Phase 1 - Quick wins:
- Interior map origin from NeighborhoodMap DB2 instead of hardcoded (-1000,-1000,0.1)
- O(1) RoomComponentOption lookup via composite-key index (was O(n) per call)
- Dynamic plot count in house finder from DB2 PlotCount
- Warnings when RoomWmoData geobox falls back to defaults
- Base room entry from DB2 IsBaseRoom flag instead of hardcoded 18

Phase 2 - Data-driven exterior houses:
- ExteriorComponent diagnostic dump at startup (stores, hooks, exit points)
- 5 ExteriorComponent indexes for hook/group/exit point lookups
- Recursive SpawnExtCompTree() walks DB2 component-hook-child tree
- SpawnFullHouseMeshObjects tries data-driven first, falls back to hardcoded
- Door offset from ExteriorComponentExitPoint DB2 instead of hardcoded 5.5f

Phase 3 - Room system improvements:
- Room grid spacing changed to sniff-verified 15yd (was 24yd)
- RoomComponentTexture + RoomComponentOptionTexture DB2 infrastructure
  (structs, load info, stores, hotfix selectors, prepared statements)
- 3-tier texture resolution: per-option DB2, per-type DB2, hardcoded fallback
- Diagnostic dumps for texture DB2 data verification
2026-02-28 19:09:02 -03:00
Aqua Deus ebec03120e Scripts/Spells: Implement Shattered Souls of Devourer Spec (DH) (#31672)
Signed-off-by: luis <[email protected]>
2026-02-28 19:00:32 -03:00
Jeremy 5189349611 Scripts/Spells: Implement Meat Cleaver (Fury Warrior Talent) (#31671)
Signed-off-by: luis <[email protected]>
2026-02-28 18:59:59 -03:00
Jeremy 741cb95d1b Scripts/Spells: Implement Surge of Adrenaline (Fury Warrior Talent) (#31668)
Signed-off-by: luis <[email protected]>
2026-02-28 18:56:33 -03:00
Shauren 8df84a64c0 Core/Spells: Fixed proc phase order for spells with no travel time (CAST now happens before FINISH as intended)
Signed-off-by: luis <[email protected]>
2026-02-28 18:55:43 -03:00
Shauren 0dd1579a55 Core/Spells: Move duplicated code for proc flag selection to separate function
Signed-off-by: luis <[email protected]>
2026-02-28 18:54:53 -03:00
luis 9edbba56a3 Housing: Populate RoomComponentOption DB2 and fix interior wall models 2026-02-28 18:53:52 -03:00
luis 224b62a1f8 Housing: Data-driven interior rooms, decor persistence, and room type fix
- Rewrite SpawnRoomMeshObjects to iterate ALL components per room from DB2
  data, each getting InitHousingRoomComponentData with proper geobox
- Add faction-aware theme selection via GetFactionDefaultThemeID (Alliance=6,
  Horde=2) and FindRoomComponentOption per-component lookup
- Fix GetDefaultVisualRoomEntry to deterministically pick lowest-ID room
  (Room 1 = Square Small) instead of non-deterministic unordered_map pick
- Add runtime migration in LoadFromDB to replace wrong visual room entry
  (e.g., Octagon 9 → Square 1) on next login
- Fix interior decor not visible: PLACE/MOVE/REMOVE handlers now support
  HouseInteriorMap via SpawnSingleInteriorDecor and UpdateDecorPosition
- SpawnInteriorDecor runs on every interior entry (not gated by
  _roomsSpawned), with duplicate-spawn prevention
- Fix room GUID using subType=2 (was 0 which returned ObjectGuid::Empty)
- Fix DB2 OffsetRot degrees-to-radians conversion for component quaternions
- Teleport player to visual room center on interior entry
- Add MeshObject::InitHousingDecorData, InitHousingRoomData,
  InitHousingRoomComponentData, InitHousingFixtureData for entity fragments
- Add SpawnRoomForPlot to HousingMap for exterior room entities with geobox
- Add SQL migrations for base room and visual room auto-placement
- Enhanced diagnostic logging for exterior decor spawn success/failure
2026-02-28 18:50:58 -03:00
Céfiro_Caecias c6e7d589d4 DB/World: DBErrors Clean 2026-02-28 16:45:41 -03:00
luis 5555066646 Zones 2026-02-27 22:46:41 -03:00
luis a0ddb2c9ae Uldaman Legacy Of Tyr 2026-02-27 22:41:56 -03:00
luis 874efbdb32 The Nokhud Offensive 2026-02-27 22:36:41 -03:00
luis 6148b6e450 Neltharus 2026-02-27 22:30:18 -03:00
luis 12f4ab96c3 Halls Of Infusion 2026-02-27 22:25:55 -03:00
luis 84e69da02c merge 2026-02-27 22:22:35 -03:00
luis 0838a21a59 Amirdrassil 2026-02-27 22:17:41 -03:00
luis 77002ca1ab brackenhide full 2026-02-27 22:14:13 -03:00
luis 97fefa3340 Vault of the Inarnates 2026-02-27 21:49:51 -03:00
luis d14efc7023 merge dungeon and fix warnings 2026-02-27 21:45:52 -03:00
luis 7b6a678e61 Ruby life pools 2026-02-27 21:40:06 -03:00
luis d4469ef442 azure vault 2026-02-27 21:31:11 -03:00
luis 6ebdb785c9 Full aberrus 2026-02-27 21:26:20 -03:00
luis 7a6ab1a3d5 66192 2026-02-27 20:54:15 -03:00
Cristian Vintila a880830954 Scripts/Spells: Update priest talent Evangelism implementation (#31661)
Signed-off-by: luis <[email protected]>
2026-02-27 20:34:08 -03:00
Cristian Vintila 92e66cbb2a Core/Spells: Set CAST_FLAG_EX_DONT_CONSUME_CHARGES for spells ignoring cds (#31686)
Signed-off-by: luis <[email protected]>
2026-02-27 20:33:03 -03:00
luis d7a5e52d71 Garrison: Fix 9 discrepancies found via WoD sniff analysis (12.0.1.66102)
P0: Fix mission rewards double-write in GetGarrisonInfoResult — inline
    Encounters/Rewards/OvermaxRewards are now cleared in mission structs
    sent via GarrisonInfo; rewards go only in the garrison-level parallel
    arrays, preventing client packet desync.

P1: Populate FollowerSoftCaps with 5 entries matching retail sniff data.
    Implement SMSG_GARRISON_MISSION_START_CONDITION_UPDATE packet and send
    it after GetGarrisonInfoResult. Update CMSG_GARRISON_START_MISSION
    Read() for 12.0.1 per-follower struct format (BoardIndex/Health/
    HasFollowerEntry), remove obsolete MissionBonusAbilityIDs.

P2: Implement SMSG_GARRISON_FOLLOWER_CHANGED_QUALITY packet, used by
    SetFollowerQuality. Send blueprint data for all garrison types.
    Read GarrTypeID in CMSG_GARRISON_CHECK_UPGRADEABLE and look up the
    correct garrison by type.

P3: Add FOLLOWER_TYPE_DELVES (22) enum value. Fix building removal
    packet ordering — GarrisonBuildingRemoved now sent before
    ClearBuildingInfo (PlotRemoved) when replacing a different type.
2026-02-27 20:31:25 -03:00
luis 13e2635433 Pet Battles: Fix capture flow in multi-pet battles and buff/stat modifier system
Battle no longer gets stuck after capturing a wild pet when other wild
pets are still alive. The captured pet is marked and the wild team
auto-swaps to the next alive pet, continuing the fight.

Buff/debuff auras are now visible and mechanically applied:
- Add effectCategory 8 handler for self-buff auras (AURA_APPLY to caster)
- RecalculateEffectiveStats reads state modifiers and BUFF/DEBUFF auras
- CalculateAbilityDamage integrates damage dealt/taken state modifiers
- CalculateAbilityHealing integrates healing dealt state modifiers
- Add STATE_MOD_DAMAGE_TAKEN, SPEED, HEALING_DEALT/TAKEN to BattlePetState
2026-02-27 20:27:16 -03:00
luis 054f2e2135 full bpet 2026-02-27 20:22:52 -03:00
luis 564599b32d Pet Battles: Fix slot duplication, aura persistence, trap anim, achievement name
Fix four bugs reported by tester:

- Slot swap duplication: HandleBattlePetSetBattleSlot now properly swaps
  pets between source and target slots instead of only assigning the target,
  which left the pet duplicated in the old slot

- Aura persistence: Populate petInfo.Auras in BuildPetBattlePlayerUpdate
  so the client knows which auras are active on each pet. Fix aura round
  effect params to send AuraInstanceID + AbilityID (matching wire format)
  and look up real RoundsRemaining/CurrentRound instead of hardcoding 0

- Trap animation: Resolve the actual BattlePetAbilityEffect.ID from the
  DB2 chain for ability 427 instead of using the raw ability ID, so the
  client can look up the correct visual spell for the capture animation

- Achievement name: Change hotfix_data status from 3 (insert) to 1 (valid)
  for achievement 7433 which already exists in the retail client DB2;
  status=3 corrupted the client-side entry causing empty achievement links
2026-02-27 20:22:09 -03:00
luis 057b22a0f6 Housing: Fix decor persistence by reconstructing full Housing GUID on load
LoadFromDB was creating decor GUIDs with subType=0 (Housing-0-0-0-counter)
but the client uses subType=1 (Housing-1-realmId-entryId-counter). The GUID
mismatch caused the Account entity storage to become stale after relog,
making all placed decor appear gone. Reconstruct the full GUID using the
decorEntryId from the same DB row.
2026-02-27 20:20:50 -03:00
luis 4d37fa350c Housing/Decor: Fix PLACE failing when client skips REDEEM_DEFERRED
The client sends CMSG_HOUSING_DECOR_PLACE directly (without a preceding
REDEEM_DEFERRED) when items are already in storage from the initial
storage response. Extract decorEntryId from the Housing GUID (subType=1,
arg2 in bits [31:0]) instead of requiring a pending placement entry.
2026-02-27 20:20:13 -03:00
luis a9cf0b2649 Housing: Fix OutsidePlotBounds by spawning Room entities with Geobox
The client uses MeshObject Geobox bounds (not AreaTrigger shape) for its
OutsidePlotBounds collision check during decor placement. Spawn a Room
entity (FHousingRoom_C) and Room Component MeshObject
(FHousingRoomComponentMesh_C + Geobox) per owned plot using DB2 lookups
for faction-correct values.

Also fixes RequestStorage response (Flags=0x80, Account entity update),
HouseGUID generation (BNetAccountID), and AT PeriodModifier.Field_4.
2026-02-27 20:19:24 -03:00
Céfiro_Caecias 10cb4149ed Update bnetserver.conf.dist 2026-02-27 04:07:05 -03:00
Céfiro_Caecias 111469f03e Update worldserver.conf.dist 2026-02-27 04:06:42 -03:00
Céfiro_Caecias 13ba84afe3 Update 2026_02_16_00_housing_world.sql 2026-02-27 04:04:44 -03:00
luis 03c7107cc3 db errors 2026-02-27 03:29:53 -03:00
luis e44463a0c2 Housing: Fix RequestStorage response and verify all wire formats against sniff
Sniff-verified all housing decor SMSG wire formats against 3 PKT captures
(108k+ packets). All formats confirmed correct except RequestStorageResponse
which sent the player's BNet account GUID instead of empty.

Changes:
- RequestStorageResponse: Send ObjectGuid::Empty for BNetAccountGuid (sniff
  shows 00 00 = empty packed GUID in all cases)
- RequestStorage handler: Now also sends GetPlayerHousesInfoResponse after
  StorageRsp (sniff shows both 0x510006 + 0x54000B sent together)
- Fixed in HousingHandler.cpp (3 places) and NeighborhoodHandler.cpp (1 place)
- Added new SQL files for neighborhood spawns and housing templates
- Added HouseInteriorMap source files
2026-02-27 03:21:32 -03:00
luis 7fd688721f debug log 2026-02-27 02:15:32 -03:00
Aqua Deus 1c1ed8181c Scripts/Spells: Implement dh talent "Voidglare Boon" (#31660)
Signed-off-by: luis <[email protected]>
2026-02-27 00:35:51 -03:00
Aqua Deus 542afbf0e5 Scripts/Spells: Implement dh talent "Void Ray" (#31659)
Signed-off-by: luis <[email protected]>
2026-02-27 00:34:58 -03:00
Shauren 92b018f2ad Dep/jemalloc: Update to 5.3.0
Closes #31684

Signed-off-by: luis <[email protected]>
2026-02-27 00:31:56 -03:00
luis b25353548a Core: Updated allowed build to 12.0.1.66102 2026-02-27 00:31:21 -03:00
luis 6a34442a6e new table 2026-02-27 00:15:35 -03:00
luis 4cddef819d debug log 2026-02-27 00:13:55 -03:00
luis 530f5f61b4 fix load 2026-02-27 00:11:38 -03:00
luis a459654d5f Full db2 fix 2026-02-27 00:06:13 -03:00