From 48cf8b6629da53443be6b1580ee15ad768c53370 Mon Sep 17 00:00:00 2001 From: aap Date: Fri, 28 Jun 2019 19:23:28 +0200 Subject: misc stuff, mostly collision --- src/modelinfo/ModelInfo.cpp | 18 ++++++++++++++++++ src/modelinfo/ModelInfo.h | 1 + 2 files changed, 19 insertions(+) (limited to 'src/modelinfo') diff --git a/src/modelinfo/ModelInfo.cpp b/src/modelinfo/ModelInfo.cpp index acc40824..454a73f1 100644 --- a/src/modelinfo/ModelInfo.cpp +++ b/src/modelinfo/ModelInfo.cpp @@ -175,6 +175,23 @@ CModelInfo::IsBoatModel(int32 id) ((CVehicleModelInfo*)GetModelInfo(id))->m_vehicleType == VEHICLE_TYPE_BOAT; } +void +CModelInfo::RemoveColModelsFromOtherLevels(eLevelName level) +{ + int i; + CBaseModelInfo *mi; + CColModel *colmodel; + + for(i = 0; i < MODELINFOSIZE; i++){ + mi = GetModelInfo(i); + if(mi){ + colmodel = mi->GetColModel(); + if(colmodel && colmodel->level != LEVEL_NONE && colmodel->level != level) + colmodel->RemoveCollisionVolumes(); + } + } +} + STARTPATCHES InjectHook(0x50B310, CModelInfo::Initialise, PATCH_JUMP); InjectHook(0x50B5B0, CModelInfo::ShutDown, PATCH_JUMP); @@ -184,4 +201,5 @@ STARTPATCHES InjectHook(0x50BAD0, CModelInfo::AddPedModel, PATCH_JUMP); InjectHook(0x50BA60, CModelInfo::AddVehicleModel, PATCH_JUMP); InjectHook(0x50B860, (CBaseModelInfo *(*)(const char*, int*))CModelInfo::GetModelInfo, PATCH_JUMP); + InjectHook(0x50BBC0, CModelInfo::RemoveColModelsFromOtherLevels, PATCH_JUMP); ENDPATCHES diff --git a/src/modelinfo/ModelInfo.h b/src/modelinfo/ModelInfo.h index 30be96ca..d20367d1 100644 --- a/src/modelinfo/ModelInfo.h +++ b/src/modelinfo/ModelInfo.h @@ -36,4 +36,5 @@ public: } static bool IsBoatModel(int32 id); + static void RemoveColModelsFromOtherLevels(eLevelName level); }; -- cgit v1.2.3