Alright, now that I've stuck enough qualifiers in the subject, I've updated temple.zip with a possible "fix" for the DirectX 9.0c looting bug. I say "fix," because I haven't really fixed the problem, I've just patched around it. Essentially, there are two functions of interest. The first is called when in non-combat mode you press down the left mouse button, of you hover the mouse (hovering being defined as not moving the mouse for at least .250 seconds. I think.). This will call a function (call it "foo") in order to determine what object you've clicked on - it doesn't actually do anything yet. The second function is called when in non-combat mode you release the left mouse button. This will call foo in order to determine what object the mouse pointer was over when you released the left mouse button. It will then compare the results with the object you clicked the left mouse button on and see if they match. If they match, it'll treat it as if you left clicked on the object. Now I've seen both functions call into foo with the EXACT SAME X and Y coordinates and return different answers. When I was clicking on a non-moving object. I don't know why, and there's way too much code for me to figure out in a timely sort of manner. But the up shot is, the LMB up function figures, hey - you're not on the same object that you started clicking on, I better not do anything. Luckily, it seems to be the LMB down function that's returning a bad result, so I just have the LMB up function ignore the LMB down function's results, and pretend that if there was an object where you released the LMB, that it matches what the LMB down function's results. So like I said, this does not fix the actual bug. It just gets rid of some symptoms. Note, I've only tested this with looting a corpse (Romag died to test this fix) and walking around (my first fix attempt, walking around CTDed). I don't know if anything else funny'll happen.
Excuse my ignorance but I want to make sure I do this correctly. I SO want this game to work! If I download your temple.zip file I assume that I can just unzip it and then there is an exectable to be ran? Or do I need to unzip it to a particular file?
I CAN CONFIRM THIS WORKS.. Only killed two monsters so far, but looted them just fine. Will further play^H^H^H^ I mean test, and let you know. UPDATE: Had my FIRST crash ever in ToEE ... It happened in the fireNode, while I was mouse scrolling. May or may not be related. I lost contact with my mouse, and had to three finger and shut Toee down to get it back. Still playing with the update though, I think the fire node crash is unrelated to the above fix.
Unzip temple.dll to your game installation directory. Make sure you unpack the subdirectories. It'll install all the data\* files that I've modified as well.
OK at lunch I downloaded the file and unzipped it. I then moved all files to the appropriate folders and replaced the temple.dll with the new one. Started up my game again and I can now loot. I went to the grove slept, killed, looted, slept etc 4 times. Thank you so much for the fix!!!! I was prepared to take the game back this coming Friday. Hopefully I don't run into anything else down the road! Keep up the great work. I really appreciate all the time and effort everybody puts into making this game work like it should.
I've rebundled the 3.0.4 to include this fix. I'm going to go post something on the atari boards as well. Moebius, I've told steve what you found, Hopefully He'll get in touch with you, and he can replicate your fix.
While I'd be willing to make the same change in code as you did just changing the .dll, I'm a little hesitent as what you click down on "should be" what you click up from. I'm more curious as to why we're getting back two different things. I have not been able to reproduce this on my machine here at Troika (WinXP SP2 + DX9.0c) in either fullscreen or windowed mode in or out of combat. Can anybody clue me in on what I might be doing wrong that is making it not occur on my machine.
This reply was posted over in another forum.. Let me guess Steve, you're not using the safedisc'd exe, but rather the unsafedisc'd one, right? --------------------------------------------------- Personally, I've been having absolutely no problems with looting with XP SP2/DX 9.0c. I suspect it's because I use the NOCD crack (the 2.0 patch updated copy protection killed one of my CD drives ...). I strongly suspect that it's a conflict between the version of SafeDisc (of the top of my head ... 4.83?) and SP2 or DX 9.0c. ----------------------------------------------------
I tried it with the NoCD-Crack (mind you, I'm not a warez guy, I own the original, actually 2 of them: the German and the English version). The looting bug DOES occur on my machine. So the copy protection doesn't seem to be the problem. I'd blame it on wacky programming. P.S.: moebius, haven't heard from you in a while. Still hacking away at the code? Or have you found a more interesting (and rewarding) passtime?