Hook CalcRefdef, store punchAngles

This commit is contained in:
8dcc 2023-07-30 20:05:22 +02:00
parent 56fa55a751
commit 0625638e31
3 changed files with 11 additions and 1 deletions

View File

@ -11,6 +11,7 @@
DECL_HOOK(CL_CreateMove); DECL_HOOK(CL_CreateMove);
DECL_HOOK(HUD_Redraw); DECL_HOOK(HUD_Redraw);
DECL_HOOK(StudioRenderModel); DECL_HOOK(StudioRenderModel);
DECL_HOOK(CalcRefdef);
/* OpenGL hooks */ /* OpenGL hooks */
DECL_HOOK(glColor4f); DECL_HOOK(glColor4f);
@ -27,6 +28,7 @@ bool hooks_init(void) {
HOOK(i_client, CL_CreateMove); HOOK(i_client, CL_CreateMove);
HOOK(i_client, HUD_Redraw); HOOK(i_client, HUD_Redraw);
HOOK(i_studiomodelrenderer, StudioRenderModel); HOOK(i_studiomodelrenderer, StudioRenderModel);
HOOK(i_client, CalcRefdef);
/* OpenGL hooks */ /* OpenGL hooks */
GL_HOOK(glColor4f); GL_HOOK(glColor4f);
@ -85,6 +87,13 @@ void h_StudioRenderModel(void* this_ptr) {
ORIGINAL(StudioRenderModel, this_ptr); ORIGINAL(StudioRenderModel, this_ptr);
} }
void h_CalcRefdef(ref_params_t* params) {
/* Store punch angles for CreateMove */
vec_copy(g_punchAngles, params->punchangle);
ORIGINAL(CalcRefdef, params);
}
/*----------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
void h_glColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a) { void h_glColor4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a) {

View File

@ -95,6 +95,7 @@ void hooks_restore(void);
DECL_HOOK_EXTERN(void, CL_CreateMove, float, usercmd_t*, int); DECL_HOOK_EXTERN(void, CL_CreateMove, float, usercmd_t*, int);
DECL_HOOK_EXTERN(int, HUD_Redraw, float, int); DECL_HOOK_EXTERN(int, HUD_Redraw, float, int);
DECL_HOOK_EXTERN(void, StudioRenderModel, void*); DECL_HOOK_EXTERN(void, StudioRenderModel, void*);
DECL_HOOK_EXTERN(void, CalcRefdef, ref_params_t*);
/* OpenGL hooks */ /* OpenGL hooks */
DECL_HOOK_EXTERN(void, glColor4f, GLfloat, GLfloat, GLfloat, GLfloat); DECL_HOOK_EXTERN(void, glColor4f, GLfloat, GLfloat, GLfloat, GLfloat);

View File

@ -62,7 +62,7 @@ typedef struct cl_clientfuncs_s {
void (*CL_CameraOffset)(float* ofs); void (*CL_CameraOffset)(float* ofs);
struct kbutton_s* (*KB_Find)(const char* name); struct kbutton_s* (*KB_Find)(const char* name);
void (*CAM_Think)(void); void (*CAM_Think)(void);
void (*V_CalcRefdef)(struct ref_params_s* pparams); void (*CalcRefdef)(struct ref_params_s* pparams);
int (*HUD_AddEntity)(int type, struct cl_entity_s* ent, int (*HUD_AddEntity)(int type, struct cl_entity_s* ent,
const char* modelname); const char* modelname);