diff --git a/inc/dd.h b/inc/dd.h index 0c6219c..a72aea0 100644 --- a/inc/dd.h +++ b/inc/dd.h @@ -142,7 +142,6 @@ typedef struct CNCDDRAW BOOL accurate_timers; BOOL resizable; BOOL nonexclusive; - BOOL fixpitch; int fixchilds; BOOL fixwndprochook; BOOL fixnotresponding; diff --git a/src/config.c b/src/config.c index 295059b..215d702 100644 --- a/src/config.c +++ b/src/config.c @@ -36,7 +36,6 @@ void cfg_load() g_ddraw->accurate_timers = cfg_get_bool("accuratetimers", FALSE); g_ddraw->resizable = cfg_get_bool("resizable", TRUE); g_ddraw->nonexclusive = cfg_get_bool("nonexclusive", FALSE); - g_ddraw->fixpitch = cfg_get_bool("fixpitch", TRUE); g_ddraw->fixchilds = cfg_get_int("fixchilds", FIX_CHILDS_DETECT_PAINT); g_ddraw->fixwndprochook = cfg_get_bool("fixwndprochook", FALSE); g_ddraw->flipclear = cfg_get_bool("flipclear", FALSE); @@ -404,7 +403,6 @@ static void cfg_create_ini() "[empires]\n" "renderer=opengl\n" "nonexclusive=true\n" - "fixpitch=true\n" "adjmouse=true\n" "resolutions=2\n" "\n" @@ -412,7 +410,6 @@ static void cfg_create_ini() "[empiresx]\n" "renderer=opengl\n" "nonexclusive=true\n" - "fixpitch=true\n" "adjmouse=true\n" "resolutions=2\n" "\n" @@ -420,14 +417,12 @@ static void cfg_create_ini() "[EMPIRES2]\n" "renderer=opengl\n" "nonexclusive=true\n" - "fixpitch=true\n" "adjmouse=true\n" "\n" "; Age of Empires II: The Conquerors\n" "[age2_x1]\n" "renderer=opengl\n" "nonexclusive=true\n" - "fixpitch=true\n" "adjmouse=true\n" "\n" "; American Conquest\n" @@ -478,7 +473,6 @@ static void cfg_create_ini() "[comeon]\n" "maxgameticks=62\n" "fixchilds=3\n" - "fixpitch=true\n" "\n" "; Blood II - The Chosen / Shogo - Mobile Armor Division\n" "[Client]\n" @@ -658,35 +652,27 @@ static void cfg_create_ini() "; Close Combat 2: A Bridge Too Far\n" "[cc2]\n" "adjmouse=true\n" - "fixpitch=true\n" "renderer=opengl\n" "nonexclusive=true\n" "\n" "; Close Combat 3: The Russian Front\n" "[cc3]\n" "adjmouse=true\n" - "fixpitch=true\n" "renderer=opengl\n" "nonexclusive=true\n" "\n" "; Close Combat 4: The Battle of the Bulge\n" "[cc4]\n" "adjmouse=true\n" - "fixpitch=true\n" "renderer=opengl\n" "nonexclusive=true\n" "\n" "; Close Combat 5: Invasion: Normandy\n" "[cc5]\n" "adjmouse=true\n" - "fixpitch=true\n" "renderer=opengl\n" "nonexclusive=true\n" "\n" - "; Commandos\n" - "[Comandos]\n" - "fixpitch=true\n" - "\n" "; Call To Power 2\n" "[ctp2]\n" "maintas=false\n" @@ -733,10 +719,6 @@ static void cfg_create_ini() "maintas=false\n" "boxing=false\n" "\n" - "; Eggsucker\n" - "[eggsucker]\n" - "fixpitch=true\n" - "\n" "; Economic War\n" "[EcoW]\n" "maxgameticks=60\n" @@ -933,14 +915,12 @@ static void cfg_create_ini() "[battlegrounds]\n" "renderer=opengl\n" "nonexclusive=true\n" - "fixpitch=true\n" "adjmouse=true\n" "\n" "; Star Wars: Galactic Battlegrounds: Clone Campaigns\n" "[battlegrounds_x1]\n" "renderer=opengl\n" "nonexclusive=true\n" - "fixpitch=true\n" "adjmouse=true\n" "\n" "; Stronghold Crusader HD\n" @@ -970,7 +950,6 @@ static void cfg_create_ini() "\n" "; Shadow Watch\n" "[sw]\n" - "fixpitch=true\n" "adjmouse=true\n" "\n" "; Shadow Flare\n" @@ -1016,7 +995,6 @@ static void cfg_create_ini() "; Uprising\n" "[uprising]\n" "renderer=opengl\n" - "fixpitch=true\n" "adjmouse=true\n" "\n" "; Uprising 2\n" diff --git a/src/dd.c b/src/dd.c index eec51ac..d8fe35e 100644 --- a/src/dd.c +++ b/src/dd.c @@ -12,6 +12,7 @@ #include "fps_limiter.h" #include "debug.h" #include "utils.h" +#include "blt.h" CNCDDRAW* g_ddraw = NULL; diff --git a/src/ddsurface.c b/src/ddsurface.c index 99eb515..5edbb21 100644 --- a/src/ddsurface.c +++ b/src/ddsurface.c @@ -1036,19 +1036,11 @@ HRESULT dd_CreateSurface( if (dst_surface->width && dst_surface->height) { - DWORD bmp_width = dst_surface->width; - DWORD bmp_height = dst_surface->height; - dst_surface->lx_pitch = dst_surface->bpp / 8; - dst_surface->l_pitch = bmp_width * dst_surface->lx_pitch; + dst_surface->l_pitch = ((dst_surface->width * dst_surface->bpp + 31) & ~31) >> 3; - if (g_ddraw->fixpitch) - { - while (dst_surface->l_pitch % 4) - { - dst_surface->l_pitch = ++bmp_width * dst_surface->lx_pitch; - } - } + DWORD bmp_width = dst_surface->l_pitch / dst_surface->lx_pitch; + DWORD bmp_height = dst_surface->height; dst_surface->bmi = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * 256);