1
0
mirror of https://github.com/DxWnd/DxWnd.reloaded synced 2024-12-30 09:25:35 +01:00

v2_03_30_src

Former-commit-id: a5bb345e33f58c0f372640e3cc2591e2c3198884
This commit is contained in:
gho tik 2015-07-18 12:41:09 -04:00 committed by Refael ACkermann
parent 8a06623101
commit 5c563db5dc
22 changed files with 64 additions and 25 deletions

View File

@ -192,6 +192,7 @@
#define FIXPITCH 0x00000100 // Fixes surface filling made with no concern to actual pitch value
#define POWER2WIDTH 0x00000200 // Fixes .....
#define HIDETASKBAR 0x00000400 // Hides taskbar & start menu during game execution
#define ACTIVATEAPP 0x00000800 // sends WM_ACTIVATEAPP message after every WM_WINPOSCHANGED message
// logging Tflags DWORD:
#define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:427b51e427648a3f526882f2ed47eb400830ad367e5484f9fce47a94aab837b9
size 578048
oid sha256:84e59408df785c15d6c06b28a9c1af651f16cfc666ceedb196b4d960aa0e4e00
size 578560

View File

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e15db53d932535d67b361f33febb9c9a52b3c5d3c0552f1b4f857fa0f4ac868c
size 541184
oid sha256:5de557160daabc9b2605f05b2c0988c129df7a8a03f8505db3a9c60269e9ee92
size 541696

View File

@ -8,7 +8,7 @@ coord0=0
flag0=536870914
flagg0=1207959568
flagh0=16
flagi0=4
flagi0=71303172
tflag0=0
initx0=0
inity0=0
@ -24,3 +24,8 @@ maxfps0=0
initts0=0
winver0=0
maxres0=4
launchpath0=
notes0=
flagj0=0
flagk0=0
swapeffect0=0

View File

@ -7,13 +7,13 @@ opengllib0=
notes0=
ver0=0
coord0=0
flag0=673194018
flag0=681582627
flagg0=1744830464
flagh0=16
flagh0=2129936
flagi0=138412036
flagj0=4224
flagk0=0
tflag0=-2147477233
flagk0=2048
tflag0=0
initx0=0
inity0=0
minx0=0

View File

@ -7,12 +7,12 @@ opengllib0=
notes0=
ver0=0
coord0=0
flag0=134217762
flag0=679477282
flagg0=1207959552
flagh0=20
flagi0=138412036
flagj0=4224
tflag0=512
tflag0=0
initx0=0
inity0=0
minx0=0
@ -27,3 +27,5 @@ maxfps0=0
initts0=0
winver0=0
maxres0=-1
flagk0=0
swapeffect0=0

View File

@ -6,7 +6,7 @@ module0=
opengllib0=
ver0=0
coord0=0
flag0=136314914
flag0=136314915
flagg0=1242038528
flagh0=65552
flagi0=136314885
@ -26,3 +26,6 @@ maxfps0=0
initts0=0
winver0=0
maxres0=-1
notes0=
flagk0=2048
swapeffect0=0

View File

@ -1,5 +0,0 @@
[window]
posx=1541
posy=587
sizx=320
sizy=200

View File

@ -850,4 +850,9 @@ add: debug flag "Highlight Locked surfaces" to highlight service surfaces that a
v2.03.29:
fix: wrong d3d7 hook, now "Echelon" works again.
add: "hide taskbar" option. A little experimental, so far. If the game crashes, the taskbar may not be reactivated: use menu commands to recover.
add: "hide taskbar" option. A little experimental, so far. If the game crashes, the taskbar may not be reactivated: use menu commands to recover.
v2.03.30:
fix: reset for flipped DC retrieved from ddraw interface after ddraw creation. Fixes "Powerslide".
add: added "Send WM_ACTIVATEAPP message" flag: fixes "Championship Manager 03 04" mouse and "Thorgal" lock
fix: FillRect hooker. Good for "Premier Manager 98" and "Premier Manager 97".

View File

@ -1604,7 +1604,7 @@ HRESULT WINAPI extDirectDrawCreate(GUID FAR *lpguid, LPDIRECTDRAW FAR *lplpdd, I
}
if(lpPrimaryDD==NULL) lpPrimaryDD=*lplpdd; // do not override the value set when creating the primary surface!
bFlippedDC = FALSE; // v02.03.30
return DD_OK;
}
@ -1677,6 +1677,7 @@ HRESULT WINAPI extDirectDrawCreateEx(GUID FAR *lpguid,
}
if(lpPrimaryDD==NULL) lpPrimaryDD=*lplpdd; // do not override the value set when creating the primary surface!
bFlippedDC = FALSE; // v02.03.30: fix for Powerslide
return DD_OK;
}

View File

@ -107,7 +107,7 @@ static char *Flag5Names[32]={
static char *Flag6Names[32]={
"FORCESWAPEFFECT", "LEGACYALLOC", "NODESTROYWINDOW", "NOMOVIES",
"SUPPRESSRELEASE", "FIXMOVIESCOLOR", "WOW64REGISTRY", "DISABLEMAXWINMODE",
"FIXPITCH", "POWER2WIDTH", "", "",
"FIXPITCH", "POWER2WIDTH", "HIDETASKBAR", "ACTIVATEAPP",
"", "", "", "",
"", "", "", "",
"", "", "", "",
@ -943,6 +943,11 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp
(*pMoveWindow)(hControlParentWnd, wp->x+fo.x, wp->y+fo.y, wp->cx, wp->cy, TRUE);
}
}
// v2.03.30: in window mode, it seems that the WM_ACTIVATEAPP message is not sent to the main win.
// this PostMessage call recovers "Thorgal" block at the end of intro movie and "Championship Manager 03 04" cursor
if((message==WM_WINDOWPOSCHANGED) && (dxw.dwFlags6 & ACTIVATEAPP)){
PostMessage(hwnd, WM_ACTIVATEAPP, 1, 0);
}
}
break;
case WM_ENTERSIZEMOVE:

View File

@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "TlHelp32.h"
#define VERSION "2.03.29"
#define VERSION "2.03.30"
#define DDTHREADLOCK 1
//#define LOCKTHREADS

Binary file not shown.

View File

@ -153,6 +153,8 @@ static HookEntry_Type Hooks[]={
//{HOOK_IAT_CANDIDATE, "IsZoomed", (FARPROC)NULL, (FARPROC *)&pIsZoomed, (FARPROC)extIsZoomed},
//{HOOK_HOT_CANDIDATE, "IsIconic", (FARPROC)IsIconic, (FARPROC *)&pIsIconic, (FARPROC)extIsIconic},
{HOOK_HOT_CANDIDATE, "FillRect", (FARPROC)NULL, (FARPROC *)&pFillRect, (FARPROC)extFillRect},
{HOOK_IAT_CANDIDATE, 0, NULL, 0, 0} // terminator
};
@ -174,7 +176,7 @@ static HookEntry_Type ScaledHooks[]={
{HOOK_IAT_CANDIDATE, "TabbedTextOutA", (FARPROC)TabbedTextOutA, (FARPROC *)&pTabbedTextOutA, (FARPROC)extTabbedTextOutA},
{HOOK_IAT_CANDIDATE, "DrawTextA", (FARPROC)DrawTextA, (FARPROC *)&pDrawText, (FARPROC)extDrawTextA},
{HOOK_IAT_CANDIDATE, "DrawTextExA", (FARPROC)DrawTextExA, (FARPROC *)&pDrawTextEx, (FARPROC)extDrawTextExA},
{HOOK_IAT_CANDIDATE, "FillRect", (FARPROC)NULL, (FARPROC *)&pFillRect, (FARPROC)extFillRect},
//{HOOK_HOT_CANDIDATE, "FillRect", (FARPROC)NULL, (FARPROC *)&pFillRect, (FARPROC)extFillRect},
//{HOOK_IAT_CANDIDATE, "GetDC", (FARPROC)GetDC, (FARPROC *)&pGDIGetDC, (FARPROC)extGDIGetDC},
//{HOOK_IAT_CANDIDATE, "GetDCEx", (FARPROC)NULL, (FARPROC *)&pGDIGetDCEx, (FARPROC)extGDIGetDCEx},
//{HOOK_IAT_CANDIDATE, "GetWindowDC", (FARPROC)GetWindowDC, (FARPROC *)&pGDIGetWindowDC, (FARPROC)extGDIGetWindowDC},
@ -1689,11 +1691,16 @@ int WINAPI extFillRect(HDC hdc, const RECT *lprc, HBRUSH hbr)
return TRUE;
}
memcpy(&rc, lprc, sizeof(rc));
if(dxw.IsRealDesktop(WindowFromDC(hdc))) {
OutTraceDW("FillRect: remapped hdc to virtual desktop\n");
HWND VirtualDesktop;
VirtualDesktop=dxw.GethWnd();
if(VirtualDesktop==NULL){
OutTraceDW("FillRect: no virtual desktop\n");
return TRUE;
}
OutTraceDW("FillRect: remapped hdc to virtual desktop hwnd=%x\n", dxw.GethWnd());
hdc=(*pGDIGetDC)(dxw.GethWnd());
}
@ -1701,11 +1708,14 @@ int WINAPI extFillRect(HDC hdc, const RECT *lprc, HBRUSH hbr)
// when not in fullscreen mode, just proxy the call
// but check coordinates: some games may use excessive coordinates: see "Premier Manager 98"
RECT client;
(*pGetClientRect)(WindowFromDC(hdc), &client);
HWND hwnd;
hwnd=WindowFromDC(hdc);
(*pGetClientRect)(hwnd, &client);
if(rc.left < 0) rc.left=0;
if(rc.top < 0) rc.top=0;
if(rc.right > client.right) rc.right=client.right;
if(rc.bottom > client.bottom) rc.bottom=client.bottom;
OutTraceDW("FillRect: remapped hdc from hwnd=%x to rect=(%d,%d)-(%d,%d)\n", hwnd, rc.left, rc.top, rc.right, rc.bottom);
return (*pFillRect)(hdc, &rc, hbr);
}

View File

@ -47,6 +47,7 @@ void CTabWindow::DoDataExchange(CDataExchange* pDX)
DDX_Check(pDX, IDC_HIDETASKBAR, cTarget->m_HideTaskbar);
DDX_Check(pDX, IDC_UNLOCKZORDER, cTarget->m_UnlockZOrder);
DDX_Check(pDX, IDC_NODESTROYWINDOW, cTarget->m_NoDestroyWindow);
DDX_Check(pDX, IDC_ACTIVATEAPP, cTarget->m_ActivateApp);
// color management
DDX_Check(pDX, IDC_INIT8BPP, cTarget->m_Init8BPP);

View File

@ -60,6 +60,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/)
m_NoD3DReset = FALSE;
m_HideDesktop = FALSE;
m_HideTaskbar = FALSE;
m_ActivateApp = FALSE;
m_UnlockZOrder = FALSE;
m_NoDestroyWindow = FALSE;
m_LockSysColors = FALSE;

View File

@ -187,6 +187,7 @@ public:
BOOL m_NoD3DReset;
BOOL m_HideDesktop;
BOOL m_HideTaskbar;
BOOL m_ActivateApp;
BOOL m_UnlockZOrder;
BOOL m_NoDestroyWindow;
BOOL m_LockSysColors;

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -292,6 +292,7 @@ static void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg)
if(dlg->m_NoD3DReset) t->flags4 |= NOD3DRESET;
if(dlg->m_HideDesktop) t->flags4 |= HIDEDESKTOP;
if(dlg->m_HideTaskbar) t->flags6 |= HIDETASKBAR;
if(dlg->m_ActivateApp) t->flags6 |= ACTIVATEAPP;
if(dlg->m_UnlockZOrder) t->flags5 |= UNLOCKZORDER;
if(dlg->m_NoDestroyWindow) t->flags6 |= NODESTROYWINDOW;
if(dlg->m_LockSysColors) t->flags3 |= LOCKSYSCOLORS;
@ -500,6 +501,7 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg)
dlg->m_NoD3DReset = t->flags4 & NOD3DRESET ? 1 : 0;
dlg->m_HideDesktop = t->flags4 & HIDEDESKTOP ? 1 : 0;
dlg->m_HideTaskbar = t->flags6 & HIDETASKBAR ? 1 : 0;
dlg->m_ActivateApp = t->flags6 & ACTIVATEAPP ? 1 : 0;
dlg->m_UnlockZOrder = t->flags5 & UNLOCKZORDER ? 1 : 0;
dlg->m_NoDestroyWindow = t->flags6 & NODESTROYWINDOW ? 1 : 0;
dlg->m_LockSysColors = t->flags3 & LOCKSYSCOLORS ? 1 : 0;
@ -1034,9 +1036,16 @@ void CDxwndhostView::OnExport()
CFileDialog dlg( FALSE, "*.dxw", path, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
"dxwnd task config (*.dxw)|*.dxw|All Files (*.*)|*.*||", this);
if( dlg.DoModal() == IDOK) {
DWORD TFlags;
TARGETMAP *TargetMap;
strcpy(path, dlg.GetPathName().GetBuffer());
//MessageBox(path, "PathName", MB_OK);
// export with no trace flags active
TargetMap = &TargetMaps[i];
TFlags = TargetMap->tflags;
TargetMap->tflags = 0;
SaveConfigItem(&TargetMaps[i], &TitleMaps[i], 0, path);
TargetMap->tflags = TFlags;
if(GetPrivateProfileInt("window", "updatepaths", 1, InitPath)) {
GetFolderFromPath(path);
WritePrivateProfileString("window", "exportpath", path, InitPath);

Binary file not shown.