Kelsidavis-WoWee/include/game
Paul f5757aca83 refactor(game): extract EntityController from GameHandler (step 1.3)
Moves entity lifecycle, name/creature/game-object caches, transport GUID
tracking, and the entire update-object pipeline out of GameHandler into a
new EntityController class (friend-class pattern, same as CombatHandler
et al.).

What moved:
- applyUpdateObjectBlock() — 1,520-line core of all entity creation,
  field updates, and movement application
- processOutOfRangeObjects() / finalizeUpdateObjectBatch()
- handleUpdateObject() / handleCompressedUpdateObject() / handleDestroyObject()
- handleNameQueryResponse() / handleCreatureQueryResponse()
- handleGameObjectQueryResponse() / handleGameObjectPageText()
- handlePageTextQueryResponse()
- enqueueUpdateObjectWork() / processPendingUpdateObjectWork()
- playerNameCache, playerClassRaceCache_, pendingNameQueries
- creatureInfoCache, pendingCreatureQueries
- gameObjectInfoCache_, pendingGameObjectQueries_
- transportGuids_, serverUpdatedTransportGuids_
- EntityManager (accessed by other handlers via getEntityManager())

8 opcodes re-registered by EntityController::registerOpcodes():
  SMSG_UPDATE_OBJECT, SMSG_COMPRESSED_UPDATE_OBJECT, SMSG_DESTROY_OBJECT,
  SMSG_NAME_QUERY_RESPONSE, SMSG_CREATURE_QUERY_RESPONSE,
  SMSG_GAMEOBJECT_QUERY_RESPONSE, SMSG_GAMEOBJECT_PAGETEXT,
  SMSG_PAGE_TEXT_QUERY_RESPONSE

Other handler files (combat, movement, social, spell, inventory, quest,
chat) updated to access EntityManager via getEntityManager() and the
name cache via getPlayerNameCache() — no logic changes.

Also included:
- .clang-tidy: add modernize-use-nodiscard,
  modernize-use-designated-initializers; set -std=c++20 in ExtraArgs
- test.sh: prepend clang's own resource include dir before GCC's to
  silence xmmintrin.h / ia32intrin.h conflicts during clang-tidy runs

Line counts:
  entity_controller.hpp  147 lines  (new)
  entity_controller.cpp  2172 lines (new)
  game_handler.cpp       8095 lines (was 10143, −2048)

Build: 0 errors, 0 warnings.
2026-03-29 08:21:27 +03:00
..
character.hpp Add body type selection for nonbinary characters and reduce preview rotation sensitivity 2026-02-09 17:56:04 -08:00
chat_handler.hpp refactor(game): split GameHandler into domain handlers 2026-03-28 09:42:37 +03:00
combat_handler.hpp refactor(game): split GameHandler into domain handlers 2026-03-28 09:42:37 +03:00
entity.hpp perf: entity/skill/DBC/warden maps to unordered_map; fix 3x contacts scan 2026-03-27 18:28:36 -07:00
entity_controller.hpp refactor(game): extract EntityController from GameHandler (step 1.3) 2026-03-29 08:21:27 +03:00
expansion_profile.hpp Unify asset system: one asset set, always high-res 2026-02-15 04:18:34 -08:00
game_handler.hpp refactor(game): extract EntityController from GameHandler (step 1.3) 2026-03-29 08:21:27 +03:00
game_utils.hpp refactor(game): split GameHandler into domain handlers 2026-03-28 09:42:37 +03:00
group_defines.hpp Handle SMSG_PARTY_MEMBER_STATS to show group health out of visual range 2026-02-26 10:25:55 -08:00
handler_types.hpp refactor(game): split GameHandler into domain handlers 2026-03-28 09:42:37 +03:00
inventory.hpp feat: server-synced bag sort, fix world map continent bounds, update docs 2026-03-24 09:24:09 -07:00
inventory_handler.hpp fix: trade accept dialog not showing (stale state from domain handler split) 2026-03-28 11:58:02 -07:00
movement_handler.hpp refactor(game): split GameHandler into domain handlers 2026-03-28 09:42:37 +03:00
opcode_aliases_generated.inc refactor: derive turtle opcodes from classic 2026-03-15 02:55:05 -07:00
opcode_enum_generated.inc Opcode registry: move to generated canonical+alias pipeline 2026-02-20 03:02:31 -08:00
opcode_names_generated.inc Opcode registry: move to generated canonical+alias pipeline 2026-02-20 03:02:31 -08:00
opcode_table.hpp refactor: derive turtle opcodes from classic 2026-03-15 02:55:05 -07:00
opcodes.hpp Add multi-expansion support with data-driven protocol layer 2026-02-12 22:56:36 -08:00
packet_parsers.hpp fix: mail money uint64, other-player cape textures, zone toast dedup, TCP_NODELAY 2026-03-27 17:20:31 -07:00
player.hpp Initial commit: wowee native WoW 3.3.5a client 2026-02-02 13:03:22 -08:00
quest_handler.hpp refactor(game): split GameHandler into domain handlers 2026-03-28 09:42:37 +03:00
social_handler.hpp fix: delegate all 113 stale GameHandler getters to domain handlers 2026-03-28 12:18:14 -07:00
spell_defines.hpp feat: world-space floating combat text above entities 2026-03-18 09:54:52 -07:00
spell_handler.hpp refactor(game): extract EntityController from GameHandler (step 1.3) 2026-03-29 08:21:27 +03:00
transport_manager.hpp Fix Deeprun Tram: visual movement, direction, and player riding 2026-03-06 23:01:11 -08:00
update_field_table.hpp feat: track shapeshift form and fire UPDATE_SHAPESHIFT_FORM events 2026-03-22 22:12:17 -07:00
warden_crypto.hpp Fix Warden module loading pipeline and HASH_REQUEST response 2026-02-14 19:20:32 -08:00
warden_emulator.hpp perf: entity/skill/DBC/warden maps to unordered_map; fix 3x contacts scan 2026-03-27 18:28:36 -07:00
warden_handler.hpp refactor(game): split GameHandler into domain handlers 2026-03-28 09:42:37 +03:00
warden_memory.hpp fix: correct sync Warden MODULE check returning 0x01 instead of 0x00 2026-03-17 07:19:37 -07:00
warden_module.hpp feat: wire Warden funcList_ dispatchers and implement PacketHandler call 2026-03-17 21:29:09 -07:00
world.hpp Initial commit: wowee native WoW 3.3.5a client 2026-02-02 13:03:22 -08:00
world_packets.hpp perf: eliminate per-frame heap allocs in M2 renderer; UI polish and report 2026-03-27 18:21:47 -07:00
zone_manager.hpp Enrich zone music from AreaTable/ZoneMusic/SoundEntries DBC chain 2026-03-09 16:04:52 -07:00