Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Patches limit of IMG archives.
- void IMGlimits::SetLimitOfIMGarchives(unsigned int numberOfIMGarchives)
- {
- CPatch::EnterNewLevel();
- // CPatch::EnableDebugMode();
- if(!CPatch::IsDebugModeActive())
- {
- if(numberOfIMGarchives > 8)
- {
- IMGlimits::ms_files = new tImgDescriptor[numberOfIMGarchives];
- memset(IMGlimits::ms_files, NULL, numberOfIMGarchives * sizeof(tImgDescriptor));
- }
- }
- else
- numberOfIMGarchives = 8;
- IMGlimits::maxNumberOfIMGarchives = numberOfIMGarchives;
- // CStreaming__InitImageList
- CPatch::PatchPointer(0x4083C0 + 1, &IMGlimits::ms_files -> streamHandle); // mov eax, offset _ZN10CStreaming8ms_filesE.streamHandle
- CPatch::PatchPointer(0x4083DD + 1, &IMGlimits::ms_files[numberOfIMGarchives].streamHandle);
- CPatch::PatchPointer(0x408459 + 2, &IMGlimits::ms_files -> streamHandle); // mov ds:_ZN10CStreaming8ms_filesE.streamHandle[esi], eax
- CPatch::PatchPointer(0x4084A0 + 2, &IMGlimits::ms_files -> streamHandle); // mov ds:_ZN10CStreaming8ms_filesE.streamHandle[esi], eax
- CPatch::PatchPointer(0x4083E8 + 1, IMGlimits::ms_files); // mov eax, offset _ZN10CStreaming8ms_filesE; CStreaming::ms_files
- CPatch::PatchPointer(0x4083F9 + 1, &IMGlimits::ms_files[numberOfIMGarchives]); // cmp eax, offset CStreaming__bLoadingBigModel
- CPatch::PatchPointer(0x40840A + 1, IMGlimits::ms_files); // mov eax, offset _ZN10CStreaming8ms_filesE; CStreaming::ms_files
- CPatch::PatchPointer(0X408419 + 1, &IMGlimits::ms_files[numberOfIMGarchives]); // cmp eax, offset CStreaming__bLoadingBigModel
- CPatch::PatchPointer(0x408439 + 2, IMGlimits::ms_files); // lea edx, _ZN10CStreaming8ms_filesE.name[ecx]; CStreaming::ms_files
- CPatch::PatchPointer(0x408477 + 2, IMGlimits::ms_files); // lea edx, _ZN10CStreaming8ms_filesE.name[edx]; CStreaming::ms_files
- // CStreaming__LoadCdDirectory
- CPatch::PatchPointer(0x5B82F0 + 1, IMGlimits::ms_files); // mov al, ds:_ZN10CStreaming8ms_filesE.name; CStreaming::ms_files
- CPatch::PatchPointer(0x5B82FC + 1, IMGlimits::ms_files); // mov esi, offset _ZN10CStreaming8ms_filesE; CStreaming::ms_files
- CPatch::PatchPointer(0x5B8301 + 2, &IMGlimits::ms_files[numberOfIMGarchives]); // cmp esi, offset CStreaming__bLoadingBigModel
- // CStreaming__AddImageToList_HOODLUM
- CPatch::PatchPointer(0x1567B93 + 1, IMGlimits::ms_files); // mov eax, offset _ZN10CStreaming8ms_filesE; CStreaming::ms_files
- CPatch::PatchPointer(0x1567BA1 + 1, &IMGlimits::ms_files[numberOfIMGarchives]); // cmp eax, offset CStreaming__bLoadingBigModel
- CPatch::PatchPointer(0x1567BB8 + 2, IMGlimits::ms_files); // lea edx, _ZN10CStreaming8ms_filesE.name[esi]; CStreaming::ms_files
- CPatch::PatchPointer(0x1567BD4 + 2, &IMGlimits::ms_files -> streamHandle); // mov ds:_ZN10CStreaming8ms_filesE.streamHandle[esi], eax
- CPatch::PatchPointer(0x1567BE1 + 2, &IMGlimits::ms_files -> isNotPlayerImg); // mov ds:_ZN10CStreaming8ms_filesE.isNotPlayerImg[esi], al
- // CStreaming__InitImageList
- CPatch::PatchPointer(0x40845F + 2, &IMGlimits::ms_files -> isNotPlayerImg); // mov ds:_ZN10CStreaming8ms_filesE.isNotPlayerImg[esi], 1
- CPatch::PatchPointer(0x4084A6 + 2, &IMGlimits::ms_files -> isNotPlayerImg); // mov ds:_ZN10CStreaming8ms_filesE.isNotPlayerImg[esi], 1
- // CStreaming::GetArchiveStreamHandle
- CPatch::PatchPointer(0x40757D + 2, &IMGlimits::ms_files -> streamHandle); // mov eax, ds:_ZN10CStreaming8ms_filesE.streamHandle[eax]
- // CStreaming__GetNextFileOnCd
- CPatch::PatchPointer(0x408FDA + 2, &IMGlimits::ms_files -> streamHandle); // mov eax, ds:_ZN10CStreaming8ms_filesE.streamHandle[edx]
- // sub_409D10
- CPatch::PatchPointer(0x409D58 + 2, &IMGlimits::ms_files -> streamHandle); // mov ecx, ds:_ZN10CStreaming8ms_filesE.streamHandle[ecx]
- // CStreaming__RequestModelStream
- CPatch::PatchPointer(0x40CC52 + 2, &IMGlimits::ms_files -> streamHandle); // mov eax, ds:_ZN10CStreaming8ms_filesE.streamHandle[edx]
- CPatch::PatchPointer(0x40CCC5 + 2, &IMGlimits::ms_files -> streamHandle); // mov ecx, ds:_ZN10CStreaming8ms_filesE.streamHandle[ecx]
- // CStreamingInfo__GetCdPosnAndSize_HOODLUM
- CPatch::PatchPointer(0x1560E66 + 2, &IMGlimits::ms_files -> streamHandle); // mov edx, ds:_ZN10CStreaming8ms_filesE.streamHandle[eax]
- // CStreaming__InitObjectInfoAndRequestModel_HOODLUM
- CPatch::PatchPointer(0x15663E5 + 2, &IMGlimits::ms_files -> streamHandle); // mov eax, ds:_ZN10CStreaming8ms_filesE.streamHandle[edx]
- // finish
- CPatch::LeaveThisLevel();
- CGenericLogStorage::SaveFormattedTextLn("Modified max number of IMG archives to: %d", numberOfIMGarchives);
- CGenericLogStorage::WriteLineSeparator();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement