new housing
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
-- Migrate existing houses to racial WMO styles.
|
||||
-- Previously all Alliance houses got WMO=9 (Human) and Horde got WMO=87 (Orc).
|
||||
-- Now: Night Elf → 55 (Woodland), Blood Elf → 56 (Engraved).
|
||||
|
||||
-- Night Elf (race=4): Alliance default 9 → Woodland 55
|
||||
UPDATE character_housing ch
|
||||
INNER JOIN characters c ON ch.guid = c.guid
|
||||
SET ch.houseType = 55
|
||||
WHERE c.race = 4 AND ch.houseType = 9;
|
||||
|
||||
-- Blood Elf (race=10): Horde default 87 → Engraved 56
|
||||
UPDATE character_housing ch
|
||||
INNER JOIN characters c ON ch.guid = c.guid
|
||||
SET ch.houseType = 56
|
||||
WHERE c.race = 10 AND ch.houseType = 87;
|
||||
@@ -5515,9 +5515,10 @@ struct ExteriorComponentGroupXHookEntry
|
||||
|
||||
struct ExteriorComponentHookEntry
|
||||
{
|
||||
uint32 ID;
|
||||
// Field order must match LoadInfo: Position, Rotation, ID, TypeID, CompID
|
||||
std::array<float, 3> Position;
|
||||
std::array<float, 3> Rotation;
|
||||
uint32 ID;
|
||||
int32 ExteriorComponentTypeID;
|
||||
uint32 ExteriorComponentID; // ParentIndexField - must be unsigned
|
||||
};
|
||||
|
||||
@@ -705,6 +705,7 @@ namespace
|
||||
{
|
||||
case 1:
|
||||
case 4:
|
||||
case 5:
|
||||
ctx.advance_to(AppendComponent<no_padding, dec>(ctx, subType));
|
||||
ctx.advance_to(AppendComponent<no_padding, dec>(ctx, uint32(guid.GetRawValue(1) >> 32) & 0xFFFF));
|
||||
ctx.advance_to(AppendComponent<no_padding, dec>(ctx, uint32(guid.GetRawValue(1)) & 0xFFFFFFFF));
|
||||
@@ -742,6 +743,7 @@ namespace
|
||||
{
|
||||
case 1:
|
||||
case 4:
|
||||
case 5:
|
||||
if (!ParseComponent<dec>(guidString, &arg1)
|
||||
|| !ParseComponent<dec>(guidString, &arg2)
|
||||
|| !ParseComponent<hex>(guidString, &arg3)
|
||||
@@ -1055,6 +1057,7 @@ ObjectGuid ObjectGuidFactory::CreateHousing(uint32 subType, uint32 arg1, uint32
|
||||
{
|
||||
case 1:
|
||||
case 4:
|
||||
case 5: // Fixture GUIDs: same format as neighborhood/house GUIDs
|
||||
return ObjectGuid(uint64((uint64(HighGuid::Housing) << 58)
|
||||
| (uint64(subType & 0x1F) << 53)
|
||||
| (uint64(arg1 & 0xFFFF) << 32)
|
||||
|
||||
@@ -299,7 +299,7 @@ void HousingMap::SpawnPlotGameObjects()
|
||||
// fragment, SpellForVisuals, SpellXSpellVisualID) BEFORE the CREATE_OBJECT
|
||||
// packet is sent. The client needs FHousingPlotAreaTrigger_C and
|
||||
// DecalPropertiesId=621 in the initial create to render the plot border decal.
|
||||
AreaTrigger* plotAt = AreaTrigger::CreateStaticAreaTrigger({ .Id = 37358, .IsCustom = false }, this, atPos, -1, false);
|
||||
AreaTrigger* plotAt = AreaTrigger::CreateStaticAreaTrigger({ .Id = 37358, .IsCustom = false }, this, atPos, -1);
|
||||
if (plotAt)
|
||||
{
|
||||
PhasingHandler::InitDbPhaseShift(plotAt->GetPhaseShift(), PHASE_USE_FLAGS_ALWAYS_VISIBLE, 0, 0);
|
||||
|
||||
Reference in New Issue
Block a user