4383 Commits
Author SHA1 Message Date
luis da25c82c31 typo 2026-02-19 21:04:29 -03:00
luis ba19a0315f Housing: Populate FJamHousingCornerstone entity fragment on plot GOs 2026-02-19 21:03:08 -03:00
agathoandClaude Opus 4.6 1d4aca4fd2 Housing: Fix plot rendering - use Cornerstone GO with GOState toggle
Retail packet sniff analysis proves that ALL housing plots use a single
Cornerstone GameObject (entry 457142, DisplayID 110660, Type 48/UILink)
with GOState toggling to communicate ownership:
  - GOState 0 (ACTIVE) = For Sale / unoccupied
  - GOState 1 (READY) = Owned / occupied
  - All Cornerstones have Flags=32 (GO_FLAG_NODESPAWN)

The previous implementation spawned a fabricated "For Sale" sign
(entry 417487, DisplayID 8206) for unoccupied plots. DisplayID 8206 is
a vanilla-era model that renders as a flat brown rectangle.

Changes:
- SpawnPlotGameObjects: Always use CornerstoneGameObjectID, set GOState
  based on ownership, apply GO_FLAG_NODESPAWN
- Replace SwapPlotGameObject (destroy/recreate) with SetPlotOwnershipState
  (GOState toggle on existing Cornerstone)
- Simplify all 3 callers (ReservePlot, BuyHouse, EvictPlot) to pass
  bool ownership instead of GO entry IDs
- Remove fabricated entry 417487 from world SQL

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: luis <[email protected]>
2026-02-19 21:00:32 -03:00
agathoandClaude Opus 4.6 98795165b0 Housing: Add ALTER TABLE migration for 3 new character_housing columns
Adds exteriorLocked, houseSize, and houseType columns to existing
character_housing tables via ALTER TABLE (the schema file was updated
in the prior commit but existing databases need this migration).

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: luis <[email protected]>
2026-02-19 20:59:33 -03:00
luis 2771afc709 Housing: Fix enums, spell effects, and handler logic from client binary audit 2026-02-19 20:58:55 -03:00
luis e16cb3c33d Housing: Eagerly spawn all plot GOs at map creation 2026-02-19 20:38:15 -03:00
agathoandClaude Opus 4.6 34afbe0564 Housing: Route debug logging to 'housing' channel
The 'maps' logger is at WARNING level by default, suppressing
all DEBUG messages. Route HousingMap and MapManager neighborhood
logging to the 'housing' channel which is at TRACE level and
writes to Housing.log.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: luis <[email protected]>
2026-02-19 20:36:09 -03:00
luis be4b5a3025 update 2026-02-19 20:35:21 -03:00
luis 806cc6193c ++ 2026-02-19 20:23:21 -03:00
agathoandClaude Opus 4.6 70823e16fd Housing: Add Alliance neighborhood world data for Map 2735
Creature templates, spawns, models, gameobject templates, spawns,
gossip menus, vendor inventories, quest data, and trainer spells
for the Alliance housing neighborhood (The Aerie).

Column names adapted to current TrinityCore creature_template schema
(type/family/Classification, 64-bit npcflag).

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: luis <[email protected]>
2026-02-19 20:22:26 -03:00
agathoandClaude Opus 4.6 682cf56f05 Housing: Add GO swap on plot purchase/eviction and fix HouseFinder
Track plot GameObjects in HousingMap so for-sale-signs can be swapped
to cornerstones on purchase and reverted on eviction. Previously the
visual GO never changed after PurchasePlot(), leaving stale for-sale
signs on owned plots.

Fix HouseFinder neighborhood detail to show all 55 DB2 plots with
availability and cost instead of only listing occupied plots, so the
client can render the full plot grid.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: luis <[email protected]>
2026-02-19 20:13:03 -03:00
luis 9bd5bcebb7 build fix 2026-02-17 05:18:33 -03:00
luis 9c228aba41 to do later 2026-02-17 05:14:54 -03:00
luis 9cb8d14edf bpet try fix crash on battle 2026-02-17 04:33:45 -03:00
luis f720d40f9b Housing: Fix empty NeighborhoodGUID for non-house-owning residents 2026-02-17 04:29:33 -03:00
luis 714ff6c110 Housing: Implement 8 improvements from retail packet sniff analysis
Wire format fixes:
- Split HouseStatusResponse.Status (uint32) into HouseStatus/PlotIndex/StatusFlags sub-fields
- Rename ResidentEntry.PlotIndex to StatusFlags (carries flag data, not plot index)
- Rename NeighborhoodPlayerEnterPlot.PlayerGuid to PlotAreaTriggerGuid (sends AT GUID)

Data structure optimization:
- Convert Neighborhood._plots from vector to fixed array<55> for O(1) plot access
- Add PlotInfo.IsOccupied() sentinel check, GetOccupiedPlotCount() helper
- Update all 8 callers across handlers, managers, and Player mirror data sync

Roster enhancement:
- Add HouseGuid as first field in roster member wire format (before PlayerGuid)
- Populate from plot data in both handler and Player roster builders

AreaTrigger integration:
- Add AreaTrigger::CreateStaticAreaTrigger() factory for non-caster ATs
- Add AreaTrigger::InitHousingPlotData() for HousingPlotAreaTriggerData fragment
- Spawn plot AreaTriggers (entry 37358) at HousePosition in HousingMap::LoadGridObjects
- Add SQL for areatrigger_create_properties (sphere, 40yd radius)

Plot aura system:
- Add at_housing_plot AreaTriggerAI script for plot enter/exit detection
- Apply own-plot aura (1266699) or visiting-plot aura (1239847) on AT enter
- Send SMSG_NEIGHBORHOOD_PLAYER_ENTER/LEAVE_PLOT packets

Multi-house architecture:
- Replace single _housing with vector<unique_ptr<Housing>> _housings
- Context-aware GetHousing() resolves via current HousingMap neighborhood
- Add GetHousingForNeighborhood(), GetAllHousings(), updated CreateHousing/DeleteHousing
- Update all handlers and HousingMap for multi-house semantics
2026-02-17 04:27:49 -03:00
luis 6b5c02fd42 Typo 2026-02-17 03:12:01 -03:00
luis a7129d7157 bpet crash fix 2026-02-17 02:11:40 -03:00
MoltenCrystal dd93eb138c DB/Spells: Add proc data for Exhilarating Blows (#31567)
Signed-off-by: luis <[email protected]>
2026-02-16 20:58:59 -03:00
MoltenCrystal 55409a045a Scripts/Spells: Implement warrior talent Overpowering Finish (#31566)
Signed-off-by: luis <[email protected]>
2026-02-16 20:58:04 -03:00
MoltenCrystal 4adaa76b13 Scripts/Spells: Implement warrior talent Tactician (#31564)
Signed-off-by: luis <[email protected]>
2026-02-16 20:54:59 -03:00
MoltenCrystal 7b0bd4aa2e Scripts/Spells: Update Sudden Death (#31550)
Signed-off-by: luis <[email protected]>
2026-02-16 20:54:25 -03:00
Shauren ada7ff67a4 Core/Players: Minor skill loading improvements
* Fix initializing skill slots after they were increased from 256 to 300
* Improve skill step detection during loading from db
* Add safeguard for invalid data saved in character_skill (value = 0)

Signed-off-by: luis <[email protected]>
2026-02-16 20:53:52 -03:00
Naddley 90a97549a5 DB/IsleOfDorn: Added Oztan Isles spawns for Phase 25033
Signed-off-by: luis <[email protected]>
2026-02-16 20:49:58 -03:00
luis df1e69e8ea Fix housing old db2 and implement missing opcodes thanks agatho 2026-02-16 20:34:56 -03:00
luis 4e9c29d59e Housing: Remove 3 DB2 stores dropped before 12.0 2026-02-16 20:08:21 -03:00
luis db5cac7e66 comment unused old db2 2026-02-16 12:45:40 -03:00
luis c10780fc1e Housing: Fix wire formats and budget values from captured packet data 2026-02-16 12:43:53 -03:00
luis fbd66c676e Db error fix and playerhousing creature spawn fix flags and level 2026-02-16 11:34:15 -03:00
luis 995d977506 fix response 2026-02-16 10:53:57 -03:00
luis c0d2340edb fix dbs 2026-02-16 10:46:00 -03:00
luis 0bc24db851 Housing update part 1 2026-02-16 10:38:09 -03:00
luis 67fc4afaaa improve handler 2026-02-16 10:35:09 -03:00
luis f82a13d428 Fix packets 2026-02-16 10:33:30 -03:00
luis 43fc752c93 Housing: Wire neighborhood initialization into server lifecycle
Route housing maps (2735/2736) to per-neighborhood instances instead of
falling through to shared world map path. This connects the existing
HousingMgr/NeighborhoodMgr backend to the actual map creation pipeline.

- Add MapEntry::IsNeighborhood() for MAP_HOUSE_NEIGHBORHOOD detection
- Add MapManager::CreateHousing() factory and housing branch in
  CreateMap()/FindInstanceIdForPlayer() with auto-assignment via
  FindOrCreateTutorialNeighborhood()
- Fix HousingMap GUID mismatch (HighGuid::Uniq -> HighGuid::Housing)
  so LoadNeighborhoodData() resolves the neighborhood pointer correctly
- Make housing maps persistent (m_unloadTimer=0)
- Add AddPlayerToMap/RemovePlayerFromMap overrides for resident tracking
- Implement LoadGridObjects to dynamically spawn For Sale Sign (417487)
  on empty plots and Cornerstone (457142) on owned plots
- Fix HandleNeighborhoodOpenCornerstoneUI stub with real neighborhood/
  plot data lookup by matching cornerstone GO position to plot index
- Add 50% occupation expansion: auto-create new public neighborhoods
  when all existing ones for a faction reach 28/55 plots occupied
- Replace hardcoded neighborhood names with GenerateNeighborhoodName()
- Remove static cornerstone SQL spawns (now dynamic per-neighborhood)
2026-02-16 10:25:39 -03:00
luis c57252bfe5 Quest: Add quest session packet structures, handlers, and enable feature flag 2026-02-16 10:17:19 -03:00
agathoandClaude Opus 4.6 f33729555d Core/GameObject: Use PlayerInteractionType field for UILink GameObjects
The GAMEOBJECT_TYPE_UI_LINK handler only mapped UILinkType values 0-3
to PlayerInteractionType via a hardcoded switch. UILinkType is deprecated
in favor of the PlayerInteractionType field (Data[7]) which allows
direct mapping to any PlayerInteractionType enum value.

When PlayerInteractionType (Data[7]) is set, send
SMSG_NPC_INTERACTION_OPEN_RESULT with the GO's GUID and the specified
interaction type. Also cast UILink.spell (Data[8]) when present, which
is required for interactions like Cornerstones that need a placement
spell to trigger the client UI.

Fixes Cornerstones (Data[7]=70, spell 1266097) and Bulletin Boards
(Data[7]=72) not opening their respective housing UIs.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Signed-off-by: luis <[email protected]>
2026-02-16 09:41:54 -03:00
luis c79d2d96fd Fix load of db2 2026-02-15 20:21:56 -03:00
luis 82b4567264 new db tables 2026-02-15 19:45:27 -03:00
luis bc721e58d2 Implement Chromie Time expansion selection system 2026-02-15 18:26:06 -03:00
luis 67203c331d Rework bpet 2026-02-15 18:09:47 -03:00
luis 6486c82d8e Bpet opcodes 2026-02-15 18:02:54 -03:00
luis 1bff3b088f Add load 2026-02-15 17:57:06 -03:00
luis 5b0e859777 initial bpet system part 1 2026-02-15 17:55:28 -03:00
Shauren 3d551cea9b Core/Scripts: Modernize InstanceScript::Load*Some*Data arrays to use std::span instead of requiring a dummy end markers inside the arrays
Signed-off-by: luis <[email protected]>
2026-02-15 17:42:14 -03:00
Shauren aa1722626e Scripts/WanderingIsle: Fix wrong function being used in bec04e62d892b5908382275a1b90442d2e3f6134
Signed-off-by: luis <[email protected]>
2026-02-15 17:41:30 -03:00
ReZaRrandModoX ba2c7b9785 Scripts/WanderingIsle: Implement quest 29421 Only the Worthy Shall Pass (#31624)
Co-authored-by: ModoX <[email protected]>
Signed-off-by: luis <[email protected]>
2026-02-15 17:40:53 -03:00
Shauren 5e826f3fd1 Core/Spells: Prevent attacking friendly targets by SPELL_ATTR7_ATTACK_ON_CHARGE_TO_UNIT
Signed-off-by: luis <[email protected]>
2026-02-15 17:39:49 -03:00
MoltenCrystal 9f5502aa3f DB/Spells: Add proc data for Storm Wall (#31547)
Signed-off-by: luis <[email protected]>
2026-02-15 17:39:19 -03:00
Jeremy bf47d82e1d Scripts/Spells: Rename script for Improved Whirlwind to match other warrior spells (#31683)
Signed-off-by: luis <[email protected]>
2026-02-15 17:36:43 -03:00