Hi,
The following patch
http://www.winehq.org/pipermail/wine-patches/2005-October/021269.html
fixes
http://bugs.winehq.org/show_bug.cgi?id=3514
but crashed Railroad tycoon, as it always sets device->primary->dsound to null when there are more than one user of the device.
The following patch fixes railroad tycoon; does it still fix bug 3514?
Peter
RCS file: /home/wine/wine/dlls/dsound/dsound.c,v retrieving revision 1.42 diff -u -r1.42 dsound.c --- dsound.c 19 Oct 2005 19:21:38 -0000 1.42 +++ dsound.c 5 Nov 2005 03:09:22 -0000 @@ -251,7 +251,7 @@ if (This->device) { if (DirectSoundDevice_Release(This->device) != 0) { /* device not released so make sure primary reference to This removed */ - if (This->device->primary) + if (This->device->primary && This->device->primary->dsound == This) This->device->primary->dsound = NULL; } }
On 11/5/05, Peter Berg Larsen pebl@math.ku.dk wrote:
Hi,
The following patch
http://www.winehq.org/pipermail/wine-patches/2005-October/021269.html
fixes
http://bugs.winehq.org/show_bug.cgi?id=3514
but crashed Railroad tycoon, as it always sets device->primary->dsound to null when there are more than one user of the device.
The patch also breaks Neverwinter Nights.
if (This->device) { if (DirectSoundDevice_Release(This->device) != 0) { /* device not released so make sure primary reference to This removed */
if (This->device->primary)
if (This->device->primary && This->device->primary->dsound == This) This->device->primary->dsound = NULL; } }
My temporary workaround was to comment out the line that set dsound to NULL, but this works.
-- James Hawkins