From 4c376dc491c29f5fa099a18e82d53a6aaece208a Mon Sep 17 00:00:00 2001 From: Maikel vd H Date: Tue, 11 Dec 2012 10:30:22 +0100 Subject: [PATCH] fix mouse boundary on screen while video stretching and respect vhack setting --- ddraw.dll | Bin 186880 -> 187392 bytes render_soft.c | 25 +++++++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/ddraw.dll b/ddraw.dll index 3f58943f711bd7887ba30aac29e80451289eae87..c26078b057fdcd0a410b9b4e0a2fc9475d5e7a07 100644 GIT binary patch delta 9377 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 NexAu;+VUOt`hS)_%9a2C delta 9199 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 <= CUTSCENE_WIDTH || ddraw->height <= CUTSCENE_HEIGHT) + return FALSE; + if (ddraw->isredalert == TRUE) { if ((*InMovie && !*IsVQA640) || *ShouldStretch) @@ -42,8 +45,6 @@ BOOL detect_cutscene() } return FALSE; } - else if(ddraw->width <= CUTSCENE_WIDTH || ddraw->height <= CUTSCENE_HEIGHT) - return FALSE; return getPixel(CUTSCENE_WIDTH + 1, 0) == 0 || getPixel(CUTSCENE_WIDTH + 5, 1) == 0 ? TRUE : FALSE; } @@ -113,17 +114,33 @@ DWORD WINAPI render_soft_main(void) { StretchDIBits(ddraw->render.hDC, dst_left, dst_top, dst_width, dst_height, 0, 0, ddraw->width, ddraw->height, ddraw->primary->surface, bmi, DIB_RGB_COLORS, SRCCOPY); } - else if (!detect_cutscene()) + 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); } } - if (ddraw->primary && detect_cutscene()) // for vhack + if (ddraw->vhack && ddraw->primary && detect_cutscene()) // for vhack { + // for 800 x 600: //StretchDIBits(ddraw->render.hDC, 0, 0, ddraw->render.width, ddraw->render.height, 0, 200, CUTSCENE_WIDTH, CUTSCENE_HEIGHT, ddraw->primary->surface, bmi, DIB_RGB_COLORS, SRCCOPY); StretchDIBits(ddraw->render.hDC, 0, 0, ddraw->render.width, ddraw->render.height, 0, ddraw->render.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)) + { + ddraw->cursorclip.width = CUTSCENE_WIDTH; + ddraw->cursorclip.height = CUTSCENE_HEIGHT; + ddraw->cursor.x = CUTSCENE_WIDTH / 2; + ddraw->cursor.y = CUTSCENE_HEIGHT / 2; + } + } + 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; + ddraw->cursor.x = ddraw->width / 2; + ddraw->cursor.y = ddraw->height / 2; } LeaveCriticalSection(&ddraw->cs);