@@ -246,15 +246,6 @@ DWORD JMP_RETN_Cancelled_CPopulation_ConvertToDummyObject = 0x614715;
246246#define HOOKPOS_CEntity_IsOnScreen_FixObjectsScale 0x534575
247247DWORD JMP_CEntity_IsOnScreen_FixObjectsScale = 0x53457C ;
248248
249- #define HOOKPOS_CEventVehicleDamageCollision 0x6A7657
250- DWORD JMP_CEventVehicleDamageCollision_RETN = 0x6A765D ;
251-
252- #define HOOKPOS_CEventVehicleDamageCollision_Plane 0x6CC4B3
253- DWORD JMP_CEventVehicleDamageCollision_Plane_RETN = 0x6CC4B8 ;
254-
255- #define HOOKPOS_CEventVehicleDamageCollision_Bike 0x6B8EC6
256- DWORD JMP_CEventVehicleDamageCollision_Bike_RETN = 0x6B8ECC ;
257-
258249#define HOOKPOS_CClothes_RebuildPlayer 0x5A82C0
259250DWORD RETURN_CClothes_RebuildPlayera = 0x5A82C8 ;
260251DWORD RETURN_CClothes_RebuildPlayerb = 0x5A837F ;
@@ -364,7 +355,6 @@ IdleHandler* m_pIdleHandler = NULL;
364355PreFxRenderHandler* m_pPreFxRenderHandler = NULL ;
365356PreHudRenderHandler* m_pPreHudRenderHandler = NULL ;
366357ProcessCollisionHandler* m_pProcessCollisionHandler = NULL ;
367- VehicleCollisionHandler* m_pVehicleCollisionHandler = NULL ;
368358HeliKillHandler* m_pHeliKillHandler = NULL ;
369359ObjectDamageHandler* m_pObjectDamageHandler = NULL ;
370360ObjectBreakHandler* m_pObjectBreakHandler = NULL ;
@@ -499,12 +489,6 @@ void Hook_CObject_DTR();
499489
500490void HOOK_CEntity_IsOnScreen_FixObjectScale ();
501491
502- void HOOK_CEventVehicleDamageCollision ();
503-
504- void HOOK_CEventVehicleDamageCollision_Plane ();
505-
506- void HOOK_CEventVehicleDamageCollision_Bike ();
507-
508492void HOOK_CClothes_RebuildPlayer ();
509493
510494void HOOK_CProjectileInfo_Update_FindLocalPlayer_FindLocalPlayerVehicle ();
@@ -720,14 +704,6 @@ void CMultiplayerSA::InitHooks()
720704 HookInstall (HOOKPOS_ConvertToObject_CPopulationManageDummy, (DWORD)HOOK_ConvertToObject_CPopulationManageDummy, 6 );
721705 // End of building removal hooks
722706
723- // Vehicle Collision Event Hooks
724- HookInstall (HOOKPOS_CEventVehicleDamageCollision, (DWORD)HOOK_CEventVehicleDamageCollision, 6 );
725-
726- HookInstall (HOOKPOS_CEventVehicleDamageCollision_Plane, (DWORD)HOOK_CEventVehicleDamageCollision_Plane, 5 );
727-
728- HookInstall (HOOKPOS_CEventVehicleDamageCollision_Bike, (DWORD)HOOK_CEventVehicleDamageCollision_Bike, 6 );
729- // End of Vehicle Collision Event Hooks
730-
731707 // Spider CJ fix
732708 HookInstall (HOOKPOS_CClothes_RebuildPlayer, (DWORD)HOOK_CClothes_RebuildPlayer, 8 );
733709
@@ -2251,11 +2227,6 @@ void CMultiplayerSA::SetProcessCollisionHandler(ProcessCollisionHandler* pHandle
22512227 m_pProcessCollisionHandler = pHandler;
22522228}
22532229
2254- void CMultiplayerSA::SetVehicleCollisionHandler (VehicleCollisionHandler* pHandler)
2255- {
2256- m_pVehicleCollisionHandler = pHandler;
2257- }
2258-
22592230void CMultiplayerSA::SetHeliKillHandler (HeliKillHandler* pHandler)
22602231{
22612232 m_pHeliKillHandler = pHandler;
@@ -6196,111 +6167,7 @@ void _declspec(naked) HOOK_CEntity_IsOnScreen_FixObjectScale()
61966167 jmp JMP_CEntity_IsOnScreen_FixObjectsScale
61976168 }
61986169}
6199- CVehicleSAInterface* pCollisionVehicle = NULL ;
6200- void TriggerVehicleCollisionEvent ()
6201- {
6202- if (pCollisionVehicle)
6203- {
6204- CEntitySAInterface* pEntity = pCollisionVehicle->m_pCollidedEntity ;
6205- if (pEntity)
6206- {
6207- // Not handled because it triggers too much
6208- // if ( pEntity->nType != ENTITY_TYPE_BUILDING )
6209- {
6210- if (m_pVehicleCollisionHandler)
6211- {
6212- TIMING_CHECKPOINT (" +TriggerVehColEvent" );
6213- if (pEntity->nType == ENTITY_TYPE_VEHICLE)
6214- {
6215- CVehicleSAInterface* pInterface = static_cast <CVehicleSAInterface*>(pEntity);
6216- m_pVehicleCollisionHandler (pCollisionVehicle, pEntity, pEntity->m_nModelIndex , pCollisionVehicle->m_fDamageImpulseMagnitude ,
6217- pInterface->m_fDamageImpulseMagnitude , pCollisionVehicle->m_usPieceType ,
6218- pCollisionVehicle->m_vecCollisionPosition , pCollisionVehicle->m_vecCollisionImpactVelocity );
6219- }
6220- else
6221- {
6222- m_pVehicleCollisionHandler (pCollisionVehicle, pEntity, pEntity->m_nModelIndex , pCollisionVehicle->m_fDamageImpulseMagnitude , 0 .0f ,
6223- pCollisionVehicle->m_usPieceType , pCollisionVehicle->m_vecCollisionPosition ,
6224- pCollisionVehicle->m_vecCollisionImpactVelocity );
6225- }
6226- TIMING_CHECKPOINT (" -TriggerVehColEvent" );
6227- }
6228- }
6229- }
6230- }
6231- }
6232-
6233- void _declspec (naked) HOOK_CEventVehicleDamageCollision()
6234- {
6235- // .006A7657 64 A1 00 00 00 00 mov eax, large fs:0 < Hook >
6236- // .006A765D 50 push eax < Jmp Back >
6237-
6238- // ecx = this ptr, copied from esi
6239- // pVehicle->damageEntity = damage entity
6240- _asm
6241- {
6242- pushad
6243- mov pCollisionVehicle, ecx
6244- }
6245-
6246- TriggerVehicleCollisionEvent ();
6247-
6248- // do the replaced code and return back as if nothing happened.
6249- _asm
6250- {
6251- popad
6252- mov esi, pCollisionVehicle
6253- mov eax, fs:0
6254- jmp JMP_CEventVehicleDamageCollision_RETN
6255- }
6256- }
6257-
6258- DWORD dwPlaneDamageThreadshold = 0x8D33E4 ;
6259- void _declspec (naked) HOOK_CEventVehicleDamageCollision_Plane()
6260- {
6261- // .006CC4B3 A1 E4 33 8D 00 mov eax, ds:?PLANE_DAMAGE_THRESHHOLD@@3MA
6262- // 006CC4B8 53 push ebx < Jmp Back >
62636170
6264- // ecx = this ptr
6265- // pVehicle->damageEntity = damage entity
6266- _asm
6267- {
6268- pushad
6269- mov pCollisionVehicle, ecx
6270- }
6271- TriggerVehicleCollisionEvent ();
6272-
6273- // do the replaced code and return back as if nothing happened.
6274- _asm
6275- {
6276- popad
6277- mov eax, DWORD PTR DS:[8D33E4h]
6278- jmp JMP_CEventVehicleDamageCollision_Plane_RETN
6279- }
6280- }
6281-
6282- void _declspec (naked) HOOK_CEventVehicleDamageCollision_Bike()
6283- {
6284- // .006B8EC6 DC 1D F8 9E 85 00 fcomp ds:__real@0000000000000000 < Hook >
6285- // 006B8ECC 8B F1 mov esi, ecx < Jmp Back >
6286-
6287- // ecx = this ptr
6288- // pVehicle->damageEntity = damage entity
6289- _asm
6290- {
6291- pushad
6292- mov pCollisionVehicle, ecx
6293- }
6294- TriggerVehicleCollisionEvent ();
6295-
6296- // do the replaced code and return back as if nothing happened.
6297- _asm
6298- {
6299- popad
6300- fcomp DWORD PTR DS:[859EF8h]
6301- jmp JMP_CEventVehicleDamageCollision_Bike_RETN
6302- }
6303- }
63046171// ////////////////////////////////////////////////////////////////////////////////////////
63056172// Only allow rebuild player on CJ - Stops other models getting corrupted (spider CJ)
63066173// hooked at 5A82C0 8 bytes
0 commit comments