@@ -198,6 +198,9 @@ DWORD RETURN_ProcessEntityCollision = 0x4185C0;
198198#define HOOKPOS_PreFxRender 0x049E650
199199DWORD RETURN_PreFxRender = 0x0404D1E ;
200200
201+ #define HOOKPOS_PostColorFilterRender 0x705099
202+ DWORD RETURN_PostColorFilterRender = 0x70509E ;
203+ 201204#define HOOKPOS_PreHUDRender 0x053EAD8
202205DWORD RETURN_PreHUDRender = 0x053EADD ;
203206
@@ -377,6 +380,7 @@ PostWorldProcessHandler* m_pPostWorldProcessHandler = NULL;
377380PostWorldProcessPedsAfterPreRenderHandler* m_postWorldProcessPedsAfterPreRenderHandler = nullptr ;
378381IdleHandler* m_pIdleHandler = NULL ;
379382PreFxRenderHandler* m_pPreFxRenderHandler = NULL ;
383+ PostColorFilterRenderHandler* m_pPostColorFilterRenderHandler = nullptr ;
380384PreHudRenderHandler* m_pPreHudRenderHandler = NULL ;
381385ProcessCollisionHandler* m_pProcessCollisionHandler = NULL ;
382386HeliKillHandler* m_pHeliKillHandler = NULL ;
@@ -479,6 +483,7 @@ void HOOK_Transmission_CalculateDriveAcceleration();
479483void HOOK_isVehDriveTypeNotRWD ();
480484void HOOK_isVehDriveTypeNotFWD ();
481485void HOOK_PreFxRender ();
486+ void HOOK_PostColorFilterRender ();
482487void HOOK_PreHUDRender ();
483488
484489void HOOK_CTrafficLights_GetPrimaryLightState ();
@@ -657,6 +662,7 @@ void CMultiplayerSA::InitHooks()
657662 HookInstall (HOOKPOS_VehColCB, (DWORD)HOOK_VehColCB, 29 );
658663 HookInstall (HOOKPOS_VehCol, (DWORD)HOOK_VehCol, 9 );
659664 HookInstall (HOOKPOS_PreFxRender, (DWORD)HOOK_PreFxRender, 5 );
665+ HookInstall (HOOKPOS_PostColorFilterRender, (DWORD)HOOK_PostColorFilterRender, 5 );
660666 HookInstall (HOOKPOS_PreHUDRender, (DWORD)HOOK_PreHUDRender, 5 );
661667 HookInstall (HOOKPOS_CAutomobile__ProcessSwingingDoor, (DWORD)HOOK_CAutomobile__ProcessSwingingDoor, 7 );
662668
@@ -2315,6 +2321,11 @@ void CMultiplayerSA::SetPreFxRenderHandler(PreFxRenderHandler* pHandler)
23152321 m_pPreFxRenderHandler = pHandler;
23162322}
23172323
2324+ void CMultiplayerSA::SetPostColorFilterRenderHandler (PostColorFilterRenderHandler* pHandler)
2325+ {
2326+ m_pPostColorFilterRenderHandler = pHandler;
2327+ }
2328+ 23182329void CMultiplayerSA::SetPreHudRenderHandler (PreHudRenderHandler* pHandler)
23192330{
23202331 m_pPreHudRenderHandler = pHandler;
@@ -4780,6 +4791,24 @@ void _declspec(naked) HOOK_PreFxRender()
47804791 }
47814792}
47824793
4794+ // Hooked from 00705099 5 bytes
4795+ void _declspec (naked) HOOK_PostColorFilterRender()
4796+ {
4797+ _asm
4798+ {
4799+ pushad
4800+ }
4801+ 4802+ if (m_pPostColorFilterRenderHandler) m_pPostColorFilterRenderHandler ();
4803+ 4804+ _asm
4805+ {
4806+ popad
4807+ mov al, ds:0C402BAh
4808+ jmp RETURN_PostColorFilterRender // 0070509E
4809+ }
4810+ }
4811+ 47834812// Hooked from 0053EAD8 5 bytes
47844813void _declspec (naked) HOOK_PreHUDRender()
47854814{
0 commit comments