Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // IPL: occluders
- void IPLsectionLimits::SetOccluders(int iOccluders)
- {
- // CPatch::EnableDebugMode();
- if (CPatch::IsDebugModeActive())
- iOccluders = 1000;
- else if (iOccluders > 1000)
- COcclusion__aOccluders = new tOcclusionBox[iOccluders];
- OccludersLimit = iOccluders;
- // Patch references to COcclusion::aOccluders
- #if TRUE
- CPatch::PatchPointer(0x71DE6D + 3, &COcclusion__aOccluders->midX); // mov word ptr ds:_ZN10COcclusion10aOccludersE.midX[esi], ax; COcclusion::aOccluders
- CPatch::PatchPointer(0x71DE83 + 3, &COcclusion__aOccluders->midY); // mov ds:_ZN10COcclusion10aOccludersE.midY[esi], ax
- CPatch::PatchPointer(0x71DE93 + 3, &COcclusion__aOccluders->midZ); // mov ds:_ZN10COcclusion10aOccludersE.midZ[esi], ax
- CPatch::PatchPointer(0x71DEA9 + 3, &COcclusion__aOccluders->widthY); // mov ds:_ZN10COcclusion10aOccludersE.widthY[esi], ax
- CPatch::PatchPointer(0x71DEBF + 3, &COcclusion__aOccluders->widthX); // mov ds:_ZN10COcclusion10aOccludersE.widthX[esi], ax
- CPatch::PatchPointer(0x71DEDB + 3, &COcclusion__aOccluders->height); // mov ds:_ZN10COcclusion10aOccludersE.height[esi], ax
- CPatch::PatchPointer(0x71DEF1 + 2, &COcclusion__aOccluders->rotation3); // mov ds:_ZN10COcclusion10aOccludersE.rotation3[esi], al
- CPatch::PatchPointer(0x71DF06 + 2, &COcclusion__aOccluders->rotation2); // mov ds:_ZN10COcclusion10aOccludersE.rotation2[esi], al
- CPatch::PatchPointer(0x71DF11 + 2, &COcclusion__aOccluders->rotation); // mov ds:_ZN10COcclusion10aOccludersE.rotation[esi], al
- CPatch::PatchPointer(0x71DF1F + 3, &COcclusion__aOccluders->flags); // or ds:_ZN10COcclusion10aOccludersE.flags[esi], 8000h
- CPatch::PatchPointer(0x71DF2A + 2, (void*)((int)&COcclusion__aOccluders->flags+1)); // and byte ptr (_ZN10COcclusion10aOccludersE.flags+1)[esi], 7Fh
- CPatch::PatchPointer(0x71DF33 + 3, &COcclusion__aOccluders->flags); // mov ax, ds:_ZN10COcclusion10aOccludersE.flags[esi]
- CPatch::PatchPointer(0x71DF4D + 3, &COcclusion__aOccluders->flags); // xor ds:_ZN10COcclusion10aOccludersE.flags[esi], ax
- CPatch::PatchPointer(0x720228 + 2, &COcclusion__aOccluders->midX); // lea ecx, _ZN10COcclusion10aOccludersE.midX[ebx]; COcclusion::aOccluders
- CPatch::PatchPointer(0x720247 + 3, &COcclusion__aOccluders->flags); // mov ax, ds:_ZN10COcclusion10aOccludersE.flags[ebx]
- CPatch::PatchPointer(0x72025E + 3, &COcclusion__aOccluders->flags); // mov dx, ds:_ZN10COcclusion10aOccludersE.flags[ebx]
- CPatch::PatchPointer(0x720270 + 4, &COcclusion__aOccluders->flags); // xor dx, ds:_ZN10COcclusion10aOccludersE.flags[eax*2]
- CPatch::PatchPointer(0x72027E + 4, &COcclusion__aOccluders->flags); // xor ds:_ZN10COcclusion10aOccludersE.flags[eax*2], dx
- CPatch::PatchPointer(0x720286 + 3, &COcclusion__aOccluders->flags); // mov si, ds:_ZN10COcclusion10aOccludersE.flags[ebx]
- CPatch::PatchPointer(0x720295 + 4, &COcclusion__aOccluders->flags); // mov dx, ds:_ZN10COcclusion10aOccludersE.flags[eax*2]
- CPatch::PatchPointer(0x7202B7 + 4, &COcclusion__aOccluders->flags); // xor ds:_ZN10COcclusion10aOccludersE.flags[eax*2], dx
- CPatch::PatchPointer(0x7202C4 + 3, &COcclusion__aOccluders->flags); // mov si, ds:_ZN10COcclusion10aOccludersE.flags[ebx]
- CPatch::PatchPointer(0x72031C + 3, &COcclusion__aOccluders->midX); // lea ecx, _ZN10COcclusion10aOccludersE.midX[ecx*2]; COcclusion::aOccluders
- CPatch::PatchPointer(0x720341 + 2, &COcclusion__aOccluders->midX); // lea ecx, _ZN10COcclusion10aOccludersE.midX[ebx]; COcclusion::aOccluders
- CPatch::PatchPointer(0x72035C + 3, &COcclusion__aOccluders->flags); // mov ax, ds:_ZN10COcclusion10aOccludersE.flags[ebx]
- CPatch::PatchPointer(0x720373 + 3, &COcclusion__aOccluders->flags); // mov dx, ds:_ZN10COcclusion10aOccludersE.flags[ebx]
- CPatch::PatchPointer(0x720385 + 4, &COcclusion__aOccluders->flags); // xor dx, ds:_ZN10COcclusion10aOccludersE.flags[eax*2]
- CPatch::PatchPointer(0x720393 + 4, &COcclusion__aOccluders->flags); // xor ds:_ZN10COcclusion10aOccludersE.flags[eax*2], dx
- CPatch::PatchPointer(0x72039B + 3, &COcclusion__aOccluders->flags); // mov si, ds:_ZN10COcclusion10aOccludersE.flags[ebx]
- CPatch::PatchPointer(0x7203AA + 4, &COcclusion__aOccluders->flags); // mov dx, ds:_ZN10COcclusion10aOccludersE.flags[eax*2]
- CPatch::PatchPointer(0x7203CC + 4, &COcclusion__aOccluders->flags); // xor ds:_ZN10COcclusion10aOccludersE.flags[eax*2], dx
- CPatch::PatchPointer(0x7203DA + 3, &COcclusion__aOccluders->flags); // mov si, ds:_ZN10COcclusion10aOccludersE.flags[ebx]
- #endif
- CGenericLogStorage::SaveFormattedTextLn("Modified limit of IPL:occluders to: %d",OccludersLimit);
- CGenericLogStorage::WriteLineSeparator();
- CPatch::DisableDebugMode();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement