From f950d384b6ef8f8eb2ce40488c2a5bae65a4f17c Mon Sep 17 00:00:00 2001 From: Steve Dudenhoeffer Date: Sun, 7 Nov 2004 20:36:49 +0000 Subject: [PATCH] Fixed crash in FM_MessageBegin --- dlls/fakemeta/forwardmacros.h | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/dlls/fakemeta/forwardmacros.h b/dlls/fakemeta/forwardmacros.h index 38b4e92b..1139e154 100755 --- a/dlls/fakemeta/forwardmacros.h +++ b/dlls/fakemeta/forwardmacros.h @@ -650,14 +650,26 @@ #define SIMPLE_VOID_HOOK_INT_INT_CONSTVECT_EDICT(call) \ void call (int v, int vb, const float *vec, edict_t *e) \ { \ - PREPARE_VECTOR(vec); \ - FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i), v, vb, p_vec, ENTINDEX(e))); \ + if (vec) { \ + PREPARE_VECTOR(vec); \ + FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i), v, vb, p_vec, ENTINDEX(e))); \ + } else { \ + const float b[3]={0.0,0.0,0.0}; \ + PREPARE_VECTOR(b); \ + FM_ENG_HANDLE(FM_##call, (Engine[FM_##call].at(i), v, vb, p_b, ENTINDEX(e))); \ + } \ RETURN_META(mswi(lastFmRes)); \ } \ void call##_post (int v, int vb, const float *vec, edict_t *e) \ { \ - PREPARE_VECTOR(vec); \ - FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i), v, vb, p_vec, ENTINDEX(e))); \ + if (vec) { \ + PREPARE_VECTOR(vec); \ + FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i), v, vb, p_vec, ENTINDEX(e))); \ + } else { \ + const float b[3]={0.0,0.0,0.0}; \ + PREPARE_VECTOR(b); \ + FM_ENG_HANDLE_POST(FM_##call, (EnginePost[FM_##call].at(i), v, vb, p_b, ENTINDEX(e))); \ + } \ RETURN_META(MRES_IGNORED); \ } #define SIMPLE_BOOL_HOOK_EDICT_CONSTSTRING_CONSTSTRING_STRING128(call) \