mirror of
https://github.com/DxWnd/DxWnd.reloaded
synced 2024-12-30 09:25:35 +01:00
v2_04_17_src
Former-commit-id: 6a3d3573af5c0d9f8c8d22835f869431439fbd4a
This commit is contained in:
parent
1f153bb853
commit
de4d2e231d
@ -277,6 +277,11 @@
|
|||||||
#define OFFSCREENZBUFFER 0x02000000 // Allow building plain surfaces and ZBuffer on offscreen videomemory surfaces
|
#define OFFSCREENZBUFFER 0x02000000 // Allow building plain surfaces and ZBuffer on offscreen videomemory surfaces
|
||||||
#define VIRTUALHEAP 0x04000000 // Remap heap calls to C library memory allocation routines
|
#define VIRTUALHEAP 0x04000000 // Remap heap calls to C library memory allocation routines
|
||||||
#define ZBUFFERHARDCLEAN 0x08000000 // Clean ZBUFFER the hard way (memset 0xFF on whole surface buffer ....)
|
#define ZBUFFERHARDCLEAN 0x08000000 // Clean ZBUFFER the hard way (memset 0xFF on whole surface buffer ....)
|
||||||
|
#define LOADLIBRARYERR 0x10000000 // When LoadLibrary* fail for missing file returns ... instead of ....
|
||||||
|
#define SHAREDDCHYBRID 0x20000000 // Hybrid mode for shared dc GDI emulation - blits both on ddraw surface and window surface
|
||||||
|
|
||||||
|
// 9th flags DWORD dxw.dwFlags9:
|
||||||
|
// 10th flags DWORD dxw.dwFlags10:
|
||||||
|
|
||||||
// logging Tflags DWORD:
|
// logging Tflags DWORD:
|
||||||
#define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general
|
#define OUTTRACE 0x00000001 // enables tracing to dxwnd.log in general
|
||||||
@ -321,6 +326,8 @@ typedef struct TARGETMAP
|
|||||||
int flags6;
|
int flags6;
|
||||||
int flags7;
|
int flags7;
|
||||||
int flags8;
|
int flags8;
|
||||||
|
int flags9;
|
||||||
|
int flags10;
|
||||||
int tflags; // trace flags (cleared when exported/imported)
|
int tflags; // trace flags (cleared when exported/imported)
|
||||||
int dflags; // debug flags (cleared when exported/imported)
|
int dflags; // debug flags (cleared when exported/imported)
|
||||||
int monitorid;
|
int monitorid;
|
||||||
@ -348,6 +355,11 @@ typedef struct TARGETMAP
|
|||||||
#define INVERTXAXIS 0x00000010 // Invert virtual joystick X axis
|
#define INVERTXAXIS 0x00000010 // Invert virtual joystick X axis
|
||||||
#define B1AUTOFIRE 0x00000020 // Button 1 auto fire
|
#define B1AUTOFIRE 0x00000020 // Button 1 auto fire
|
||||||
#define B2AUTOFIRE 0x00000040 // Button 2 auto fire
|
#define B2AUTOFIRE 0x00000040 // Button 2 auto fire
|
||||||
|
#define VJAUTOCENTER 0x00000080 // auto-center feature
|
||||||
|
#define VJKEYBOARDMAP 0x00000100 // mapvirtual joystick lever & buttons to keyboard
|
||||||
|
#define VJMOUSEMAP 0x00000200 // mapvirtual joystick lever & buttons to mouse
|
||||||
|
#define VJSENSIVITY 0x00000400 // tune sensibility through mouse wheel
|
||||||
|
#define VJMOUSEWHEEL 0x00000800 // tune sensibility through mouse wheel
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
@ -368,6 +380,7 @@ typedef struct
|
|||||||
PALETTEENTRY Palette[256];
|
PALETTEENTRY Palette[256];
|
||||||
BOOL AllowMultiTask;
|
BOOL AllowMultiTask;
|
||||||
DWORD VJoyStatus;
|
DWORD VJoyStatus;
|
||||||
|
DWORD VJoySensivity;
|
||||||
short joyposx;
|
short joyposx;
|
||||||
short joyposy;
|
short joyposy;
|
||||||
} DXWNDSTATUS;
|
} DXWNDSTATUS;
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:7b2007119a0075012b9c97e2f0532e9c00393cd639510b97d7984683ad53776d
|
oid sha256:66c9cb4107758dceb3b65f8f4c1422c950197c50f039e41ff421489b1e5128ac
|
||||||
size 793088
|
size 794112
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:2708b771a49673ae154fffa2cadaaefe2eab5b1fb497f35c84f14d1a4bde1701
|
oid sha256:f46151918909f2ce7b12958e32290a0173cd6e56e3471c371f4f3db4d9eecc67
|
||||||
size 681472
|
size 707584
|
||||||
|
36
build/exports/Nightmare Creatures demo (sw mode).dxw
Normal file
36
build/exports/Nightmare Creatures demo (sw mode).dxw
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
[target]
|
||||||
|
title0=Nightmare Creatures demo (sw mode)
|
||||||
|
path0=D:\Games\nc_demo\nc.exe
|
||||||
|
startfolder0=
|
||||||
|
launchpath0=D:\Games\nc_demo\nc.exe -pc
|
||||||
|
module0=
|
||||||
|
opengllib0=
|
||||||
|
notes0=
|
||||||
|
registry0=
|
||||||
|
ver0=0
|
||||||
|
monitorid0=-1
|
||||||
|
coord0=0
|
||||||
|
flag0=673185826
|
||||||
|
flagg0=1207959552
|
||||||
|
flagh0=20
|
||||||
|
flagi0=138412036
|
||||||
|
flagj0=5248
|
||||||
|
flagk0=65536
|
||||||
|
flagl0=0
|
||||||
|
flagm0=268435456
|
||||||
|
tflag0=0
|
||||||
|
dflag0=0
|
||||||
|
posx0=50
|
||||||
|
posy0=50
|
||||||
|
sizx0=800
|
||||||
|
sizy0=600
|
||||||
|
maxfps0=0
|
||||||
|
initts0=0
|
||||||
|
winver0=0
|
||||||
|
maxres0=0
|
||||||
|
swapeffect0=0
|
||||||
|
maxddinterface0=7
|
||||||
|
slowratio0=2
|
||||||
|
scanline0=0
|
||||||
|
initresw0=800
|
||||||
|
initresh0=600
|
36
build/exports/Nightmare Creatures demo.dxw
Normal file
36
build/exports/Nightmare Creatures demo.dxw
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
[target]
|
||||||
|
title0=Nightmare Creatures demo
|
||||||
|
path0=D:\Games\nc_demo\nc.exe
|
||||||
|
startfolder0=
|
||||||
|
launchpath0=
|
||||||
|
module0=
|
||||||
|
opengllib0=
|
||||||
|
notes0=
|
||||||
|
registry0=
|
||||||
|
ver0=0
|
||||||
|
monitorid0=-1
|
||||||
|
coord0=0
|
||||||
|
flag0=673185826
|
||||||
|
flagg0=1207959552
|
||||||
|
flagh0=20
|
||||||
|
flagi0=138412036
|
||||||
|
flagj0=4224
|
||||||
|
flagk0=65536
|
||||||
|
flagl0=0
|
||||||
|
flagm0=301989888
|
||||||
|
tflag0=0
|
||||||
|
dflag0=0
|
||||||
|
posx0=50
|
||||||
|
posy0=50
|
||||||
|
sizx0=800
|
||||||
|
sizy0=600
|
||||||
|
maxfps0=0
|
||||||
|
initts0=0
|
||||||
|
winver0=0
|
||||||
|
maxres0=0
|
||||||
|
swapeffect0=0
|
||||||
|
maxddinterface0=7
|
||||||
|
slowratio0=2
|
||||||
|
scanline0=0
|
||||||
|
initresw0=800
|
||||||
|
initresh0=600
|
@ -4,15 +4,15 @@ path0=D:\Games\Star Trek Armada\Armada.exe
|
|||||||
launchpath0=
|
launchpath0=
|
||||||
module0=
|
module0=
|
||||||
opengllib0=
|
opengllib0=
|
||||||
notes0=
|
notes0=Side effect (to be known):\nDo not notify on task switch: inhibits the game cursor
|
||||||
registry0=
|
registry0=
|
||||||
ver0=0
|
ver0=0
|
||||||
coord0=0
|
coord0=0
|
||||||
flag0=-2011168669
|
flag0=-1474297822
|
||||||
flagg0=1543503872
|
flagg0=1476395008
|
||||||
flagh0=98320
|
flagh0=8208
|
||||||
flagi0=136314884
|
flagi0=138412036
|
||||||
flagj0=4224
|
flagj0=128
|
||||||
flagk0=327680
|
flagk0=327680
|
||||||
tflag0=0
|
tflag0=0
|
||||||
initx0=0
|
initx0=0
|
||||||
@ -21,8 +21,8 @@ minx0=0
|
|||||||
miny0=0
|
miny0=0
|
||||||
maxx0=0
|
maxx0=0
|
||||||
maxy0=0
|
maxy0=0
|
||||||
posx0=100
|
posx0=50
|
||||||
posy0=100
|
posy0=50
|
||||||
sizx0=800
|
sizx0=800
|
||||||
sizy0=600
|
sizy0=600
|
||||||
maxfps0=0
|
maxfps0=0
|
||||||
@ -30,3 +30,13 @@ initts0=0
|
|||||||
winver0=0
|
winver0=0
|
||||||
maxres0=-1
|
maxres0=-1
|
||||||
swapeffect0=0
|
swapeffect0=0
|
||||||
|
startfolder0=
|
||||||
|
monitorid0=0
|
||||||
|
flagl0=0
|
||||||
|
flagm0=536870912
|
||||||
|
dflag0=0
|
||||||
|
maxddinterface0=7
|
||||||
|
slowratio0=1
|
||||||
|
scanline0=1
|
||||||
|
initresw0=0
|
||||||
|
initresh0=0
|
||||||
|
233
build/exports/dxwnd.reg
Normal file
233
build/exports/dxwnd.reg
Normal file
@ -0,0 +1,233 @@
|
|||||||
|
|
||||||
|
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness]
|
||||||
|
"1.0"=".\\"
|
||||||
|
|
||||||
|
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness\1.0]
|
||||||
|
"InstalledFrom"=".\\"
|
||||||
|
"HardDriveRootPath"=".\\"
|
||||||
|
"InstallType"="Full"
|
||||||
|
"version"="1.0"
|
||||||
|
"Launched"="1"
|
||||||
|
"PID"="87799-442-0210567-79960"
|
||||||
|
"Path"=".\\"
|
||||||
|
"VersionType"="RetailVersion"
|
||||||
|
"InstalledGroup"="15"
|
||||||
|
"LangID"=dword:00000009
|
||||||
|
"OmitDriverCheck"=dword:00000000
|
||||||
|
"LocalDriverInfo"=hex:4e,56,33,44,44,33,32,2e,44,4c,4c,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,34,2e,31,30,2e,30,2e,31,37,31,33,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,44,69,61,6d,6f,6e,64,20,56,69,70,65,72,20,\
|
||||||
|
56,33,33,30,20,28,4e,76,69,64,69,61,20,52,69,76,61,20,31,32,38,29,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,44,69,61,6d,\
|
||||||
|
6f,6e,64,20,56,69,70,65,72,20,56,33,33,30,20,28,4e,76,69,64,69,61,20,52,69,\
|
||||||
|
76,61,20,31,32,38,29,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,44,69,61,6d,6f,6e,64,20,4d,75,6c,74,69,6d,65,64,69,61,20,\
|
||||||
|
53,79,73,74,65,6d,73,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,08,6d,6d,33,64,66,78,33,32,2e,64,6c,6c,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,34,2e,31,\
|
||||||
|
30,2e,30,2e,31,35,39,38,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,33,44,66,78,20,56,6f,6f,64,6f,6f,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,33,44,66,78,20,56,6f,6f,\
|
||||||
|
64,6f,6f,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,33,44,66,78,20,49,6e,74,65,72,61,63,74,69,76,65,2c,20,49,6e,63,2e,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,08
|
||||||
|
|
||||||
|
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness\1.0\DriverInfo]
|
||||||
|
|
||||||
|
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness\1.0\DriverInfo\{00000000-0000-0000-0000-000000000000}]
|
||||||
|
"Driver"="NV3DD32.DLL"
|
||||||
|
"Version"="4.10.0.1713"
|
||||||
|
"Description"="Diamond Viper V330 (Nvidia Riva 128)"
|
||||||
|
"DeviceID"="PCI\\VEN_12D2&DEV_0018&SUBSYS_10921092&REV_10\\000800"
|
||||||
|
"NumberOfModes"=dword:00000025
|
||||||
|
"Modes"=hex:40,01,00,00,c8,00,00,00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,40,01,00,00,f0,00,00,00,08,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,90,01,00,00,2c,01,00,00,08,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,e0,01,00,00,68,01,00,00,08,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,00,80,01,00,00,08,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,02,00,00,90,01,00,\
|
||||||
|
00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,02,00,00,\
|
||||||
|
e0,01,00,00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,20,\
|
||||||
|
03,00,00,58,02,00,00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,c0,03,00,00,d0,02,00,00,08,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,04,00,00,00,03,00,00,08,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,80,04,00,00,60,03,00,00,08,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,05,00,00,00,04,00,00,08,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,40,06,00,00,b0,04,00,00,08,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,40,01,00,00,c8,00,00,00,\
|
||||||
|
10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,40,01,00,00,f0,\
|
||||||
|
00,00,00,10,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,e0,fd,ff,01,90,01,\
|
||||||
|
00,00,2c,01,00,00,10,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,e0,fd,ff,\
|
||||||
|
01,e0,01,00,00,68,01,00,00,10,00,00,00,00,00,00,00,01,00,00,00,00,00,00,00,\
|
||||||
|
e0,fd,ff,01,00,02,00,00,80,01,00,00,10,00,00,00,00,00,00,00,01,00,00,00,00,\
|
||||||
|
00,00,00,e0,fd,ff,01,80,02,00,00,90,01,00,00,10,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,80,02,00,00,e0,01,00,00,10,00,00,00,00,00,00,\
|
||||||
|
00,01,00,00,00,00,00,00,00,e0,fd,ff,01,20,03,00,00,58,02,00,00,10,00,00,00,\
|
||||||
|
00,00,00,00,01,00,00,00,00,00,00,00,e0,fd,ff,01,c0,03,00,00,d0,02,00,00,10,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,04,00,00,00,03,\
|
||||||
|
00,00,10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,04,00,\
|
||||||
|
00,60,03,00,00,10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,05,00,00,00,04,00,00,10,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,40,06,00,00,b0,04,00,00,10,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,40,01,00,00,c8,00,00,00,20,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,40,01,00,00,f0,00,00,00,20,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,90,01,00,00,2c,01,00,00,20,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,e0,01,00,00,68,01,00,00,20,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,02,00,00,80,01,00,\
|
||||||
|
00,20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,02,00,00,\
|
||||||
|
90,01,00,00,20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,80,\
|
||||||
|
02,00,00,e0,01,00,00,20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,20,03,00,00,58,02,00,00,20,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,c0,03,00,00,d0,02,00,00,20,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,04,00,00,00,03,00,00,20,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,80,04,00,00,60,03,00,00,20,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||||||
|
"TextureSizes"=hex:00,00,02,00,aa,aa,02,00,00,80,00,00,aa,aa,00,00,00,20,00,00,\
|
||||||
|
aa,2a,00,00,00,08,00,00,a0,0d,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
|
||||||
|
|
||||||
|
[HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Games\Motocross Madness\1.0\DriverInfo\{3A0CFD01-9320-11CF-ACA1-00A02413C2E2}]
|
||||||
|
"Driver"="mm3dfx32.dll"
|
||||||
|
"Version"="4.10.0.1598"
|
||||||
|
"Description"="3Dfx Voodoo"
|
||||||
|
"DeviceID"="PCI\\VEN_121A&DEV_0001&SUBSYS_00000000&REV_02\\BUS_00&DEV_0E&FUNC_00"
|
||||||
|
"NumberOfModes"=dword:00000004
|
||||||
|
"Modes"=hex:00,02,00,00,80,01,00,00,10,00,00,00,00,00,00,00,01,00,00,00,01,00,\
|
||||||
|
00,00,00,00,40,00,80,02,00,00,90,01,00,00,10,00,00,00,00,00,00,00,00,00,00,\
|
||||||
|
00,01,00,00,00,00,00,00,00,80,02,00,00,e0,01,00,00,10,00,00,00,00,00,00,00,\
|
||||||
|
01,00,00,00,01,00,00,00,00,00,40,00,20,03,00,00,58,02,00,00,10,00,00,00,00,\
|
||||||
|
00,00,00,01,00,00,00,00,00,00,00,00,00,40,00
|
||||||
|
"TextureSizes"=hex:00,00,02,00,33,ab,02,00,00,80,00,00,33,ab,00,00,00,20,00,00,\
|
||||||
|
33,2b,00,00,00,08,00,00,33,0b,00,00,00,04,01,00,55,59,01,00,00,44,00,00,55,\
|
||||||
|
59,00,00,00,14,00,00,55,19,00,00,00,08,00,00,55,09,00,00
|
||||||
|
|
||||||
|
|
@ -1563,3 +1563,11 @@ fix: error messages on LoadLibrary errors
|
|||||||
v2.04.16
|
v2.04.16
|
||||||
add: improved virtual joystick with configuration and monitoring panel, invert axis options, show crossfire.
|
add: improved virtual joystick with configuration and monitoring panel, invert axis options, show crossfire.
|
||||||
fix: GetAttachedSurface now simulates also the primary surface as attach to backbuffer. Fixes GTA first episode windows version.
|
fix: GetAttachedSurface now simulates also the primary surface as attach to backbuffer. Fixes GTA first episode windows version.
|
||||||
|
|
||||||
|
v2.04.17
|
||||||
|
add: 2 more DWORD flags, unused for now
|
||||||
|
add: virtual joystick sensivity control
|
||||||
|
fix: check on ZBUFFER capability attribution in case the capsdb holds a wrong capability belonging to a different surface that was deleted
|
||||||
|
add: "Fix LoadLibrary error" flag (LOADLIBRARYERR) to return ERROR_DLL_NOT_FOUND instead of ERROR_MOD_NOT_FOUND error code. Fixes "Nightmare Creatures".
|
||||||
|
add: "Hybrid" flag for "Shared ddraw & GDI DC" mode - reduces "Star Treck: Armada" problems.
|
||||||
|
|
||||||
|
@ -2568,7 +2568,10 @@ HRESULT WINAPI extGetAttachedSurface(int dxversion, GetAttachedSurface_Type pGet
|
|||||||
DWORD dwCaps;
|
DWORD dwCaps;
|
||||||
lpDDZBuffer = *lplpddas;
|
lpDDZBuffer = *lplpddas;
|
||||||
dwCaps = dxwcdb.GetCaps(*lplpddas);
|
dwCaps = dxwcdb.GetCaps(*lplpddas);
|
||||||
if(!dwCaps){
|
// v2.04.17 - beware: the caps db is not properly cleaned on surface destruction, so it may happen
|
||||||
|
// that you get a fake-known case where the caps are referred to some other surface type.
|
||||||
|
// Happened in "Star Treck: Armada" where the ZBUFFER collects an old PRIMARY caps entry.
|
||||||
|
if(!dwCaps || !(dwCaps & DDSCAPS_ZBUFFER)){
|
||||||
dwCaps = dxwcdb.GetCaps(lpdds);
|
dwCaps = dxwcdb.GetCaps(lpdds);
|
||||||
if(dwCaps){
|
if(dwCaps){
|
||||||
dwCaps &= ~(DDSCAPS_PRIMARYSURFACE|DDSCAPS_FLIP|DDSCAPS_BACKBUFFER|DDSCAPS_3DDEVICE|DDSCAPS_COMPLEX);
|
dwCaps &= ~(DDSCAPS_PRIMARYSURFACE|DDSCAPS_FLIP|DDSCAPS_BACKBUFFER|DDSCAPS_3DDEVICE|DDSCAPS_COMPLEX);
|
||||||
|
@ -176,6 +176,8 @@ public: // simple data variables
|
|||||||
DWORD dwFlags6;
|
DWORD dwFlags6;
|
||||||
DWORD dwFlags7;
|
DWORD dwFlags7;
|
||||||
DWORD dwFlags8;
|
DWORD dwFlags8;
|
||||||
|
DWORD dwFlags9;
|
||||||
|
DWORD dwFlags10;
|
||||||
DWORD dwTFlags;
|
DWORD dwTFlags;
|
||||||
HWND hParentWnd;
|
HWND hParentWnd;
|
||||||
HWND hChildWnd;
|
HWND hChildWnd;
|
||||||
|
BIN
dll/dxwnd.aps
BIN
dll/dxwnd.aps
Binary file not shown.
@ -27,7 +27,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include "TlHelp32.h"
|
#include "TlHelp32.h"
|
||||||
|
|
||||||
#define VERSION "2.04.16"
|
#define VERSION "2.04.17"
|
||||||
|
|
||||||
#define DDTHREADLOCK 1
|
#define DDTHREADLOCK 1
|
||||||
|
|
||||||
@ -123,7 +123,10 @@ int SetTarget(DXWNDSTATUS *statusmap, TARGETMAP *targets){
|
|||||||
pStatus->DXVersion = 0;
|
pStatus->DXVersion = 0;
|
||||||
pStatus->AllowMultiTask=GetMultiTaskEnabling();
|
pStatus->AllowMultiTask=GetMultiTaskEnabling();
|
||||||
//pStatus->VJoyStatus=VJOYENABLED|CROSSENABLED|INVERTYAXIS;
|
//pStatus->VJoyStatus=VJOYENABLED|CROSSENABLED|INVERTYAXIS;
|
||||||
if(statusmap) pStatus->VJoyStatus=statusmap->VJoyStatus;
|
if(statusmap) {
|
||||||
|
pStatus->VJoyStatus=statusmap->VJoyStatus;
|
||||||
|
pStatus->VJoySensivity=statusmap->VJoySensivity;
|
||||||
|
}
|
||||||
for(i = 0; targets[i].path[0]; i ++){
|
for(i = 0; targets[i].path[0]; i ++){
|
||||||
char *c;
|
char *c;
|
||||||
pMapping[i] = targets[i];
|
pMapping[i] = targets[i];
|
||||||
@ -362,7 +365,7 @@ static char *FlagNames[9][32] ={{
|
|||||||
"MARKWING32", "DYNAMICZCLEAN", "MARKGDI32", "DUMPDIBSECTION",
|
"MARKWING32", "DYNAMICZCLEAN", "MARKGDI32", "DUMPDIBSECTION",
|
||||||
"DUMPDEVCONTEXT", "QUALITYFONTS", "ALLOWSYSMEMON3DDEV", "CLIPMENU",
|
"DUMPDEVCONTEXT", "QUALITYFONTS", "ALLOWSYSMEMON3DDEV", "CLIPMENU",
|
||||||
"BACKGROUNDPRIORITY", "OFFSCREENZBUFFER", "VIRTUALHEAP", "ZBUFFERHARDCLEAN",
|
"BACKGROUNDPRIORITY", "OFFSCREENZBUFFER", "VIRTUALHEAP", "ZBUFFERHARDCLEAN",
|
||||||
"", "", "", "",
|
"LOADLIBRARYERR", "SHAREDDCHYBRID", "", "",
|
||||||
},{
|
},{
|
||||||
// TFlags
|
// TFlags
|
||||||
"OUTTRACE", "OUTDDRAWTRACE", "OUTWINMESSAGES", "OUTCURSORTRACE",
|
"OUTTRACE", "OUTDDRAWTRACE", "OUTWINMESSAGES", "OUTCURSORTRACE",
|
||||||
|
Binary file not shown.
@ -980,7 +980,7 @@ BOOL WINAPI extGDIBitBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, int nH
|
|||||||
case 1: // memory to screen
|
case 1: // memory to screen
|
||||||
case 3: // screen to screen
|
case 3: // screen to screen
|
||||||
dxw.HandleFPS(); // handle refresh delays
|
dxw.HandleFPS(); // handle refresh delays
|
||||||
sdc.GetPrimaryDC(hdcDest);
|
sdc.GetPrimaryDC(hdcDest, hdcSrc);
|
||||||
res=(*pGDIBitBlt)(sdc.GetHdc(), nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, dwRop);
|
res=(*pGDIBitBlt)(sdc.GetHdc(), nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, dwRop);
|
||||||
sdc.PutPrimaryDC(hdcDest, TRUE, nXDest, nYDest, nWidth, nHeight);
|
sdc.PutPrimaryDC(hdcDest, TRUE, nXDest, nYDest, nWidth, nHeight);
|
||||||
break;
|
break;
|
||||||
@ -1027,7 +1027,7 @@ BOOL WINAPI extGDIBitBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, int nH
|
|||||||
if (hdcDest==dxw.RealHDC) {
|
if (hdcDest==dxw.RealHDC) {
|
||||||
hdcDest=dxw.VirtualHDC;
|
hdcDest=dxw.VirtualHDC;
|
||||||
dxw.HandleFPS(); // handle refresh delays
|
dxw.HandleFPS(); // handle refresh delays
|
||||||
}
|
}
|
||||||
res=(*pGDIBitBlt)(hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, dwRop);
|
res=(*pGDIBitBlt)(hdcDest, nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, dwRop);
|
||||||
OutTraceB("GDI.BitBlt: DEBUG emulated hdc dest=%x->%x\n", dxw.RealHDC, hdcDest);
|
OutTraceB("GDI.BitBlt: DEBUG emulated hdc dest=%x->%x\n", dxw.RealHDC, hdcDest);
|
||||||
break;
|
break;
|
||||||
@ -1097,7 +1097,7 @@ BOOL WINAPI extGDIStretchBlt(HDC hdcDest, int nXDest, int nYDest, int nWidth, in
|
|||||||
break;
|
break;
|
||||||
case 1: // memory to screen
|
case 1: // memory to screen
|
||||||
case 3: // screen to screen
|
case 3: // screen to screen
|
||||||
sdc.GetPrimaryDC(hdcDest);
|
sdc.GetPrimaryDC(hdcDest, hdcSrc);
|
||||||
res=(*pGDIStretchBlt)(sdc.GetHdc(), nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, nWSrc, nHSrc, dwRop);
|
res=(*pGDIStretchBlt)(sdc.GetHdc(), nXDest, nYDest, nWidth, nHeight, hdcSrc, nXSrc, nYSrc, nWSrc, nHSrc, dwRop);
|
||||||
sdc.PutPrimaryDC(hdcDest, TRUE, nXDest, nYDest, nWidth, nHeight);
|
sdc.PutPrimaryDC(hdcDest, TRUE, nXDest, nYDest, nWidth, nHeight);
|
||||||
break;
|
break;
|
||||||
|
@ -599,6 +599,10 @@ HMODULE WINAPI LoadLibraryExWrapper(LPVOID lpFileName, BOOL IsWidechar, HANDLE h
|
|||||||
if(!libhandle){
|
if(!libhandle){
|
||||||
OutTraceE("%s: ERROR FileName=%s err=%d\n", api, lpFileName, GetLastError());
|
OutTraceE("%s: ERROR FileName=%s err=%d\n", api, lpFileName, GetLastError());
|
||||||
Recursed = FALSE;
|
Recursed = FALSE;
|
||||||
|
|
||||||
|
// compatibility issue: some games (Nightmare Creatures) check for the ERROR_DLL_NOT_FOUND
|
||||||
|
// errorcode or assume the library is there, hence the dialog box about a SDL.DLL file to delete.
|
||||||
|
if((dxw.dwFlags8 & LOADLIBRARYERR) && (GetLastError()==ERROR_MOD_NOT_FOUND)) SetLastError(ERROR_DLL_NOT_FOUND);
|
||||||
return libhandle;
|
return libhandle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,6 +52,11 @@ dxwSDC::~dxwSDC()
|
|||||||
static IDirect3DSurface9 *pDestSurface = NULL;
|
static IDirect3DSurface9 *pDestSurface = NULL;
|
||||||
|
|
||||||
HDC dxwSDC::GetPrimaryDC(HDC hdc)
|
HDC dxwSDC::GetPrimaryDC(HDC hdc)
|
||||||
|
{
|
||||||
|
return GetPrimaryDC(hdc, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
HDC dxwSDC::GetPrimaryDC(HDC hdc, HDC hdcsrc)
|
||||||
{
|
{
|
||||||
HRESULT res;
|
HRESULT res;
|
||||||
extern HandleDDThreadLock_Type pReleaseDDThreadLock;
|
extern HandleDDThreadLock_Type pReleaseDDThreadLock;
|
||||||
@ -59,10 +64,13 @@ HDC dxwSDC::GetPrimaryDC(HDC hdc)
|
|||||||
|
|
||||||
OutTraceB("dxwSDC::GetPrimaryDC: hdc=%x\n", hdc);
|
OutTraceB("dxwSDC::GetPrimaryDC: hdc=%x\n", hdc);
|
||||||
|
|
||||||
|
CurrentHDCSrc = hdcsrc;
|
||||||
|
CurrentHDC = hdc;
|
||||||
|
|
||||||
// look for ddraw first
|
// look for ddraw first
|
||||||
//if(pReleaseDDThreadLock)(*pReleaseDDThreadLock)();
|
//if(pReleaseDDThreadLock)(*pReleaseDDThreadLock)();
|
||||||
lpDDSPrimary = dxwss.GetPrimarySurface();
|
lpDDSPrimary = dxwss.GetPrimarySurface();
|
||||||
if (lpDDSPrimary) {
|
if (lpDDSPrimary) {
|
||||||
if(pReleaseDDThreadLock)(*pReleaseDDThreadLock)();
|
if(pReleaseDDThreadLock)(*pReleaseDDThreadLock)();
|
||||||
res=((*pGetDCMethod())(lpDDSPrimary, &PrimaryDC));
|
res=((*pGetDCMethod())(lpDDSPrimary, &PrimaryDC));
|
||||||
while((PrimaryDC == NULL) && lpDDSPrimary) {
|
while((PrimaryDC == NULL) && lpDDSPrimary) {
|
||||||
@ -242,6 +250,7 @@ BOOL dxwSDC::PutPrimaryDC(HDC hdc, BOOL UpdateScreen, int XDest, int YDest, int
|
|||||||
if(UpdateScreen){
|
if(UpdateScreen){
|
||||||
switch(VirtualSurfaceType){
|
switch(VirtualSurfaceType){
|
||||||
case VIRTUAL_ON_DDRAW:
|
case VIRTUAL_ON_DDRAW:
|
||||||
|
|
||||||
ret=(*pGDIBitBlt)(PrimaryDC, XDest+VirtualOffset.x, YDest+VirtualOffset.y, nDestWidth, nDestHeight, VirtualHDC, XDest, YDest, SRCCOPY);
|
ret=(*pGDIBitBlt)(PrimaryDC, XDest+VirtualOffset.x, YDest+VirtualOffset.y, nDestWidth, nDestHeight, VirtualHDC, XDest, YDest, SRCCOPY);
|
||||||
if(!ret || (ret==GDI_ERROR)) {
|
if(!ret || (ret==GDI_ERROR)) {
|
||||||
OutTraceE("dxwSDC::PutPrimaryDC: BitBlt ERROR ret=%x err=%d\n", ret, GetLastError());
|
OutTraceE("dxwSDC::PutPrimaryDC: BitBlt ERROR ret=%x err=%d\n", ret, GetLastError());
|
||||||
@ -251,8 +260,28 @@ BOOL dxwSDC::PutPrimaryDC(HDC hdc, BOOL UpdateScreen, int XDest, int YDest, int
|
|||||||
OutTraceE("dxwSDC::PutPrimaryDC: ReleaseDC ERROR res=%x\n", res);
|
OutTraceE("dxwSDC::PutPrimaryDC: ReleaseDC ERROR res=%x\n", res);
|
||||||
}
|
}
|
||||||
dxw.ScreenRefresh();
|
dxw.ScreenRefresh();
|
||||||
|
|
||||||
|
// trick: duplicate the operation using the stretched mode to blit over clipped areas.
|
||||||
|
// good for "Star Treck: Armada".
|
||||||
|
if((dxw.dwFlags8 & SHAREDDCHYBRID) && CurrentHDCSrc && (WindowFromDC(CurrentHDC)!=dxw.GethWnd())){
|
||||||
|
int nWDest, nHDest, nXDest, nYDest;
|
||||||
|
OutTraceB("dxwSDC::PutPrimaryDC: StretchBlt over ddraw\n");
|
||||||
|
nXDest= XDest;
|
||||||
|
nYDest= YDest;
|
||||||
|
nWDest= nDestWidth;
|
||||||
|
nHDest= nDestHeight;
|
||||||
|
dxw.MapClient(&nXDest, &nYDest, &nWDest, &nHDest);
|
||||||
|
res=(*pGDIStretchBlt)(
|
||||||
|
CurrentHDC, nXDest, nYDest, nWDest, nHDest,
|
||||||
|
CurrentHDCSrc, XDest, YDest, nDestWidth, nDestHeight, SRCCOPY);
|
||||||
|
if(!res) OutTraceE("dxwSDC::PutPrimaryDC: StretchBlt ERROR err=%d\n", GetLastError());
|
||||||
|
//res=(*pGDIReleaseDC)(WindowFromDC(CurrentHDC), CurrentHDC);
|
||||||
|
//if(!res) OutTraceE("dxwSDC::PutPrimaryDC: ReleaseDC ERROR err=%d\n", GetLastError());
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case VIRTUAL_ON_WINDOW:
|
case VIRTUAL_ON_WINDOW:
|
||||||
|
|
||||||
SetStretchBltMode(PrimaryDC, HALFTONE);
|
SetStretchBltMode(PrimaryDC, HALFTONE);
|
||||||
RECT RealArea, VirtualArea;
|
RECT RealArea, VirtualArea;
|
||||||
// some fullscreen games ("Imperialism II") blitted from negative coordinates -2,-2 !!
|
// some fullscreen games ("Imperialism II") blitted from negative coordinates -2,-2 !!
|
||||||
@ -275,6 +304,7 @@ BOOL dxwSDC::PutPrimaryDC(HDC hdc, BOOL UpdateScreen, int XDest, int YDest, int
|
|||||||
if(PrimaryDC)ret=(*pGDIStretchBlt)(PrimaryDC, RealArea.left, RealArea.top, RealArea.right, RealArea.bottom, VirtualHDC, VirtualArea.left, VirtualArea.top, VirtualArea.right, VirtualArea.bottom, SRCCOPY);
|
if(PrimaryDC)ret=(*pGDIStretchBlt)(PrimaryDC, RealArea.left, RealArea.top, RealArea.right, RealArea.bottom, VirtualHDC, VirtualArea.left, VirtualArea.top, VirtualArea.right, VirtualArea.bottom, SRCCOPY);
|
||||||
ret=(*pGDIReleaseDC)(dxw.GethWnd(), PrimaryDC);
|
ret=(*pGDIReleaseDC)(dxw.GethWnd(), PrimaryDC);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -20,6 +20,7 @@ public:
|
|||||||
// Operations
|
// Operations
|
||||||
public: // methods
|
public: // methods
|
||||||
HDC GetPrimaryDC(HDC);
|
HDC GetPrimaryDC(HDC);
|
||||||
|
HDC GetPrimaryDC(HDC, HDC);
|
||||||
HDC GetHdc(void);
|
HDC GetHdc(void);
|
||||||
BOOL PutPrimaryDC(HDC, BOOL, int, int, int, int);
|
BOOL PutPrimaryDC(HDC, BOOL, int, int, int, int);
|
||||||
BOOL PutPrimaryDC(HDC, BOOL);
|
BOOL PutPrimaryDC(HDC, BOOL);
|
||||||
@ -31,6 +32,7 @@ private:
|
|||||||
HDC PrimaryDC;
|
HDC PrimaryDC;
|
||||||
HDC VirtualHDC;
|
HDC VirtualHDC;
|
||||||
HDC CurrentHDC;
|
HDC CurrentHDC;
|
||||||
|
HDC CurrentHDCSrc;
|
||||||
HWND CurrenthWnd;
|
HWND CurrenthWnd;
|
||||||
LPDIRECTDRAWSURFACE lpDDSPrimary;
|
LPDIRECTDRAWSURFACE lpDDSPrimary;
|
||||||
HBITMAP VirtualPic;
|
HBITMAP VirtualPic;
|
||||||
|
@ -2918,8 +2918,9 @@ int WINAPI extDrawTextA(HDC hdc, LPCTSTR lpchText, int nCount, LPRECT lpRect, UI
|
|||||||
ret=(*pDrawTextA)(sdc.GetHdc(), lpchText, nCount, lpRect, uFormat);
|
ret=(*pDrawTextA)(sdc.GetHdc(), lpchText, nCount, lpRect, uFormat);
|
||||||
if(nCount)
|
if(nCount)
|
||||||
sdc.PutPrimaryDC(hdc, TRUE, lpRect->left, lpRect->top, lpRect->right-lpRect->left, lpRect->bottom-lpRect->top);
|
sdc.PutPrimaryDC(hdc, TRUE, lpRect->left, lpRect->top, lpRect->right-lpRect->left, lpRect->bottom-lpRect->top);
|
||||||
else
|
else {
|
||||||
sdc.PutPrimaryDC(hdc, FALSE); // Diablo makes a DrawText of nuull string in the intro ...
|
sdc.PutPrimaryDC(hdc, FALSE); // Diablo makes a DrawText of null string in the intro ...
|
||||||
|
}
|
||||||
return ret;
|
return ret;
|
||||||
break;
|
break;
|
||||||
case GDIMODE_STRETCHED:
|
case GDIMODE_STRETCHED:
|
||||||
@ -2949,14 +2950,14 @@ int WINAPI extDrawTextExA(HDC hdc, LPTSTR lpchText, int nCount, LPRECT lpRect, U
|
|||||||
int ret;
|
int ret;
|
||||||
OutTraceDW("DrawTextExA: hdc=%x rect=(%d,%d)-(%d,%d) DTFormat=%x Text=(%d)\"%s\"\n",
|
OutTraceDW("DrawTextExA: hdc=%x rect=(%d,%d)-(%d,%d) DTFormat=%x Text=(%d)\"%s\"\n",
|
||||||
hdc, lpRect->left, lpRect->top, lpRect->right, lpRect->bottom, dwDTFormat, nCount, lpchText);
|
hdc, lpRect->left, lpRect->top, lpRect->right, lpRect->bottom, dwDTFormat, nCount, lpchText);
|
||||||
if (IsDebug){
|
if (IsDebug){
|
||||||
if(lpDTParams)
|
if(lpDTParams)
|
||||||
OutTrace("DTParams: size=%d (L,R)margins=(%d,%d) TabLength=%d lDrawn=%d\n",
|
OutTrace("DTParams: size=%d (L,R)margins=(%d,%d) TabLength=%d lDrawn=%d\n",
|
||||||
lpDTParams->cbSize, lpDTParams->iLeftMargin, lpDTParams->iRightMargin,
|
lpDTParams->cbSize, lpDTParams->iLeftMargin, lpDTParams->iRightMargin,
|
||||||
lpDTParams->iTabLength, lpDTParams->uiLengthDrawn);
|
lpDTParams->iTabLength, lpDTParams->uiLengthDrawn);
|
||||||
else
|
else
|
||||||
OutTrace("DTParams: NULL\n");
|
OutTrace("DTParams: NULL\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
gFixed = TRUE; // semaphore to avoid multiple scaling with HOT patching
|
gFixed = TRUE; // semaphore to avoid multiple scaling with HOT patching
|
||||||
if(dxw.IsToRemap(hdc)){
|
if(dxw.IsToRemap(hdc)){
|
||||||
@ -2964,7 +2965,10 @@ int WINAPI extDrawTextExA(HDC hdc, LPTSTR lpchText, int nCount, LPRECT lpRect, U
|
|||||||
case GDIMODE_SHAREDDC:
|
case GDIMODE_SHAREDDC:
|
||||||
sdc.GetPrimaryDC(hdc);
|
sdc.GetPrimaryDC(hdc);
|
||||||
ret=(*pDrawTextExA)(sdc.GetHdc(), lpchText, nCount, lpRect, dwDTFormat, lpDTParams);
|
ret=(*pDrawTextExA)(sdc.GetHdc(), lpchText, nCount, lpRect, dwDTFormat, lpDTParams);
|
||||||
sdc.PutPrimaryDC(hdc, TRUE, lpRect->left, lpRect->top, lpRect->right-lpRect->left, lpRect->bottom-lpRect->top);
|
if(nCount)
|
||||||
|
sdc.PutPrimaryDC(hdc, TRUE, lpRect->left, lpRect->top, lpRect->right-lpRect->left, lpRect->bottom-lpRect->top);
|
||||||
|
else
|
||||||
|
sdc.PutPrimaryDC(hdc, FALSE); // in cases like Diablo that makes a DrawText of null string in the intro ...
|
||||||
return ret;
|
return ret;
|
||||||
break;
|
break;
|
||||||
case GDIMODE_STRETCHED:
|
case GDIMODE_STRETCHED:
|
||||||
|
@ -540,6 +540,27 @@ MMRESULT WINAPI extjoyGetDevCapsA(DWORD uJoyID, LPJOYCAPS pjc, UINT cbjc)
|
|||||||
return JOYERR_NOERROR;
|
return JOYERR_NOERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOL JoyProcessMouseWheelMessage(WPARAM wParam, LPARAM lParam)
|
||||||
|
{
|
||||||
|
int zDelta;
|
||||||
|
DWORD dwSensivity = GetHookInfo()->VJoySensivity;
|
||||||
|
DWORD dwJoyStatus = GetHookInfo()->VJoyStatus;
|
||||||
|
|
||||||
|
if(!(dwJoyStatus & VJMOUSEWHEEL)) return FALSE;
|
||||||
|
|
||||||
|
if(!dwSensivity) dwSensivity=100;
|
||||||
|
//fwKeys = GET_KEYSTATE_WPARAM(wParam);
|
||||||
|
zDelta = GET_WHEEL_DELTA_WPARAM(wParam);
|
||||||
|
if(zDelta > 4 * WHEEL_DELTA) zDelta = 4 * WHEEL_DELTA;
|
||||||
|
if(zDelta < -4 * WHEEL_DELTA) zDelta = -4 * WHEEL_DELTA;
|
||||||
|
if(zDelta > 0) dwSensivity = (dwSensivity * 110 * zDelta) / (100 * WHEEL_DELTA);
|
||||||
|
if(zDelta < 0) dwSensivity = (dwSensivity * 100 * -zDelta) / (110 * WHEEL_DELTA);
|
||||||
|
if(dwSensivity < 32) dwSensivity = 32;
|
||||||
|
if(dwSensivity > 250) dwSensivity = 250;
|
||||||
|
GetHookInfo()->VJoySensivity = dwSensivity;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
static MMRESULT GetJoy(char *apiname, DWORD uJoyID, LPJOYINFO lpj)
|
static MMRESULT GetJoy(char *apiname, DWORD uJoyID, LPJOYINFO lpj)
|
||||||
{
|
{
|
||||||
OutTraceC("%s: joyid=%d\n", apiname, uJoyID);
|
OutTraceC("%s: joyid=%d\n", apiname, uJoyID);
|
||||||
@ -601,19 +622,58 @@ static MMRESULT GetJoy(char *apiname, DWORD uJoyID, LPJOYINFO lpj)
|
|||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
OutTraceB("%s: ACTIVE mouse=(%d,%d)\n", apiname, pt.x, pt.y);
|
OutTraceB("%s: ACTIVE mouse=(%d,%d)\n", apiname, pt.x, pt.y);
|
||||||
if(pt.x < client.left) pt.x = client.left;
|
|
||||||
if(pt.x > client.right) pt.x = client.right;
|
|
||||||
if(pt.y < client.top) pt.y = client.top;
|
|
||||||
if(pt.y > client.bottom) pt.y = client.bottom;
|
|
||||||
CenterX = (client.right - client.left) >> 1;
|
CenterX = (client.right - client.left) >> 1;
|
||||||
CenterY = (client.bottom - client.top) >> 1;
|
CenterY = (client.bottom - client.top) >> 1;
|
||||||
|
|
||||||
x = ((pt.x - CenterX) * XSPAN) / client.right;
|
if(dwVJoyStatus & VJMOUSEMAP){
|
||||||
y = ((pt.y - CenterY) * YSPAN) / client.bottom;
|
if(pt.x < client.left) pt.x = client.left;
|
||||||
|
if(pt.x > client.right) pt.x = client.right;
|
||||||
|
if(pt.y < client.top) pt.y = client.top;
|
||||||
|
if(pt.y > client.bottom) pt.y = client.bottom;
|
||||||
|
|
||||||
|
x = ((pt.x - CenterX) * XSPAN) / client.right;
|
||||||
|
y = ((pt.y - CenterY) * YSPAN) / client.bottom;
|
||||||
|
|
||||||
|
if(dwVJoyStatus & VJAUTOCENTER) {
|
||||||
|
// autocenter: each time, moves 1/20 distance toward centered 0,0 position
|
||||||
|
// 1/20 = 0.05, changing value changes the autocenter speed (must be >0.0 and <1.0)
|
||||||
|
int x1, y1;
|
||||||
|
x1 = (int)(pt.x + upleft.x - ((pt.x - CenterX) * 0.05));
|
||||||
|
y1 = (int)(pt.y + upleft.y - ((pt.y - CenterY) * 0.05));
|
||||||
|
if((x1 != pt.x+upleft.x) || (y1 != pt.y+upleft.y)) (*pSetCursorPos)(x1, y1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(dwVJoyStatus & VJKEYBOARDMAP){
|
||||||
|
if (GetKeyState(VK_LEFT) < 0) x = -XSPAN/2;
|
||||||
|
if (GetKeyState(VK_RIGHT) < 0) x = +XSPAN/2;
|
||||||
|
if (GetKeyState(VK_UP) < 0) y = -YSPAN/2;
|
||||||
|
if (GetKeyState(VK_DOWN) < 0) y = +YSPAN/2;
|
||||||
|
if (GetKeyState(VK_SPACE) < 0) dwButtons |= JOY_BUTTON1;
|
||||||
|
if (GetKeyState(VK_LCONTROL) < 0) dwButtons |= JOY_BUTTON2;
|
||||||
|
}
|
||||||
|
|
||||||
if(dwVJoyStatus & INVERTXAXIS) x = -x;
|
if(dwVJoyStatus & INVERTXAXIS) x = -x;
|
||||||
if(dwVJoyStatus & INVERTYAXIS) y = -y;
|
if(dwVJoyStatus & INVERTYAXIS) y = -y;
|
||||||
|
//if(dwVJoyStatus & VJSENSIVITY){
|
||||||
|
{
|
||||||
|
DWORD dwSensivity = GetHookInfo()->VJoySensivity;
|
||||||
|
if(dwSensivity){
|
||||||
|
x = (x * (LONG)dwSensivity) / 100;
|
||||||
|
y = (y * (LONG)dwSensivity) / 100;
|
||||||
|
if(x > +XSPAN) x = +XSPAN;
|
||||||
|
if(x < -XSPAN) x = -XSPAN;
|
||||||
|
if(y > +YSPAN) y = +YSPAN;
|
||||||
|
if(y < -YSPAN) y = -YSPAN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (dwVJoyStatus & CROSSENABLED) {
|
||||||
|
int jx, jy;
|
||||||
|
jx = CenterX + (x * client.right) / XSPAN;
|
||||||
|
jy = CenterY + (y * client.bottom) / YSPAN;
|
||||||
|
ShowJoystick(jx, jy, dwButtons);
|
||||||
}
|
}
|
||||||
if (dwVJoyStatus & CROSSENABLED) ShowJoystick(pt.x, pt.y, dwButtons);
|
|
||||||
}
|
}
|
||||||
lpj->wXpos = x;
|
lpj->wXpos = x;
|
||||||
lpj->wYpos = y;
|
lpj->wYpos = y;
|
||||||
|
@ -13,6 +13,7 @@ extern void SuppressIMEWindow();
|
|||||||
extern void RecoverScreenMode();
|
extern void RecoverScreenMode();
|
||||||
extern void dx_FullScreenToggle(HWND);
|
extern void dx_FullScreenToggle(HWND);
|
||||||
extern void dx_DesktopToggle(HWND, BOOL);
|
extern void dx_DesktopToggle(HWND, BOOL);
|
||||||
|
extern BOOL JoyProcessMouseWheelMessage(WPARAM, LPARAM);
|
||||||
|
|
||||||
static void dx_ToggleLogging()
|
static void dx_ToggleLogging()
|
||||||
{
|
{
|
||||||
@ -494,6 +495,10 @@ LRESULT CALLBACK extWindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lp
|
|||||||
break;
|
break;
|
||||||
// fall through cases:
|
// fall through cases:
|
||||||
case WM_MOUSEWHEEL:
|
case WM_MOUSEWHEEL:
|
||||||
|
if(dxw.dwFlags6 & VIRTUALJOYSTICK) {
|
||||||
|
if(dxw.Windowize && (dxw.dwFlags1 & CLIPCURSOR) && !dxw.IsClipCursorActive()) dxw.SetClipCursor();
|
||||||
|
if (JoyProcessMouseWheelMessage(wparam, lparam)) return 0;
|
||||||
|
} // fall through
|
||||||
case WM_LBUTTONDOWN:
|
case WM_LBUTTONDOWN:
|
||||||
case WM_LBUTTONUP:
|
case WM_LBUTTONUP:
|
||||||
case WM_LBUTTONDBLCLK:
|
case WM_LBUTTONDBLCLK:
|
||||||
|
@ -13,7 +13,6 @@ public:
|
|||||||
|
|
||||||
// Dialog Data
|
// Dialog Data
|
||||||
enum { IDD = IDD_STATUS };
|
enum { IDD = IDD_STATUS };
|
||||||
int iTimeSlider;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
||||||
|
@ -50,12 +50,9 @@ void CTabCompat::DoDataExchange(CDataExchange* pDX)
|
|||||||
DDX_Check(pDX, IDC_COLORFIX, cTarget->m_ColorFix);
|
DDX_Check(pDX, IDC_COLORFIX, cTarget->m_ColorFix);
|
||||||
DDX_Check(pDX, IDC_FIXGLOBALUNLOCK, cTarget->m_FixGlobalUnlock);
|
DDX_Check(pDX, IDC_FIXGLOBALUNLOCK, cTarget->m_FixGlobalUnlock);
|
||||||
DDX_Check(pDX, IDC_FIXFREELIBRARY, cTarget->m_FixFreeLibrary);
|
DDX_Check(pDX, IDC_FIXFREELIBRARY, cTarget->m_FixFreeLibrary);
|
||||||
|
DDX_Check(pDX, IDC_LOADLIBRARYERR, cTarget->m_LoadLibraryErr);
|
||||||
// Registry management
|
DDX_Check(pDX, IDC_PRETENDVISIBLE, cTarget->m_PretendVisible);
|
||||||
DDX_Check(pDX, IDC_EMULATEREGISTRY, cTarget->m_EmulateRegistry);
|
DDX_Check(pDX, IDC_WININSULATION, cTarget->m_WinInsulation);
|
||||||
DDX_Check(pDX, IDC_OVERRIDEREGISTRY, cTarget->m_OverrideRegistry);
|
|
||||||
DDX_Check(pDX, IDC_WOW64REGISTRY, cTarget->m_Wow64Registry);
|
|
||||||
DDX_Check(pDX, IDC_WOW32REGISTRY, cTarget->m_Wow32Registry);
|
|
||||||
|
|
||||||
// GOG patches
|
// GOG patches
|
||||||
DDX_Check(pDX, IDC_HOOKGOGLIBS, cTarget->m_HookGOGLibs);
|
DDX_Check(pDX, IDC_HOOKGOGLIBS, cTarget->m_HookGOGLibs);
|
||||||
|
@ -27,7 +27,14 @@ void CTabRegistry::DoDataExchange(CDataExchange* pDX)
|
|||||||
{
|
{
|
||||||
CDialog::DoDataExchange(pDX);
|
CDialog::DoDataExchange(pDX);
|
||||||
CTargetDlg *cTarget = ((CTargetDlg *)(this->GetParent()->GetParent()));
|
CTargetDlg *cTarget = ((CTargetDlg *)(this->GetParent()->GetParent()));
|
||||||
|
|
||||||
|
// Registry management
|
||||||
|
DDX_Check(pDX, IDC_EMULATEREGISTRY, cTarget->m_EmulateRegistry);
|
||||||
|
DDX_Check(pDX, IDC_OVERRIDEREGISTRY, cTarget->m_OverrideRegistry);
|
||||||
|
DDX_Check(pDX, IDC_WOW64REGISTRY, cTarget->m_Wow64Registry);
|
||||||
|
DDX_Check(pDX, IDC_WOW32REGISTRY, cTarget->m_Wow32Registry);
|
||||||
DDX_Text(pDX, IDC_REGISTRY, cTarget->m_Registry);
|
DDX_Text(pDX, IDC_REGISTRY, cTarget->m_Registry);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BEGIN_MESSAGE_MAP(CTabRegistry, CDialog)
|
BEGIN_MESSAGE_MAP(CTabRegistry, CDialog)
|
||||||
|
@ -34,10 +34,9 @@ void CTabSysLibs::DoDataExchange(CDataExchange* pDX)
|
|||||||
DDX_Check(pDX, IDC_QUALITYFONTS, cTarget->m_QualityFonts);
|
DDX_Check(pDX, IDC_QUALITYFONTS, cTarget->m_QualityFonts);
|
||||||
DDX_Check(pDX, IDC_NOFILLRECT, cTarget->m_NoFillRect);
|
DDX_Check(pDX, IDC_NOFILLRECT, cTarget->m_NoFillRect);
|
||||||
DDX_Check(pDX, IDC_FIXCLIPPERAREA, cTarget->m_FixClipperArea);
|
DDX_Check(pDX, IDC_FIXCLIPPERAREA, cTarget->m_FixClipperArea);
|
||||||
|
DDX_Check(pDX, IDC_SHAREDDCHYBRID, cTarget->m_SharedDCHybrid);
|
||||||
DDX_Check(pDX, IDC_SYNCPALETTE, cTarget->m_SyncPalette);
|
DDX_Check(pDX, IDC_SYNCPALETTE, cTarget->m_SyncPalette);
|
||||||
DDX_Check(pDX, IDC_NOWINERRORS, cTarget->m_NoWinErrors);
|
DDX_Check(pDX, IDC_NOWINERRORS, cTarget->m_NoWinErrors);
|
||||||
DDX_Check(pDX, IDC_PRETENDVISIBLE, cTarget->m_PretendVisible);
|
|
||||||
DDX_Check(pDX, IDC_WININSULATION, cTarget->m_WinInsulation);
|
|
||||||
|
|
||||||
// OpenGL
|
// OpenGL
|
||||||
DDX_Check(pDX, IDC_HOOKOPENGL, cTarget->m_HookOpenGL); // duplicated
|
DDX_Check(pDX, IDC_HOOKOPENGL, cTarget->m_HookOpenGL); // duplicated
|
||||||
|
@ -89,6 +89,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/)
|
|||||||
m_ColorFix = FALSE;
|
m_ColorFix = FALSE;
|
||||||
m_FixGlobalUnlock = FALSE;
|
m_FixGlobalUnlock = FALSE;
|
||||||
m_FixFreeLibrary = FALSE;
|
m_FixFreeLibrary = FALSE;
|
||||||
|
m_LoadLibraryErr = FALSE;
|
||||||
m_NoPixelFormat = FALSE;
|
m_NoPixelFormat = FALSE;
|
||||||
m_NoAlphaChannel = FALSE;
|
m_NoAlphaChannel = FALSE;
|
||||||
m_FixRefCounter = TRUE; // default true !!
|
m_FixRefCounter = TRUE; // default true !!
|
||||||
@ -251,6 +252,7 @@ CTargetDlg::CTargetDlg(CWnd* pParent /*=NULL*/)
|
|||||||
m_NoGDIBlt = FALSE;
|
m_NoGDIBlt = FALSE;
|
||||||
m_NoFillRect = FALSE;
|
m_NoFillRect = FALSE;
|
||||||
m_FixClipperArea = FALSE; // ??
|
m_FixClipperArea = FALSE; // ??
|
||||||
|
m_SharedDCHybrid = FALSE; // ??
|
||||||
m_SyncPalette = FALSE;
|
m_SyncPalette = FALSE;
|
||||||
m_NoWinErrors = FALSE;
|
m_NoWinErrors = FALSE;
|
||||||
m_PretendVisible = FALSE;
|
m_PretendVisible = FALSE;
|
||||||
|
@ -201,6 +201,7 @@ public:
|
|||||||
BOOL m_NoGDIBlt;
|
BOOL m_NoGDIBlt;
|
||||||
BOOL m_NoFillRect;
|
BOOL m_NoFillRect;
|
||||||
BOOL m_FixClipperArea;
|
BOOL m_FixClipperArea;
|
||||||
|
BOOL m_SharedDCHybrid;
|
||||||
BOOL m_SyncPalette;
|
BOOL m_SyncPalette;
|
||||||
BOOL m_NoWinErrors;
|
BOOL m_NoWinErrors;
|
||||||
BOOL m_PretendVisible;
|
BOOL m_PretendVisible;
|
||||||
@ -251,6 +252,7 @@ public:
|
|||||||
BOOL m_ColorFix;
|
BOOL m_ColorFix;
|
||||||
BOOL m_FixGlobalUnlock;
|
BOOL m_FixGlobalUnlock;
|
||||||
BOOL m_FixFreeLibrary;
|
BOOL m_FixFreeLibrary;
|
||||||
|
BOOL m_LoadLibraryErr;
|
||||||
BOOL m_NoPixelFormat;
|
BOOL m_NoPixelFormat;
|
||||||
BOOL m_NoAlphaChannel;
|
BOOL m_NoAlphaChannel;
|
||||||
BOOL m_FixRefCounter;
|
BOOL m_FixRefCounter;
|
||||||
|
@ -4,11 +4,53 @@
|
|||||||
#include "stdafx.h"
|
#include "stdafx.h"
|
||||||
#include "dxwndhost.h"
|
#include "dxwndhost.h"
|
||||||
#include "VJoyDialog.h"
|
#include "VJoyDialog.h"
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
#define XSPAN 128
|
#define XSPAN 128
|
||||||
#define YSPAN 128
|
#define YSPAN 128
|
||||||
#define PICWIDTH 140
|
|
||||||
#define PICHEIGHT 140
|
/*
|
||||||
|
// calculates the closest m_Slider value
|
||||||
|
int pos, delta, lastdelta;
|
||||||
|
lastdelta=200;
|
||||||
|
for(pos=-10; pos<=10; pos++){
|
||||||
|
int s;
|
||||||
|
s = (int)(100 * pow(TICKMULTIPLIER, (float)pos));
|
||||||
|
delta = abs(s - this->m_VJoySensivity);
|
||||||
|
if(delta > lastdelta) break;
|
||||||
|
lastdelta = delta;
|
||||||
|
}
|
||||||
|
this->m_Slider = pos-1;
|
||||||
|
*/
|
||||||
|
|
||||||
|
int CVJoyDialog::GetSliderPos(int sensivity)
|
||||||
|
{
|
||||||
|
int pos;
|
||||||
|
int delta, lastdelta;
|
||||||
|
lastdelta = 400; // initial value big enough ...
|
||||||
|
for(pos=-20; pos<=20; pos++){
|
||||||
|
delta = abs(Multipliers[20+pos] - sensivity);
|
||||||
|
if(delta > lastdelta) break;
|
||||||
|
lastdelta = delta;
|
||||||
|
}
|
||||||
|
return pos-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int CVJoyDialog::SetSensivity(int slider)
|
||||||
|
{
|
||||||
|
if(slider < -20) slider = -20;
|
||||||
|
if(slider > 20) slider = 20;
|
||||||
|
return Multipliers[20+slider];
|
||||||
|
}
|
||||||
|
|
||||||
|
void CVJoyDialog::InitSensivity(void)
|
||||||
|
{
|
||||||
|
int Multiplier;
|
||||||
|
int pos;
|
||||||
|
for(Multiplier = 100, pos=-1; pos>=-20; pos--) Multipliers[20+pos] = Multiplier = (Multiplier * 100) / 105;
|
||||||
|
for(Multiplier = 100, pos= 1; pos<= 20; pos++) Multipliers[20+pos] = Multiplier = (Multiplier * 105) / 100;
|
||||||
|
Multipliers[20] = 100;
|
||||||
|
}
|
||||||
|
|
||||||
// CVJoyDialog dialog
|
// CVJoyDialog dialog
|
||||||
|
|
||||||
@ -36,6 +78,10 @@ void CVJoyDialog::DoDataExchange(CDataExchange* pDX)
|
|||||||
DDX_Check(pDX, IDC_INVERTYAXIS, this->m_InvertYAxis);
|
DDX_Check(pDX, IDC_INVERTYAXIS, this->m_InvertYAxis);
|
||||||
DDX_Check(pDX, IDC_B1AUTOFIRE, this->m_B1AutoFire);
|
DDX_Check(pDX, IDC_B1AUTOFIRE, this->m_B1AutoFire);
|
||||||
DDX_Check(pDX, IDC_B2AUTOFIRE, this->m_B2AutoFire);
|
DDX_Check(pDX, IDC_B2AUTOFIRE, this->m_B2AutoFire);
|
||||||
|
DDX_Check(pDX, IDC_VJAUTOCENTER, this->m_VJAutoCenter);
|
||||||
|
DDX_Check(pDX, IDC_VJMOUSEWHEEL, this->m_VJMouseWheel);
|
||||||
|
DDX_Radio(pDX, IDC_VJ_USEMOUSE, this->m_UseMode);
|
||||||
|
DDX_Slider(pDX, IDC_SENSIVITY_SLIDER, this->m_Slider);
|
||||||
//}}AFX_DATA_MAP
|
//}}AFX_DATA_MAP
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -47,6 +93,7 @@ END_MESSAGE_MAP()
|
|||||||
#define IDVJoyTIMER 3
|
#define IDVJoyTIMER 3
|
||||||
#define FINDERSIZE 5
|
#define FINDERSIZE 5
|
||||||
#define CROSSSIZE 20
|
#define CROSSSIZE 20
|
||||||
|
#define TICKMULTIPLIER 1.05f
|
||||||
|
|
||||||
// CVJoyDialog message handlers
|
// CVJoyDialog message handlers
|
||||||
|
|
||||||
@ -55,7 +102,23 @@ void CVJoyDialog::OnTimer(UINT_PTR nIDEvent)
|
|||||||
// IDC_VJOYPOSITION
|
// IDC_VJOYPOSITION
|
||||||
int x, y;
|
int x, y;
|
||||||
DWORD dwVJoyStatus;
|
DWORD dwVJoyStatus;
|
||||||
|
DWORD dwSensivity;
|
||||||
|
CString text;
|
||||||
|
static DWORD dwLastSensivity = 0;
|
||||||
|
|
||||||
|
// takes care of external updates of sensivity by mouse wheel
|
||||||
|
dwSensivity = GetHookInfo()->VJoySensivity;
|
||||||
|
if(dwLastSensivity && (dwSensivity != dwLastSensivity)){
|
||||||
|
CSliderCtrl *Slider;
|
||||||
|
this->m_Slider = this->GetSliderPos(dwSensivity);
|
||||||
|
Slider=(CSliderCtrl *)this->GetDlgItem(IDC_SENSIVITY_SLIDER);
|
||||||
|
Slider->SetPos(this->m_Slider);
|
||||||
|
}
|
||||||
|
|
||||||
CDialog::UpdateData(); // calls DoDataExchange
|
CDialog::UpdateData(); // calls DoDataExchange
|
||||||
|
this->m_VJoySensivity = this->SetSensivity(m_Slider);
|
||||||
|
dwLastSensivity = this->m_VJoySensivity;
|
||||||
|
|
||||||
dwVJoyStatus = GetHookInfo()->VJoyStatus;
|
dwVJoyStatus = GetHookInfo()->VJoyStatus;
|
||||||
this->m_VJoyPresent = (dwVJoyStatus & VJOYPRESENT) ? 1 : 0;
|
this->m_VJoyPresent = (dwVJoyStatus & VJOYPRESENT) ? 1 : 0;
|
||||||
dwVJoyStatus &= VJOYPRESENT; // clear all BUT VJOYPRESENT!
|
dwVJoyStatus &= VJOYPRESENT; // clear all BUT VJOYPRESENT!
|
||||||
@ -65,22 +128,43 @@ void CVJoyDialog::OnTimer(UINT_PTR nIDEvent)
|
|||||||
if(this->m_InvertXAxis) dwVJoyStatus |= INVERTXAXIS;
|
if(this->m_InvertXAxis) dwVJoyStatus |= INVERTXAXIS;
|
||||||
if(this->m_B1AutoFire) dwVJoyStatus |= B1AUTOFIRE;
|
if(this->m_B1AutoFire) dwVJoyStatus |= B1AUTOFIRE;
|
||||||
if(this->m_B2AutoFire) dwVJoyStatus |= B2AUTOFIRE;
|
if(this->m_B2AutoFire) dwVJoyStatus |= B2AUTOFIRE;
|
||||||
|
if(this->m_VJAutoCenter) dwVJoyStatus |= VJAUTOCENTER;
|
||||||
|
if(this->m_VJMouseWheel) dwVJoyStatus |= VJMOUSEWHEEL;
|
||||||
|
switch(this->m_UseMode){
|
||||||
|
case 0: dwVJoyStatus |= VJMOUSEMAP; break;
|
||||||
|
case 1: dwVJoyStatus |= VJKEYBOARDMAP; break;
|
||||||
|
case 2: dwVJoyStatus |= (VJKEYBOARDMAP|VJMOUSEMAP); break;
|
||||||
|
}
|
||||||
|
|
||||||
if(this->m_VJoyEnabled && this->m_VJoyPresent){
|
if(this->m_VJoyEnabled && this->m_VJoyPresent){
|
||||||
CWnd *JoyPos = this->GetDlgItem(IDC_VJOYPOSITION);
|
CWnd *JoyPos = this->GetDlgItem(IDC_VJOYPOSITION);
|
||||||
CDC *dc = JoyPos->GetDC();
|
CDC *dc = JoyPos->GetDC();
|
||||||
RECT client;
|
RECT client;
|
||||||
CString coord;
|
|
||||||
JoyPos->GetClientRect(&client);
|
JoyPos->GetClientRect(&client);
|
||||||
x = (client.right/2) + ((GetHookInfo()->joyposx * client.right) / XSPAN);
|
x = (client.right/2) + ((GetHookInfo()->joyposx * client.right) / XSPAN);
|
||||||
y = (client.bottom/2) + ((GetHookInfo()->joyposy * client.bottom) / YSPAN);
|
y = (client.bottom/2) + ((GetHookInfo()->joyposy * client.bottom) / YSPAN);
|
||||||
|
// clear whole square area
|
||||||
dc->FillRect(&client, Background);
|
dc->FillRect(&client, Background);
|
||||||
|
// draw sensivity circle
|
||||||
|
dc->SelectObject(SensivityPen);
|
||||||
|
dc->Ellipse(
|
||||||
|
(client.right)*(250-dwSensivity)/500,
|
||||||
|
(client.bottom)*(250-dwSensivity)/500,
|
||||||
|
(client.right)*(250+dwSensivity)/500,
|
||||||
|
(client.bottom)*(250+dwSensivity)/500);
|
||||||
|
// draw center crossfinder
|
||||||
dc->SelectObject(CenterPen);
|
dc->SelectObject(CenterPen);
|
||||||
dc->MoveTo((client.right/2)-CROSSSIZE,(client.bottom/2));
|
dc->MoveTo((client.right/2)-CROSSSIZE,(client.bottom/2));
|
||||||
dc->LineTo((client.right/2)+CROSSSIZE,(client.bottom/2));
|
dc->LineTo((client.right/2)+CROSSSIZE,(client.bottom/2));
|
||||||
dc->MoveTo((client.right/2),(client.bottom/2)-CROSSSIZE);
|
dc->MoveTo((client.right/2),(client.bottom/2)-CROSSSIZE);
|
||||||
dc->LineTo((client.right/2),(client.bottom/2)+CROSSSIZE);
|
dc->LineTo((client.right/2),(client.bottom/2)+CROSSSIZE);
|
||||||
|
// draw joystick crossfinder
|
||||||
dc->SelectObject(FinderPen);
|
dc->SelectObject(FinderPen);
|
||||||
int x0, y0;
|
int x0, y0;
|
||||||
|
if(x<client.left) x = client.left;
|
||||||
|
if(x>client.right) x = client.right;
|
||||||
|
if(y<client.top) y = client.top;
|
||||||
|
if(y>client.bottom) y = client.bottom;
|
||||||
x0 = (x-FINDERSIZE)<client.left ? client.left : x-FINDERSIZE;
|
x0 = (x-FINDERSIZE)<client.left ? client.left : x-FINDERSIZE;
|
||||||
dc->MoveTo(x0,y);
|
dc->MoveTo(x0,y);
|
||||||
x0 = (x+FINDERSIZE)>client.right ? client.right : x+FINDERSIZE;
|
x0 = (x+FINDERSIZE)>client.right ? client.right : x+FINDERSIZE;
|
||||||
@ -89,34 +173,53 @@ void CVJoyDialog::OnTimer(UINT_PTR nIDEvent)
|
|||||||
dc->MoveTo(x,y0);
|
dc->MoveTo(x,y0);
|
||||||
y0 = (y+FINDERSIZE)>client.bottom ? client.bottom : y+FINDERSIZE;
|
y0 = (y+FINDERSIZE)>client.bottom ? client.bottom : y+FINDERSIZE;
|
||||||
dc->LineTo(x,y0);
|
dc->LineTo(x,y0);
|
||||||
dc->MoveTo(20,20);
|
//dc->MoveTo(20,20);
|
||||||
coord.Format("%d,%d", GetHookInfo()->joyposx, GetHookInfo()->joyposy);
|
text.Format("%d,%d", GetHookInfo()->joyposx, GetHookInfo()->joyposy);
|
||||||
dc->TextOutA(5, 5, coord);
|
dc->TextOutA(5, 5, text);
|
||||||
|
text.Format("x%d%%", GetHookInfo()->VJoySensivity);
|
||||||
|
dc->TextOutA(5, 200, text);
|
||||||
dc->DeleteDC();
|
dc->DeleteDC();
|
||||||
}
|
}
|
||||||
GetHookInfo()->VJoyStatus = dwVJoyStatus;
|
GetHookInfo()->VJoyStatus = dwVJoyStatus;
|
||||||
|
GetHookInfo()->VJoySensivity = this->m_VJoySensivity;
|
||||||
|
dwLastSensivity = this->m_VJoySensivity;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL CVJoyDialog::OnInitDialog()
|
BOOL CVJoyDialog::OnInitDialog()
|
||||||
{
|
{
|
||||||
DWORD dwVJoyStatus;
|
DWORD dwVJoyStatus;
|
||||||
|
CSliderCtrl *Slider;
|
||||||
|
|
||||||
// TODO: Add extra initialization here
|
// TODO: Add extra initialization here
|
||||||
Background = new(CBrush);
|
Background = new(CBrush);
|
||||||
Background->CreateSolidBrush(RGB(255, 255, 255)); // white
|
Background->CreateSolidBrush(RGB(255, 255, 255)); // white
|
||||||
CenterPen = new(CPen);
|
CenterPen = new(CPen);
|
||||||
CenterPen->CreatePen(PS_DOT, 1, RGB(255, 0, 0));
|
CenterPen->CreatePen(PS_DOT, 1, RGB(255, 0, 0)); // red
|
||||||
FinderPen = new(CPen);
|
FinderPen = new(CPen);
|
||||||
FinderPen->CreatePen(PS_SOLID, 1, RGB(0, 0, 0));
|
FinderPen->CreatePen(PS_SOLID, 1, RGB(0, 0, 0)); // black
|
||||||
|
SensivityPen = new(CPen);
|
||||||
|
SensivityPen->CreatePen(PS_DOT, 1, RGB(127, 127, 255)); // clear blue
|
||||||
|
|
||||||
dwVJoyStatus = GetHookInfo()->VJoyStatus;
|
dwVJoyStatus = GetHookInfo()->VJoyStatus;
|
||||||
this->m_VJoyPresent = (dwVJoyStatus & VJOYPRESENT) ? 1 : 0;
|
this->m_VJoyPresent = (dwVJoyStatus & VJOYPRESENT) ? 1 : 0;
|
||||||
this->m_VJoyEnabled = (dwVJoyStatus & VJOYENABLED) ? 1 : 0;
|
this->m_VJoyEnabled = (dwVJoyStatus & VJOYENABLED) ? 1 : 0;
|
||||||
this->m_CrossEnabled= (dwVJoyStatus & CROSSENABLED) ? 1 : 0;
|
this->m_CrossEnabled = (dwVJoyStatus & CROSSENABLED) ? 1 : 0;
|
||||||
this->m_InvertYAxis = (dwVJoyStatus & INVERTYAXIS) ? 1 : 0;
|
this->m_InvertYAxis = (dwVJoyStatus & INVERTYAXIS) ? 1 : 0;
|
||||||
this->m_InvertXAxis = (dwVJoyStatus & INVERTXAXIS) ? 1 : 0;
|
this->m_InvertXAxis = (dwVJoyStatus & INVERTXAXIS) ? 1 : 0;
|
||||||
this->m_B1AutoFire = (dwVJoyStatus & B1AUTOFIRE) ? 1 : 0;
|
this->m_B1AutoFire = (dwVJoyStatus & B1AUTOFIRE) ? 1 : 0;
|
||||||
this->m_B2AutoFire = (dwVJoyStatus & B2AUTOFIRE) ? 1 : 0;
|
this->m_B2AutoFire = (dwVJoyStatus & B2AUTOFIRE) ? 1 : 0;
|
||||||
|
this->m_VJAutoCenter = (dwVJoyStatus & VJAUTOCENTER) ? 1 : 0;
|
||||||
|
this->m_VJMouseWheel = (dwVJoyStatus & VJMOUSEWHEEL) ? 1 : 0;
|
||||||
|
this->m_UseMode = (dwVJoyStatus & VJKEYBOARDMAP) ? ((dwVJoyStatus & VJMOUSEMAP) ? 2 : 1) : 0;
|
||||||
|
this->m_VJoySensivity = GetHookInfo()->VJoySensivity;
|
||||||
|
// calculates the m_Slider values
|
||||||
|
this->InitSensivity();
|
||||||
|
this->m_Slider = this->GetSliderPos(this->m_VJoySensivity);
|
||||||
|
Slider=(CSliderCtrl *)this->GetDlgItem(IDC_SENSIVITY_SLIDER);
|
||||||
|
Slider->SetRange(-20, 20, 1);
|
||||||
|
|
||||||
CDialog::OnInitDialog();
|
CDialog::OnInitDialog();
|
||||||
|
|
||||||
SetTimer(IDVJoyTIMER, 40, NULL);
|
SetTimer(IDVJoyTIMER, 40, NULL);
|
||||||
|
|
||||||
return TRUE; // return TRUE unless you set the focus to a control
|
return TRUE; // return TRUE unless you set the focus to a control
|
||||||
@ -138,8 +241,18 @@ void CVJoyDialog::OnOK()
|
|||||||
if(this->m_InvertXAxis) dwVJoyStatus |= INVERTXAXIS;
|
if(this->m_InvertXAxis) dwVJoyStatus |= INVERTXAXIS;
|
||||||
if(this->m_B1AutoFire) dwVJoyStatus |= B1AUTOFIRE;
|
if(this->m_B1AutoFire) dwVJoyStatus |= B1AUTOFIRE;
|
||||||
if(this->m_B2AutoFire) dwVJoyStatus |= B2AUTOFIRE;
|
if(this->m_B2AutoFire) dwVJoyStatus |= B2AUTOFIRE;
|
||||||
|
if(this->m_VJAutoCenter) dwVJoyStatus |= VJAUTOCENTER;
|
||||||
|
if(this->m_VJMouseWheel) dwVJoyStatus |= VJMOUSEWHEEL;
|
||||||
|
switch(this->m_UseMode){
|
||||||
|
case 0: dwVJoyStatus |= VJMOUSEMAP; break;
|
||||||
|
case 1: dwVJoyStatus |= VJKEYBOARDMAP; break;
|
||||||
|
case 2: dwVJoyStatus |= (VJKEYBOARDMAP|VJMOUSEMAP); break;
|
||||||
|
}
|
||||||
|
this->m_VJoySensivity = (int)(100 * pow(TICKMULTIPLIER, (float)this->m_Slider));
|
||||||
sprintf_s(val, sizeof(val), "%i", dwVJoyStatus);
|
sprintf_s(val, sizeof(val), "%i", dwVJoyStatus);
|
||||||
WritePrivateProfileString("joystick", "flags", val, gInitPath);
|
WritePrivateProfileString("joystick", "flags", val, gInitPath);
|
||||||
|
sprintf_s(val, sizeof(val), "%i", this->m_VJoySensivity);
|
||||||
|
WritePrivateProfileString("joystick", "sensivity", val, gInitPath);
|
||||||
GetHookInfo()->VJoyStatus = dwVJoyStatus;
|
GetHookInfo()->VJoyStatus = dwVJoyStatus;
|
||||||
CDialog::OnOK();
|
CDialog::OnOK();
|
||||||
}
|
}
|
@ -27,6 +27,9 @@ protected:
|
|||||||
virtual void OnOK();
|
virtual void OnOK();
|
||||||
//virtual void OnCancel();
|
//virtual void OnCancel();
|
||||||
private:
|
private:
|
||||||
|
int GetSliderPos(int);
|
||||||
|
int SetSensivity(int);
|
||||||
|
void InitSensivity(void);
|
||||||
BOOL m_VJoyPresent;
|
BOOL m_VJoyPresent;
|
||||||
BOOL m_VJoyEnabled;
|
BOOL m_VJoyEnabled;
|
||||||
BOOL m_CrossEnabled;
|
BOOL m_CrossEnabled;
|
||||||
@ -34,7 +37,14 @@ private:
|
|||||||
BOOL m_InvertXAxis;
|
BOOL m_InvertXAxis;
|
||||||
BOOL m_B1AutoFire;
|
BOOL m_B1AutoFire;
|
||||||
BOOL m_B2AutoFire;
|
BOOL m_B2AutoFire;
|
||||||
|
BOOL m_VJAutoCenter;
|
||||||
|
BOOL m_VJMouseWheel;
|
||||||
|
int m_UseMode;
|
||||||
|
int m_VJoySensivity;
|
||||||
|
int m_Slider;
|
||||||
CBrush *Background;
|
CBrush *Background;
|
||||||
CPen *CenterPen;
|
CPen *CenterPen;
|
||||||
CPen *FinderPen;
|
CPen *FinderPen;
|
||||||
|
CPen *SensivityPen;
|
||||||
|
int Multipliers[41];
|
||||||
};
|
};
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -427,6 +427,7 @@ void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg)
|
|||||||
if(dlg->m_ColorFix) t->flags3 |= COLORFIX;
|
if(dlg->m_ColorFix) t->flags3 |= COLORFIX;
|
||||||
if(dlg->m_FixGlobalUnlock) t->flags7 |= FIXGLOBALUNLOCK;
|
if(dlg->m_FixGlobalUnlock) t->flags7 |= FIXGLOBALUNLOCK;
|
||||||
if(dlg->m_FixFreeLibrary) t->flags7 |= FIXFREELIBRARY;
|
if(dlg->m_FixFreeLibrary) t->flags7 |= FIXFREELIBRARY;
|
||||||
|
if(dlg->m_LoadLibraryErr) t->flags8 |= LOADLIBRARYERR;
|
||||||
if(dlg->m_NoPixelFormat) t->flags3 |= NOPIXELFORMAT;
|
if(dlg->m_NoPixelFormat) t->flags3 |= NOPIXELFORMAT;
|
||||||
if(dlg->m_NoAlphaChannel) t->flags4 |= NOALPHACHANNEL;
|
if(dlg->m_NoAlphaChannel) t->flags4 |= NOALPHACHANNEL;
|
||||||
if(dlg->m_FixRefCounter) t->flags4 |= FIXREFCOUNTER;
|
if(dlg->m_FixRefCounter) t->flags4 |= FIXREFCOUNTER;
|
||||||
@ -538,6 +539,7 @@ void SetTargetFromDlg(TARGETMAP *t, CTargetDlg *dlg)
|
|||||||
if(dlg->m_NoGDIBlt) t->flags3 |= NOGDIBLT;
|
if(dlg->m_NoGDIBlt) t->flags3 |= NOGDIBLT;
|
||||||
if(dlg->m_NoFillRect) t->flags4 |= NOFILLRECT;
|
if(dlg->m_NoFillRect) t->flags4 |= NOFILLRECT;
|
||||||
if(dlg->m_FixClipperArea) t->flags7 |= FIXCLIPPERAREA;
|
if(dlg->m_FixClipperArea) t->flags7 |= FIXCLIPPERAREA;
|
||||||
|
if(dlg->m_SharedDCHybrid) t->flags8 |= SHAREDDCHYBRID;
|
||||||
if(dlg->m_SyncPalette) t->flags6 |= SYNCPALETTE;
|
if(dlg->m_SyncPalette) t->flags6 |= SYNCPALETTE;
|
||||||
if(dlg->m_NoWinErrors) t->flags7 |= NOWINERRORS;
|
if(dlg->m_NoWinErrors) t->flags7 |= NOWINERRORS;
|
||||||
if(dlg->m_PretendVisible) t->flags8 |= PRETENDVISIBLE;
|
if(dlg->m_PretendVisible) t->flags8 |= PRETENDVISIBLE;
|
||||||
@ -737,6 +739,7 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg)
|
|||||||
dlg->m_ColorFix = t->flags3 & COLORFIX ? 1 : 0;
|
dlg->m_ColorFix = t->flags3 & COLORFIX ? 1 : 0;
|
||||||
dlg->m_FixGlobalUnlock = t->flags7 & FIXGLOBALUNLOCK ? 1 : 0;
|
dlg->m_FixGlobalUnlock = t->flags7 & FIXGLOBALUNLOCK ? 1 : 0;
|
||||||
dlg->m_FixFreeLibrary = t->flags7 & FIXFREELIBRARY ? 1 : 0;
|
dlg->m_FixFreeLibrary = t->flags7 & FIXFREELIBRARY ? 1 : 0;
|
||||||
|
dlg->m_LoadLibraryErr = t->flags8 & LOADLIBRARYERR ? 1 : 0;
|
||||||
dlg->m_NoPixelFormat = t->flags3 & NOPIXELFORMAT ? 1 : 0;
|
dlg->m_NoPixelFormat = t->flags3 & NOPIXELFORMAT ? 1 : 0;
|
||||||
dlg->m_NoAlphaChannel = t->flags4 & NOALPHACHANNEL ? 1 : 0;
|
dlg->m_NoAlphaChannel = t->flags4 & NOALPHACHANNEL ? 1 : 0;
|
||||||
dlg->m_FixRefCounter = t->flags4 & FIXREFCOUNTER ? 1 : 0;
|
dlg->m_FixRefCounter = t->flags4 & FIXREFCOUNTER ? 1 : 0;
|
||||||
@ -870,6 +873,7 @@ static void SetDlgFromTarget(TARGETMAP *t, CTargetDlg *dlg)
|
|||||||
dlg->m_NoGDIBlt = t->flags3 & NOGDIBLT ? 1 : 0;
|
dlg->m_NoGDIBlt = t->flags3 & NOGDIBLT ? 1 : 0;
|
||||||
dlg->m_NoFillRect = t->flags4 & NOFILLRECT ? 1 : 0;
|
dlg->m_NoFillRect = t->flags4 & NOFILLRECT ? 1 : 0;
|
||||||
dlg->m_FixClipperArea = t->flags7 & FIXCLIPPERAREA ? 1 : 0;
|
dlg->m_FixClipperArea = t->flags7 & FIXCLIPPERAREA ? 1 : 0;
|
||||||
|
dlg->m_SharedDCHybrid = t->flags8 & SHAREDDCHYBRID ? 1 : 0;
|
||||||
dlg->m_SyncPalette = t->flags6 & SYNCPALETTE ? 1 : 0;
|
dlg->m_SyncPalette = t->flags6 & SYNCPALETTE ? 1 : 0;
|
||||||
dlg->m_NoWinErrors = t->flags7 & NOWINERRORS ? 1 : 0;
|
dlg->m_NoWinErrors = t->flags7 & NOWINERRORS ? 1 : 0;
|
||||||
dlg->m_PretendVisible = t->flags8 & PRETENDVISIBLE ? 1 : 0;
|
dlg->m_PretendVisible = t->flags8 & PRETENDVISIBLE ? 1 : 0;
|
||||||
@ -1401,7 +1405,8 @@ void CDxwndhostView::OnInitialUpdate()
|
|||||||
strcat_s(gInitPath, sizeof(gInitPath), m_ConfigFileName);
|
strcat_s(gInitPath, sizeof(gInitPath), m_ConfigFileName);
|
||||||
listctrl.InsertColumn(0, &listcol);
|
listctrl.InsertColumn(0, &listcol);
|
||||||
|
|
||||||
StatusMap.VJoyStatus = GetPrivateProfileInt("joystick", "flags", VJOYENABLED|CROSSENABLED|INVERTYAXIS, gInitPath);
|
StatusMap.VJoyStatus = GetPrivateProfileInt("joystick", "flags", VJOYENABLED|CROSSENABLED|INVERTYAXIS|VJMOUSEMAP|VJKEYBOARDMAP, gInitPath);
|
||||||
|
StatusMap.VJoySensivity = GetPrivateProfileInt("joystick", "sensivity", 100, gInitPath);
|
||||||
|
|
||||||
for(i = 0; i < MAXTARGETS; i ++){
|
for(i = 0; i < MAXTARGETS; i ++){
|
||||||
if (!LoadConfigItem(&TargetMaps[i], &PrivateMaps[i], i, gInitPath)) break;
|
if (!LoadConfigItem(&TargetMaps[i], &PrivateMaps[i], i, gInitPath)) break;
|
||||||
|
BIN
host/resource
BIN
host/resource
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user