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;