1
0
mirror of https://github.com/FunkyFr3sh/cnc-ddraw.git synced 2025-03-15 06:04:49 +01:00

fix for vhack with boxing/maintas

This commit is contained in:
FunkyFr3sh 2018-03-20 19:13:08 +01:00
parent f8a3498a5a
commit e32bf1032f
2 changed files with 25 additions and 9 deletions

View File

@ -93,7 +93,8 @@ DWORD WINAPI render_main(void)
glMapBufferARB = (PFNGLMAPBUFFERARBPROC)wglGetProcAddress("glMapBufferARB");
glUnmapBufferARB = (PFNGLUNMAPBUFFERARBPROC)wglGetProcAddress("glUnmapBufferARB");
if(glGenBuffersARB && glBindBufferARB && glBufferDataARB && glMapBufferARB && glUnmapBufferARB && glDeleteBuffersARB)
if(glGenBuffersARB && glBindBufferARB && glBufferDataARB &&
glMapBufferARB && glUnmapBufferARB && glDeleteBuffersARB)
{
pboSupported = TRUE;
}
@ -224,7 +225,8 @@ DWORD WINAPI render_main(void)
{
for(j=0; j<ddraw->width; j++)
{
ptr[i*ddraw->width+j] = ddraw->primary->palette->data_bgr[((unsigned char *)ddraw->primary->surface)[i*ddraw->primary->lPitch + j*ddraw->primary->lXPitch]];
ptr[i*ddraw->width+j] =
ddraw->primary->palette->data_bgr[((unsigned char *)ddraw->primary->surface)[i*ddraw->primary->lPitch + j*ddraw->primary->lXPitch]];
}
}
@ -239,7 +241,8 @@ DWORD WINAPI render_main(void)
{
for(j=0; j<ddraw->width; j++)
{
tex[i*ddraw->width+j] = ddraw->primary->palette->data_bgr[((unsigned char *)ddraw->primary->surface)[i*ddraw->primary->lPitch + j*ddraw->primary->lXPitch]];
tex[i*ddraw->width+j] =
ddraw->primary->palette->data_bgr[((unsigned char *)ddraw->primary->surface)[i*ddraw->primary->lPitch + j*ddraw->primary->lXPitch]];
}
}
}

View File

@ -103,13 +103,20 @@ DWORD WINAPI render_soft_main(void)
ddraw->primary->palette->data_rgb = &bmi->bmiColors[0];
}
if ((ddraw->render.width != ddraw->width || ddraw->render.height != ddraw->height) && !(ddraw->vhack && detect_cutscene()) )
if ((ddraw->render.width != ddraw->width || ddraw->render.height != ddraw->height) &&
!(ddraw->vhack && detect_cutscene()) )
{
StretchDIBits(ddraw->render.hDC, ddraw->render.viewport.x, ddraw->render.viewport.y, ddraw->render.viewport.width, ddraw->render.viewport.height, 0, 0, ddraw->width, ddraw->height, ddraw->primary->surface, bmi, DIB_RGB_COLORS, SRCCOPY);
StretchDIBits(
ddraw->render.hDC, ddraw->render.viewport.x, ddraw->render.viewport.y,
ddraw->render.viewport.width, ddraw->render.viewport.height,
0, 0, ddraw->width, ddraw->height, ddraw->primary->surface,
bmi, DIB_RGB_COLORS, SRCCOPY);
}
else if (!(ddraw->vhack && detect_cutscene()))
{
SetDIBitsToDevice(ddraw->render.hDC, 0, 0, ddraw->width, ddraw->height, 0, 0, 0, ddraw->height, ddraw->primary->surface, bmi, DIB_RGB_COLORS);
SetDIBitsToDevice(
ddraw->render.hDC, 0, 0, ddraw->width, ddraw->height, 0, 0, 0,
ddraw->height, ddraw->primary->surface, bmi, DIB_RGB_COLORS);
}
}
@ -120,9 +127,14 @@ DWORD WINAPI render_soft_main(void)
ddraw->primary->palette->data_rgb = &bmi->bmiColors[0];
}
StretchDIBits(ddraw->render.hDC, 0, 0, ddraw->render.width, ddraw->render.height, 0, ddraw->height-400, CUTSCENE_WIDTH, CUTSCENE_HEIGHT, ddraw->primary->surface, bmi, DIB_RGB_COLORS, SRCCOPY);
StretchDIBits(
ddraw->render.hDC, ddraw->render.viewport.x, ddraw->render.viewport.y,
ddraw->render.viewport.width, ddraw->render.viewport.height,
0, ddraw->height-400, CUTSCENE_WIDTH, CUTSCENE_HEIGHT, ddraw->primary->surface,
bmi, DIB_RGB_COLORS, SRCCOPY);
if (ddraw->primary->palette && (ddraw->cursorclip.width != CUTSCENE_WIDTH || ddraw->cursorclip.height != CUTSCENE_HEIGHT))
if (ddraw->primary->palette &&
(ddraw->cursorclip.width != CUTSCENE_WIDTH || ddraw->cursorclip.height != CUTSCENE_HEIGHT))
{
ddraw->cursorclip.width = CUTSCENE_WIDTH;
ddraw->cursorclip.height = CUTSCENE_HEIGHT;
@ -130,7 +142,8 @@ DWORD WINAPI render_soft_main(void)
ddraw->cursor.y = CUTSCENE_HEIGHT / 2;
}
}
else if(ddraw->primary && ddraw->primary->palette && (ddraw->cursorclip.width != ddraw->width || ddraw->cursorclip.height != ddraw->height))
else if(ddraw->primary && ddraw->primary->palette &&
(ddraw->cursorclip.width != ddraw->width || ddraw->cursorclip.height != ddraw->height))
{
ddraw->cursorclip.width = ddraw->width;
ddraw->cursorclip.height = ddraw->height;