DWORD CFG_ModelLimit = 6500; templatevoid Patch(int Address, T Value) { auto Pointer = (T *)Address; unsigned long Protect; VirtualProtect(Pointer, sizeof(T), PAGE_READWRITE, &Protect); *Pointer = Value; VirtualProtect(Pointer, sizeof(T), Protect, &Protect); } void SetModelLimit() { // 6500 //GetModelFromName Patch(0x401573, (DWORD)CFG_ModelLimit); //CStreaming::SetMissionDoesntRequireSpecialChar Patch(0x40998B, (DWORD)CFG_ModelLimit); //CStreaming::RemoveCurrentZonesModels Patch(0x409B27, (DWORD)CFG_ModelLimit); Patch(0x409B9F, (DWORD)CFG_ModelLimit); Patch(0x409BA9, (DWORD)CFG_ModelLimit); Patch(0x409BC2, (DWORD)CFG_ModelLimit); Patch(0x409BCA, (DWORD)CFG_ModelLimit); Patch(0x409BD8, (DWORD)CFG_ModelLimit); Patch(0x409C37, (DWORD)CFG_ModelLimit); Patch(0x409C8A, (DWORD)CFG_ModelLimit); Patch(0x409D09, (DWORD)CFG_ModelLimit); Patch(0x409D0F, (DWORD)CFG_ModelLimit); Patch(0x409D27, (DWORD)CFG_ModelLimit); Patch(0x409D2F, (DWORD)CFG_ModelLimit); Patch(0x409D3C, (DWORD)CFG_ModelLimit); Patch(0x409D9A, (DWORD)CFG_ModelLimit); Patch(0x409DC9, (DWORD)CFG_ModelLimit); Patch(0x409E4A, (DWORD)CFG_ModelLimit); Patch(0x409E4F, (DWORD)CFG_ModelLimit); Patch(0x409E67, (DWORD)CFG_ModelLimit); Patch(0x409E6F, (DWORD)CFG_ModelLimit); Patch(0x409E7C, (DWORD)CFG_ModelLimit); Patch(0x409EDA, (DWORD)CFG_ModelLimit); Patch(0x409F09, (DWORD)CFG_ModelLimit); Patch(0x409F89, (DWORD)CFG_ModelLimit); Patch(0x409F8F, (DWORD)CFG_ModelLimit); Patch(0x409FA7, (DWORD)CFG_ModelLimit); Patch(0x409FAF, (DWORD)CFG_ModelLimit); Patch(0x409FBC, (DWORD)CFG_ModelLimit); Patch(0x40A01A, (DWORD)CFG_ModelLimit); //CStreaming::StreamZoneModels Patch(0x40A0D8, (DWORD)CFG_ModelLimit); Patch(0x40A153, (DWORD)CFG_ModelLimit); Patch(0x40A159, (DWORD)CFG_ModelLimit); Patch(0x40A171, (DWORD)CFG_ModelLimit); Patch(0x40A179, (DWORD)CFG_ModelLimit); Patch(0x40A186, (DWORD)CFG_ModelLimit); Patch(0x40A1E4, (DWORD)CFG_ModelLimit); Patch(0x40A39F, (DWORD)CFG_ModelLimit); Patch(0x40A414, (DWORD)CFG_ModelLimit); Patch(0x40A41E, (DWORD)CFG_ModelLimit); Patch(0x40A437, (DWORD)CFG_ModelLimit); Patch(0x40A43F, (DWORD)CFG_ModelLimit); Patch(0x40A44D, (DWORD)CFG_ModelLimit); Patch(0x40A4B2, (DWORD)CFG_ModelLimit); Patch(0x40A612, (DWORD)CFG_ModelLimit); Patch(0x40A69A, (DWORD)CFG_ModelLimit); Patch(0x40A719, (DWORD)CFG_ModelLimit); Patch(0x40A71F, (DWORD)CFG_ModelLimit); Patch(0x40A737, (DWORD)CFG_ModelLimit); Patch(0x40A73F, (DWORD)CFG_ModelLimit); Patch(0x40A74C, (DWORD)CFG_ModelLimit); Patch(0x40A7AA, (DWORD)CFG_ModelLimit); Patch(0x40A7C7, (DWORD)CFG_ModelLimit); Patch(0x40A7CD, (DWORD)CFG_ModelLimit); Patch(0x40A7E5, (DWORD)CFG_ModelLimit); Patch(0x40A7ED, (DWORD)CFG_ModelLimit); Patch(0x40A7FA, (DWORD)CFG_ModelLimit); Patch(0x40A858, (DWORD)CFG_ModelLimit); Patch(0x40A8CC, (DWORD)CFG_ModelLimit); Patch(0x40A94A, (DWORD)CFG_ModelLimit); Patch(0x40A950, (DWORD)CFG_ModelLimit); Patch(0x40A968, (DWORD)CFG_ModelLimit); Patch(0x40A970, (DWORD)CFG_ModelLimit); Patch(0x40A97D, (DWORD)CFG_ModelLimit); Patch(0x40A9E2, (DWORD)CFG_ModelLimit); //CStreaming::SetMissionDoesntRequireModel Patch(0x40AD79, (DWORD)CFG_ModelLimit); //CStreaming::SetModelTxdIsDeletable Patch(0x40ADF5, (DWORD)CFG_ModelLimit); Patch(0x40AE06, (DWORD)CFG_ModelLimit); Patch(0x40AE1F, (DWORD)CFG_ModelLimit); Patch(0x40AE27, (DWORD)CFG_ModelLimit); Patch(0x40AE35, (DWORD)CFG_ModelLimit); Patch(0x40AE94, (DWORD)CFG_ModelLimit); //CStreaming::SetModelIsDeletable Patch(0x40AEB9, (DWORD)CFG_ModelLimit); //CStreaming::LoadAllRequestedModels Patch(0x40B818, (DWORD)CFG_ModelLimit); //CStreaming::RequestModelStream Patch(0x40B92C, (DWORD)CFG_ModelLimit); Patch(0x40B93C, (DWORD)(0x100000000 - CFG_ModelLimit)); Patch(0x40BA2F, (DWORD)CFG_ModelLimit); Patch(0x40BA64, (DWORD)CFG_ModelLimit); Patch(0x40BAF2, (DWORD)CFG_ModelLimit); //CStreaming::GetNextFileOnCd Patch(0x40BD0F, (DWORD)CFG_ModelLimit); Patch(0x40BD40, (DWORD)CFG_ModelLimit); //CStreaming::ProcessLoadingChannel Patch(0x40BF64, (DWORD)CFG_ModelLimit); Patch(0x40C021, (DWORD)CFG_ModelLimit); //CStreaming::ConvertBufferToObject Patch(0x40C23F, (DWORD)CFG_ModelLimit); Patch(0x40C417, (DWORD)CFG_ModelLimit); Patch(0x40C43B, (DWORD)(0x100000000 - CFG_ModelLimit)); Patch(0x40C485, (DWORD)(0x100000000 - CFG_ModelLimit)); Patch(0x40C4A2, (DWORD)(0x100000000 - CFG_ModelLimit)); Patch(0x40C4BC, (DWORD)(0x100000000 - CFG_ModelLimit)); Patch(0x40C5EB, (DWORD)CFG_ModelLimit); Patch(0x40C642, (DWORD)CFG_ModelLimit); Patch(0x40C6B4, (DWORD)CFG_ModelLimit); Patch(0x40C6D2, (DWORD)CFG_ModelLimit); Patch(0x40C6E2, (DWORD)(0x100000000 - CFG_ModelLimit)); //CStreaming::FinishLoadingLargeFile Patch(0x40C7AB, (DWORD)CFG_ModelLimit); Patch(0x40C7EC, (DWORD)CFG_ModelLimit); Patch(0x40C859, (DWORD)CFG_ModelLimit); Patch(0x40C869, (DWORD)(0x100000000 - CFG_ModelLimit)); Patch(0x40C875, (DWORD)(0x100000000 - CFG_ModelLimit)); Patch(0x40C88A, (DWORD)(0x100000000 - CFG_ModelLimit)); Patch(0x40C906, (DWORD)CFG_ModelLimit); Patch(0x40C922, (DWORD)CFG_ModelLimit); Patch(0x40C932, (DWORD)(0x100000000 - CFG_ModelLimit)); //CStreaming::AreAnimsUsedByRequestedModels Patch(0x40C9F1, (DWORD)CFG_ModelLimit); Patch(0x40CA2D, (DWORD)CFG_ModelLimit); Patch(0x40CA5D, (DWORD)CFG_ModelLimit); //CStreaming_IsTxdUsedByRequestedModels Patch(0x40CABF, (DWORD)CFG_ModelLimit); Patch(0x40CAFE, (DWORD)CFG_ModelLimit); Patch(0x40CB26, (DWORD)CFG_ModelLimit); //CStreaming_IsTxdUsedByRequestedModels Patch(0x40D45E, (DWORD)CFG_ModelLimit); Patch(0x40D477, (DWORD)(0x100000000 - CFG_ModelLimit)); //CStreaming::RemoveLeastUsedModel Patch(0x40D5E7, (DWORD)CFG_ModelLimit); Patch(0x40D612, (DWORD)CFG_ModelLimit); Patch(0x40D622, (DWORD)(0x100000000 - CFG_ModelLimit)); Patch(0x40D633, (DWORD)(0x100000000 - CFG_ModelLimit)); //CStreaming::RemoveModel Patch(0x40D708, (DWORD)CFG_ModelLimit); Patch(0x40D722, (DWORD)CFG_ModelLimit); Patch(0x40D732, (DWORD)(0x100000000 - CFG_ModelLimit)); Patch(0x40D826, (DWORD)CFG_ModelLimit); Patch(0x40D835, (DWORD)CFG_ModelLimit); Patch(0x40D845, (DWORD)(0x100000000 - CFG_ModelLimit)); //CStreaming::RemoveIslandsNotUsed Patch(0x40D941, (DWORD)CFG_ModelLimit); Patch(0x40D98C, (DWORD)CFG_ModelLimit); //CStreaming::RequestModel Patch(0x40E37E, (DWORD)CFG_ModelLimit); Patch(0x40E42B, (DWORD)CFG_ModelLimit); Patch(0x40E43E, (DWORD)CFG_ModelLimit); //CStreaming::LoadCdDirectory Patch(0x40FCDD, (DWORD)CFG_ModelLimit); //CStreaming::ReInit Patch(0x40FFAB, (DWORD)CFG_ModelLimit); Patch(0x40FFE0, (DWORD)CFG_ModelLimit); Patch(0x410048, (DWORD)CFG_ModelLimit); //CStreaming_InitChannels Patch(0x4105FF, (DWORD)CFG_ModelLimit); //CTheScripts::UpdateObjectIndices Patch(0x45E8BB, (WORD)CFG_ModelLimit); //CFileLoader::LoadLevel Patch(0x48DD17, (DWORD)CFG_ModelLimit); //CRadar::StreamRadarSections Patch(0x4C28BE, (DWORD)CFG_ModelLimit); Patch(0x4C2905, (DWORD)CFG_ModelLimit); //CRadar::RemoveRadarSections Patch(0x4C295A, (DWORD)CFG_ModelLimit); //CRadar::Shutdown Patch(0x4C61DE, (DWORD)CFG_ModelLimit); //CModelInfo::GetModelInfo Patch(0x55F80B, (DWORD)CFG_ModelLimit); //CTimeModelInfo::FindOtherTimeModel Patch(0x56F3F5, (DWORD)CFG_ModelLimit); Patch(0x56F3FD, (DWORD)CFG_ModelLimit); //CTxdStore::RemoveRef Patch(0x580A47, (DWORD)CFG_ModelLimit); //CSceneEdit::ProcessCommand Patch(0x604799, (DWORD)CFG_ModelLimit); Patch(0x60480F, (DWORD)CFG_ModelLimit); Patch(0x604D3D, (DWORD)CFG_ModelLimit); Patch(0x604DB8, (DWORD)CFG_ModelLimit); //WriteCapsDat Patch(0x61DAE1, (DWORD)CFG_ModelLimit); Patch(0x61DAF6, (DWORD)CFG_ModelLimit); Patch(0x61DC41, (DWORD)CFG_ModelLimit); Patch(0x61DCE4, (DWORD)CFG_ModelLimit); //CColStore::RemoveCol Patch(0x62A7A2, (DWORD)CFG_ModelLimit); Patch(0x62A9C4, (DWORD)CFG_ModelLimit); // 7885 Patch(0x409995, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x409B2F, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x409BD0, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x409C92, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x409D34, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x409DD1, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x409E74, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x409F11, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x409FB4, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40A0E0, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40A17E, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40A3A7, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40A445, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40A61A, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40A6A2, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40A744, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40A7F2, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40A8D3, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40A975, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40AD81, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40AE2D, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40AEC1, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40B934, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40C423, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40C507, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40C517, (DWORD)(0x100000000 - CFG_ModelLimit + 6500 - 7885)); Patch(0x40C533, (DWORD)(0x100000000 - CFG_ModelLimit + 6500 - 7885)); Patch(0x40C64A, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40C6DA, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40C6F7, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40C707, (DWORD)(0x100000000 - CFG_ModelLimit + 6500 - 7885)); Patch(0x40C861, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40C92A, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40C947, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40C957, (DWORD)(0x100000000 - CFG_ModelLimit + 6500 - 7885)); Patch(0x40D466, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40D61A, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40D72A, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40D742, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40D752, (DWORD)(0x100000000 - CFG_ModelLimit + 6500 - 7885)); Patch(0x40D83D, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40D853, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40D863, (DWORD)(0x100000000 - CFG_ModelLimit + 6500 - 7885)); Patch(0x40FD1B, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x40FFE8, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x629FBA, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x62A026, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x62A1F9, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x62A312, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x62A64C, (DWORD)CFG_ModelLimit - 6500 + 7885); Patch(0x62A662, (DWORD)CFG_ModelLimit - 6500 + 7885); // 7916 Patch(0x40496B, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x405B86, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40B94D, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40B955, (DWORD)(0x100000000 - CFG_ModelLimit + 6500 - 7916)); Patch(0x40BA89, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40BD6C, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40BD89, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40BDA7, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40C50F, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40C582, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40C596, (DWORD)(0x100000000 - CFG_ModelLimit + 6500 - 7916)); Patch(0x40C652, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40C6FF, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40C722, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40C72A, (DWORD)(0x100000000 - CFG_ModelLimit + 6500 - 7916)); Patch(0x40C94F, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40C972, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40C97A, (DWORD)(0x100000000 - CFG_ModelLimit + 6500 - 7916)); Patch(0x40D652, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40D65A, (DWORD)(0x100000000 - CFG_ModelLimit + 6500 - 7916)); Patch(0x40D66B, (DWORD)(0x100000000 - CFG_ModelLimit + 6500 - 7916)); Patch(0x40D74A, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40D762, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40D76A, (DWORD)(0x100000000 - CFG_ModelLimit + 6500 - 7916)); Patch(0x40D85B, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40D872, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40D87A, (DWORD)(0x100000000 - CFG_ModelLimit + 6500 - 7916)); Patch(0x40E457, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x40FD48, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x51562B, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x51563A, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x51564A, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x51565A, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x51566E, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x535DB1, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x535F12, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x631A12, (DWORD)CFG_ModelLimit - 6500 + 7916); Patch(0x631A9F, (DWORD)CFG_ModelLimit - 6500 + 7916); }