From 2e09f23f5556c051429fbf67c3114d1c7711ffff Mon Sep 17 00:00:00 2001 From: hzqst <113660872@qq.com> Date: Tue, 8 Oct 2024 16:02:33 +0800 Subject: [PATCH] fix crash in SV_MoveEx --- fallguys/engine_hook.cpp | 4 ++-- fallguys/meta_api.cpp | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/fallguys/engine_hook.cpp b/fallguys/engine_hook.cpp index f42eff0..bf3ad0a 100644 --- a/fallguys/engine_hook.cpp +++ b/fallguys/engine_hook.cpp @@ -262,12 +262,12 @@ void SV_ClipToLinksEx(areanode_t *node, moveclip_t *clip) trace_t SV_MoveEx(vec3_t start, vec3_t mins, vec3_t maxs, vec3_t end, int type, edict_t *passedict, qboolean monsterClipBrush) { - moveclip_t clip = { 0 }; + moveclip_t clip; int i; vec3_t worldEndPoint; float worldFraction; - //memset(&clip, 0, sizeof(moveclip_t)); + memset(&clip, 0, sizeof(moveclip_t)); // clip to world SV_SingleClipMoveToEntity_10152(g_engfuncs.pfnPEntityOfEntIndex(0), start, mins, maxs, end, &clip.trace, passedict); diff --git a/fallguys/meta_api.cpp b/fallguys/meta_api.cpp index ec56d7d..ccdd5d4 100644 --- a/fallguys/meta_api.cpp +++ b/fallguys/meta_api.cpp @@ -247,14 +247,14 @@ C_DLLEXPORT int Meta_Attach(PLUG_LOADTIME /* now */, FILL_FROM_SIGNATURED_CALLER_FROM_END(server, PM_PlaySoundFX_SERVER, -1); FILL_FROM_SIGNATURED_CALLER_FROM_END(server, CPlayerMove_PlayStepSound, -1); + FILL_FROM_SIGNATURED_CALLER_FROM_START(engine, build_number, 0); + FILL_FROM_SIGNATURE(engine, SV_Physics); FILL_FROM_SIGNATURE(engine, SV_PushEntity); FILL_FROM_SIGNATURE(engine, SV_PushMove); FILL_FROM_SIGNATURE(engine, SV_PushRotate); FILL_FROM_SIGNATURE(engine, SV_WriteMovevarsToClient); - FILL_FROM_SIGNATURED_CALLER_FROM_START(engine, build_number, 0); - if (g_pfn_build_number() >= 10152) { FILL_FROM_SIGNATURED_CALLER_FROM_END(engine, SV_SingleClipMoveToEntity_10152, -1); @@ -296,6 +296,7 @@ C_DLLEXPORT int Meta_Attach(PLUG_LOADTIME /* now */, if (!g_pfn_build_number) { FILL_FROM_SIGNATURE_TY(engine, build_number, i686); + LOG_MESSAGE(PLID, "build_number found at %p!", g_pfn_build_number); LOG_MESSAGE(PLID, "Current engine build_number = %d!", g_pfn_build_number()); @@ -524,6 +525,8 @@ C_DLLEXPORT int Meta_Attach(PLUG_LOADTIME /* now */, } else { + LOG_MESSAGE(PLID, "Current engine build_number = %d!", g_pfn_build_number()); + FILL_FROM_SYMBOL(engine, SV_Physics); FILL_FROM_SYMBOL(engine, SV_PushEntity); FILL_FROM_SYMBOL(engine, SV_PushMove);