Commit Graph
669 Commits
Author SHA1 Message Date
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
MoltenCrystal d683198682 Scripts/Spells: Implement warrior talent Bloodsurge (#31546)
Signed-off-by: luis <[email protected]>
2026-02-15 17:35:48 -03:00
MoltenCrystal 171822f33f Scripts/Spells: Add proc data for Concussive Blows (#31540)
Signed-off-by: luis <[email protected]>
2026-02-15 17:34:51 -03:00
MoltenCrystal b84ebc16ea Scripts/Spells: Implement Intervene (#31536)
Signed-off-by: luis <[email protected]>
2026-02-15 17:33:55 -03:00
luis c61b8a8f2f 65893 2026-02-15 17:33:28 -03:00
Shauren c4d0b7e41f Core/Misc: Update GameError enum for 12.0.1
Signed-off-by: luis <[email protected]>
2026-02-15 17:22:46 -03:00
MoltenCrystal 3f8ef17bc6 Scripts/Spells: Fix warrior talent Pain and Gain proc and heal amount (#31535)
Signed-off-by: luis <[email protected]>
2026-02-15 17:20:53 -03:00
Shauren 4940084c35 Core/Spells: Update targets caps for 12.0.1
Signed-off-by: luis <[email protected]>
2026-02-15 17:12:10 -03:00
Cristian Vintila 3c78d82b10 Scripts/Spells: Implement druid talent Elune's Favored (#31534)
Signed-off-by: luis <[email protected]>
2026-02-15 17:11:34 -03:00
luis aa117f08c3 currency flags 2026-02-15 17:05:56 -03:00
luis 843652242a Full opcodes and spawn map for housing 2026-02-15 17:00:33 -03:00
luis bd2f6535b2 Core fix initial crashes 2026-02-15 16:55:34 -03:00
luis 51b67f6ee0 Playerhousing misc 2026-02-15 16:07:09 -03:00
luis d58362f3a2 Core playerhousing Most complete need change opcode status later 2026-02-15 11:11:11 -03:00
luis d95f86d2df fix sql char table 2026-02-12 21:53:42 -03:00