Kelsidavis-WoWee/include
Kelsi 005b1fcb54 feat: implement Warden API stub dispatch via Unicorn UC_HOOK_CODE
Previously hookAPI() allocated a stub address and registered a C++ handler
but never stored the handler or wrote any executable code to the stub
region, meaning any Warden module call to a Windows API would execute zeros
and crash or silently return garbage.

Changes:
- Store ApiHookEntry {argCount, handler} per stub address in apiHandlers_
- Write RET (0xC3) to stub memory as a safe fallback
- Register UC_HOOK_CODE over the API stub address range during initialize()
- hookCode() now detects stub addresses, reads args from the emulated stack,
  dispatches to the C++ handler, then simulates stdcall epilogue by setting
  EAX/ESP/EIP so Unicorn returns cleanly to the caller
- Convert static-local nextStubAddr to instance member nextApiStubAddr_
  so re-initialization resets the allocator correctly
- Known arg counts for all 7 registered Windows APIs (VirtualAlloc,
  VirtualFree, GetTickCount, Sleep, GetCurrentThreadId,
  GetCurrentProcessId, ReadProcessMemory)
2026-03-17 21:22:41 -07:00
..
audio feat: play audio notification when a whisper is received 2026-03-12 06:12:37 -07:00
auth Vanilla/Turtle WoW support: M2 loading, bone parsing, textures, auth 2026-02-13 16:53:28 -08:00
core fix: stabilize turtle world entry session handling 2026-03-15 01:21:23 -07:00
game feat: implement Warden API stub dispatch via Unicorn UC_HOOK_CODE 2026-03-17 21:22:41 -07:00
network fix: stabilize classic/turtle world session handling 2026-03-15 06:13:36 -07:00
pipeline feat: implement M2 ribbon emitter rendering for spell trail effects 2026-03-13 01:17:30 -07:00
platform Fix all remaining build warnings and eliminate UB in binary parsers 2026-02-23 19:58:38 -08:00
rendering feat: show corpse skull marker on world map when player is a ghost 2026-03-17 19:52:17 -07:00
third_party Fix cross-platform FSR3 compile path and Path-A runtime wiring 2026-03-09 04:24:24 -07:00
ui feat: handle SMSG_PET_UNLEARN_CONFIRM with pet talent respec dialog 2026-03-17 21:13:27 -07:00