diff --git a/cnc-ddraw.vcxproj b/cnc-ddraw.vcxproj index 2200a1a..32ced64 100644 --- a/cnc-ddraw.vcxproj +++ b/cnc-ddraw.vcxproj @@ -161,9 +161,9 @@ - Level3 + Level2 Disabled - WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;_DEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) MultiThreadedDebug inc;src\detours @@ -182,13 +182,13 @@ if exist "$(LocalDebuggerCommand)" if exist "$(LocalDebuggerWorkingDirectory)" - Level3 + Level2 MaxSpeed true true - WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + _CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) MultiThreaded inc;src\detours @@ -202,13 +202,13 @@ if exist "$(LocalDebuggerCommand)" if exist "$(LocalDebuggerWorkingDirectory)" - Level3 + Level2 MaxSpeed true true - _DEBUG;_DEBUG_X;WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + _DEBUG;_DEBUG_X;_CRT_SECURE_NO_WARNINGS;WIN32;NDEBUG;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) MultiThreaded inc;src\detours diff --git a/inc/dd.h b/inc/dd.h index f022e2d..acd89e7 100644 --- a/inc/dd.h +++ b/inc/dd.h @@ -83,7 +83,7 @@ typedef struct cnc_ddraw HWND hwnd; WNDPROC wndproc; - struct { float x; float y; } cursor; + struct { DWORD x; DWORD y; } cursor; BOOL locked; BOOL adjmouse; BOOL devmode; diff --git a/src/config.c b/src/config.c index 24d5180..6c02e5b 100644 --- a/src/config.c +++ b/src/config.c @@ -73,7 +73,7 @@ void cfg_load() if (g_ddraw->render.minfps > 0) { - g_ddraw->render.minfps_tick_len = 1000.0f / g_ddraw->render.minfps; + g_ddraw->render.minfps_tick_len = (DWORD)(1000.0f / g_ddraw->render.minfps); } if (g_ddraw->accurate_timers || g_ddraw->vsync) @@ -88,8 +88,8 @@ void cfg_load() g_ddraw->ticks_limiter.htimer = CreateWaitableTimer(NULL, TRUE, NULL); float len = 1000.0f / g_ddraw->maxgameticks; - g_ddraw->ticks_limiter.tick_length_ns = len * 10000; - g_ddraw->ticks_limiter.tick_length = len + 0.5f; + g_ddraw->ticks_limiter.tick_length_ns = (LONGLONG)(len * 10000); + g_ddraw->ticks_limiter.tick_length = (DWORD)(len + 0.5f); } if (g_ddraw->maxgameticks >= 0 || g_ddraw->maxgameticks == -2) @@ -99,8 +99,8 @@ void cfg_load() g_ddraw->flip_limiter.htimer = CreateWaitableTimer(NULL, TRUE, NULL); float flip_len = 1000.0f / 60; - g_ddraw->flip_limiter.tick_length_ns = flip_len * 10000; - g_ddraw->flip_limiter.tick_length = flip_len + 0.5f; + g_ddraw->flip_limiter.tick_length_ns = (LONGLONG)(flip_len * 10000); + g_ddraw->flip_limiter.tick_length = (DWORD)(flip_len + 0.5f); } if ((g_ddraw->fullscreen = cfg_get_bool("fullscreen", FALSE))) diff --git a/src/dd.c b/src/dd.c index 1fcb1bf..7b427e5 100644 --- a/src/dd.c +++ b/src/dd.c @@ -512,12 +512,12 @@ HRESULT dd_SetDisplayMode(DWORD width, DWORD height, DWORD bpp) else if (maintas) { g_ddraw->render.viewport.width = g_ddraw->render.width; - g_ddraw->render.viewport.height = ((float)g_ddraw->height / g_ddraw->width) * g_ddraw->render.viewport.width; + g_ddraw->render.viewport.height = (int)(((float)g_ddraw->height / g_ddraw->width) * g_ddraw->render.viewport.width); if (g_ddraw->render.viewport.height > g_ddraw->render.height) { g_ddraw->render.viewport.width = - ((float)g_ddraw->render.viewport.width / g_ddraw->render.viewport.height) * g_ddraw->render.height; + (int)(((float)g_ddraw->render.viewport.width / g_ddraw->render.viewport.height) * g_ddraw->render.height); g_ddraw->render.viewport.height = g_ddraw->render.height; } diff --git a/src/ddsurface.c b/src/ddsurface.c index ac5d513..945dba8 100644 --- a/src/ddsurface.c +++ b/src/ddsurface.c @@ -1056,7 +1056,7 @@ HRESULT dd_CreateSurface(LPDDSURFACEDESC lpDDSurfaceDesc, LPDIRECTDRAWSURFACE FA dst_surface->bmi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * 256); dst_surface->bmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER); dst_surface->bmi->bmiHeader.biWidth = dst_surface->width; - dst_surface->bmi->bmiHeader.biHeight = -(dst_surface->height + 200); + dst_surface->bmi->bmiHeader.biHeight = -((int)dst_surface->height + 200); dst_surface->bmi->bmiHeader.biPlanes = 1; dst_surface->bmi->bmiHeader.biBitCount = dst_surface->bpp; dst_surface->bmi->bmiHeader.biCompression = dst_surface->bpp == 16 ? BI_BITFIELDS : BI_RGB; @@ -1093,7 +1093,7 @@ HRESULT dd_CreateSurface(LPDDSURFACEDESC lpDDSurfaceDesc, LPDIRECTDRAWSURFACE FA dst_surface->hdc = CreateCompatibleDC(g_ddraw->render.hdc); dst_surface->bitmap = CreateDIBSection(dst_surface->hdc, dst_surface->bmi, DIB_RGB_COLORS, (void **)&dst_surface->surface, NULL, 0); - dst_surface->bmi->bmiHeader.biHeight = -dst_surface->height; + dst_surface->bmi->bmiHeader.biHeight = -((int)dst_surface->height); if (!dst_surface->bitmap) { diff --git a/src/fps_limiter.c b/src/fps_limiter.c index 083f0d3..8637d53 100644 --- a/src/fps_limiter.c +++ b/src/fps_limiter.c @@ -21,8 +21,8 @@ void fpsl_init() if (max_fps > 0) { float len = 1000.0f / max_fps; - g_fpsl.tick_length_ns = len * 10000; - g_fpsl.tick_length = len;// + 0.5f; + g_fpsl.tick_length_ns = (LONGLONG)(len * 10000); + g_fpsl.tick_length = (DWORD)len;// + 0.5f; } if (g_fpsl.got_adapter && g_fpsl.D3DKMTCloseAdapter) diff --git a/src/mouse.c b/src/mouse.c index 06eb2ea..785855b 100644 --- a/src/mouse.c +++ b/src/mouse.c @@ -44,13 +44,13 @@ void mouse_lock() SetRect(&rc, pt.x, pt.y, pt2.x, pt2.y); - rc.bottom -= (g_ddraw->mouse_y_adjust * 2) * g_ddraw->render.scale_h; + rc.bottom -= (LONG)((g_ddraw->mouse_y_adjust * 2) * g_ddraw->render.scale_h); if(g_ddraw->adjmouse) { real_SetCursorPos( - rc.left + (g_ddraw->cursor.x * g_ddraw->render.scale_w), - rc.top + ((g_ddraw->cursor.y - g_ddraw->mouse_y_adjust) * g_ddraw->render.scale_h)); + (int)(rc.left + (g_ddraw->cursor.x * g_ddraw->render.scale_w)), + (int)(rc.top + ((g_ddraw->cursor.y - g_ddraw->mouse_y_adjust) * g_ddraw->render.scale_h))); } else { @@ -130,7 +130,7 @@ void mouse_unlock() ReleaseCapture(); real_SetCursorPos( - rc.left + g_ddraw->render.viewport.x + (g_ddraw->cursor.x * g_ddraw->render.scale_w), - rc.top + g_ddraw->render.viewport.y + ((g_ddraw->cursor.y + g_ddraw->mouse_y_adjust) * g_ddraw->render.scale_h)); + (int)(rc.left + g_ddraw->render.viewport.x + (g_ddraw->cursor.x * g_ddraw->render.scale_w)), + (int)(rc.top + g_ddraw->render.viewport.y + ((g_ddraw->cursor.y + g_ddraw->mouse_y_adjust) * g_ddraw->render.scale_h))); } } diff --git a/src/opengl_utils.c b/src/opengl_utils.c index 15f7cbc..92f09cc 100644 --- a/src/opengl_utils.c +++ b/src/opengl_utils.c @@ -346,8 +346,8 @@ GLuint oglu_build_program_from_file(const char *file_path, BOOL core_profile) { if (core_profile) { - if (strnicmp(version_start, "#version 130", 12) == 0 || - strnicmp(version_start, "#version 140", 12) == 0) + if (_strnicmp(version_start, "#version 130", 12) == 0 || + _strnicmp(version_start, "#version 140", 12) == 0) { memcpy(version_start, "#version 150", 12); } diff --git a/src/render_ogl.c b/src/render_ogl.c index 162fec9..b705367 100644 --- a/src/render_ogl.c +++ b/src/render_ogl.c @@ -436,12 +436,12 @@ static void ogl_init_scale_program() float input_size[2], output_size[2], texture_size[2]; - input_size[0] = g_ddraw->width; - input_size[1] = g_ddraw->height; - texture_size[0] = g_ogl.surface_tex_width; - texture_size[1] = g_ogl.surface_tex_height; - output_size[0] = g_ddraw->render.viewport.width; - output_size[1] = g_ddraw->render.viewport.height; + input_size[0] = (float)g_ddraw->width; + input_size[1] = (float)g_ddraw->height; + texture_size[0] = (float)g_ogl.surface_tex_width; + texture_size[1] = (float)g_ogl.surface_tex_height; + output_size[0] = (float)g_ddraw->render.viewport.width; + output_size[1] = (float)g_ddraw->render.viewport.height; glUniform2fv(glGetUniformLocation(g_ogl.scale_program, "OutputSize"), 1, output_size); glUniform2fv(glGetUniformLocation(g_ogl.scale_program, "TextureSize"), 1, texture_size); diff --git a/src/winapi_hooks.c b/src/winapi_hooks.c index a5fd378..4050764 100644 --- a/src/winapi_hooks.c +++ b/src/winapi_hooks.c @@ -56,8 +56,8 @@ BOOL WINAPI fake_GetCursorPos(LPPOINT lpPoint) if(g_ddraw->adjmouse) { - g_ddraw->cursor.x = pt.x * g_ddraw->render.unscale_w; - g_ddraw->cursor.y = pt.y * g_ddraw->render.unscale_h; + g_ddraw->cursor.x = (DWORD)(pt.x * g_ddraw->render.unscale_w); + g_ddraw->cursor.y = (DWORD)(pt.y * g_ddraw->render.unscale_h); } else { @@ -89,8 +89,8 @@ BOOL WINAPI fake_GetCursorPos(LPPOINT lpPoint) if (lpPoint) { - lpPoint->x = (int)g_ddraw->cursor.x; - lpPoint->y = (int)g_ddraw->cursor.y; + lpPoint->x = g_ddraw->cursor.x; + lpPoint->y = g_ddraw->cursor.y; } return TRUE; @@ -194,8 +194,8 @@ BOOL WINAPI fake_SetCursorPos(int X, int Y) if (g_ddraw && g_ddraw->adjmouse) { - pt.x *= g_ddraw->render.scale_w; - pt.y *= g_ddraw->render.scale_h; + pt.x = (LONG)(pt.x * g_ddraw->render.scale_w); + pt.y = (LONG)(pt.y * g_ddraw->render.scale_h); } return g_ddraw && real_ClientToScreen(g_ddraw->hwnd, &pt) && real_SetCursorPos(pt.x, pt.y); @@ -263,8 +263,8 @@ LRESULT WINAPI fake_SendMessageA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lPar { if (g_ddraw && g_ddraw->hwnd == hWnd && g_ddraw->adjmouse && Msg == WM_MOUSEMOVE) { - int x = GET_X_LPARAM(lParam) * g_ddraw->render.scale_w; - int y = GET_Y_LPARAM(lParam) * g_ddraw->render.scale_h; + int x = (int)(GET_X_LPARAM(lParam) * g_ddraw->render.scale_w); + int y = (int)(GET_Y_LPARAM(lParam) * g_ddraw->render.scale_h); lParam = MAKELPARAM(x, y); } diff --git a/src/wndproc.c b/src/wndproc.c index 1953839..b48f2de 100644 --- a/src/wndproc.c +++ b/src/wndproc.c @@ -227,19 +227,19 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam case WMSZ_LEFT: case WMSZ_RIGHT: { - windowrc->bottom += scaleH * clientrc.right - clientrc.bottom; + windowrc->bottom += (LONG)(scaleH * clientrc.right - clientrc.bottom); break; } case WMSZ_TOP: case WMSZ_BOTTOM: { - windowrc->right += scaleW * clientrc.bottom - clientrc.right; + windowrc->right += (LONG)(scaleW * clientrc.bottom - clientrc.right); break; } case WMSZ_TOPRIGHT: case WMSZ_TOPLEFT: { - windowrc->top -= scaleH * clientrc.right - clientrc.bottom; + windowrc->top -= (LONG)(scaleH * clientrc.right - clientrc.bottom); break; } } @@ -600,8 +600,8 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam } else { - g_ddraw->cursor.x = (x - g_ddraw->render.viewport.x) * g_ddraw->render.unscale_w; - g_ddraw->cursor.y = (y - g_ddraw->render.viewport.y) * g_ddraw->render.unscale_h; + g_ddraw->cursor.x = (DWORD)((x - g_ddraw->render.viewport.x) * g_ddraw->render.unscale_w); + g_ddraw->cursor.y = (DWORD)((y - g_ddraw->render.viewport.y) * g_ddraw->render.unscale_h); } mouse_lock(); @@ -643,8 +643,8 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam if (g_ddraw->adjmouse) { - g_ddraw->cursor.x = GET_X_LPARAM(lParam) * g_ddraw->render.unscale_w; - g_ddraw->cursor.y = GET_Y_LPARAM(lParam) * g_ddraw->render.unscale_h; + g_ddraw->cursor.x = (DWORD)(GET_X_LPARAM(lParam) * g_ddraw->render.unscale_w); + g_ddraw->cursor.y = (DWORD)(GET_Y_LPARAM(lParam) * g_ddraw->render.unscale_h); lParam = MAKELPARAM(g_ddraw->cursor.x, g_ddraw->cursor.y); } @@ -684,8 +684,8 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam int x = GET_X_LPARAM(lParam); int y = GET_Y_LPARAM(lParam); - g_ddraw->cursor.x = (x - g_ddraw->render.viewport.x) * g_ddraw->render.unscale_w; - g_ddraw->cursor.y = (y - g_ddraw->render.viewport.y) * g_ddraw->render.unscale_h; + g_ddraw->cursor.x = (DWORD)((x - g_ddraw->render.viewport.x) * g_ddraw->render.unscale_w); + g_ddraw->cursor.y = (DWORD)((y - g_ddraw->render.viewport.y) * g_ddraw->render.unscale_h); g_ddraw->hidecursor = FALSE;