Port to WoW client 12.0.7 (build 68453)

Adapt CypherCore from 11.2.5.63796 to 12.0.7.68453 using TrinityCore as
byte-exact reference.

- Fase 1: build gate 68453 (build_info + build_auth_key SQL, keys from TC)
- Fase 2: Opcodes.cs remapped by name to 12.0.7 values
- Fase 3: 32 DB2 structs + HotfixDatabase.cs SELECTs realigned; fixed
  ReputationManager/SpellInfo refs
- Fase 4: UpdateFields ported (GameObject/Conversation/AreaTrigger/Player/
  Unit/ActivePlayer + nested VisibleItem/QuestLog/BitVectors/CraftingOrderItem/
  SkillInfo)
- Critical protocol fixes: CreateObject header +3 bits (Room/Decor/MeshObject);
  EntityFragment enum renumbered to 12.0.7 (was 11.2.5 values, breaking every
  object packet)
- New-entity foundation: TypeId/TypeMask/HighGuid.MeshObject, fragment tags
- MeshObject entity scaffold (Midnight features are wire-format only)

Builds clean (dotnet build -c Release, 0 errors).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
adevopg
2026-07-12 19:44:16 +02:00
parent c968aa3c39
commit f58dbf7756
23 changed files with 5858 additions and 3106 deletions
@@ -143,6 +143,7 @@ namespace Game.Entities
case HighGuid.Corpse:
case HighGuid.LootObject:
case HighGuid.SceneObject:
case HighGuid.MeshObject:
case HighGuid.Scenario:
case HighGuid.AIGroup:
case HighGuid.DynamicDoor:
@@ -345,6 +346,8 @@ namespace Game.Entities
return TypeId.AreaTrigger;
case HighGuid.SceneObject:
return TypeId.SceneObject;
case HighGuid.MeshObject:
return TypeId.MeshObject;
case HighGuid.Conversation:
return TypeId.Conversation;
default:
@@ -377,6 +380,7 @@ namespace Game.Entities
case HighGuid.Corpse:
case HighGuid.LootObject:
case HighGuid.SceneObject:
case HighGuid.MeshObject:
case HighGuid.Scenario:
case HighGuid.AIGroup:
case HighGuid.DynamicDoor:
@@ -605,6 +609,7 @@ namespace Game.Entities
SET_GUID_INFO(HighGuid.Corpse, FormatWorldObject, ParseWorldObject);
SET_GUID_INFO(HighGuid.LootObject, FormatWorldObject, ParseWorldObject);
SET_GUID_INFO(HighGuid.SceneObject, FormatWorldObject, ParseWorldObject);
SET_GUID_INFO(HighGuid.MeshObject, FormatWorldObject, ParseWorldObject);
SET_GUID_INFO(HighGuid.Scenario, FormatWorldObject, ParseWorldObject);
SET_GUID_INFO(HighGuid.AIGroup, FormatWorldObject, ParseWorldObject);
SET_GUID_INFO(HighGuid.DynamicDoor, FormatWorldObject, ParseWorldObject);