Add hook 5 (loadModelFromFileAsync), combatlog stub, framecrash vtable hooks, marker assets

Hook 5 intercepts loadModelFromFileAsync (0x71d4e0) to synchronously load M2
model data for fake in-memory file contexts. processLoadedModelData returns 1
and entities are created, but file context cleanup is currently skipped (leaks
0x60 bytes per load) due to a crash in the cleanup path, and there's a later
EIP=0 crash during the game main loop that needs investigation.

Also adds: combatlog module stub, framecrash anchor vtable hooks (GetRelativeTo
and GetWidth/GetHeight crash guards), embedded Raid_UI_FX model assets with
skins and textures, WU_XYZ debug model.
This commit is contained in:
MarcelineVQ
2026-02-27 16:47:42 -08:00
parent fe1bfdedb8
commit a8ebe21b0d
34 changed files with 1351 additions and 20 deletions
+2
View File
@@ -4,6 +4,7 @@
//! and a Lua C callback for `/wu outline` commands.
const hook = @import("hook");
const con = @import("../console.zig");
const tracker = @import("tracker.zig");
const model_hook = @import("model_hook.zig");
const d3d9_hook = @import("d3d9_hook.zig");
@@ -13,6 +14,7 @@ const d3d9_hook = @import("d3d9_hook.zig");
/// dummy D3D9 device during engine init corrupts the d3d9 proxy's state and
/// causes model rendering to stutter at ~10fps.
pub fn init() bool {
con.print("[outline] Module loaded\n");
if (!model_hook.installHooks()) return false;
return true;
}