ID:115079
 
Resolved
Clients under stress could experience problems interacting with menus.
BYOND Version:486
Operating System:Windows 7 Ultimate
Web Browser:Firefox 3.6.17
Applies to:Dream Seeker
Status: Resolved (487)

This issue has been resolved.
Duplicates:id:112283
Descriptive Problem Summary:
Clicking a Menu Item (either on the SKIN, or through Right-Clicking of an OBJ/MOB etc on the map) is randomly unresponsive. It ranges from a missed click, to having to click 10-20 times to get the menu to vanish and the item to be selected.

This issue even affects the 'Options and Messages' dialog. You move your mouse over the menu items, click, and nothing. You can click off the ones on the Skin, but the ones brought up through Right-Click's on the Map basically lock you up till it decides to respond to the click (except if you Right-Click off on to something else).

This issue seems to have occured after NO CODE changes. My game was not updated for 3 months, and all was fine, then suddenly Bug Reports started being posted about Clicking issues. I can only assume this is a result of a BYOND update.

I have tried my best to find the cause. It not only affects LIVE games but if I launch the game on my PC locally, the issue is still there.

Lag does seem significantly enhance the problem, but then its hardly going to make it better so. On a local server though, it seems to just miss 1 or 2 clicks max.

I have narrowed the issue down (through trying every past version) to v481.1090. Every version BEFORE that does not have this issue, run the game in v481.1090 and the clicking issues start.

Visit: http://www.byond.com/games/EternalDuelistSoul/ DuelMonstersGenesis

And you can see for yourself. You do not have to do anything, just click the menus at the top of the screen for a bit and you'll notice the issue I am talking about.

Numbered Steps to Reproduce Problem:
I have no idea why this happens to my game and not to other peoples? All I can say is that prior to v481 there were no problems at all.

Code Snippet (if applicable) to Reproduce Problem:


Expected Results:
For clicking menus to function first time.

Actual Results:
Clicking on menus is seemingly being 'ignored', and on a LIVE server with lag you can end up frustratingly bashing the mouse button to get a single click to be recognised on a menu.

Does the problem occur:
Every time? Or how often? All the time.
In other games? I am not sure.
In other user accounts? Yes.
On other computers? Yes.

When does the problem NOT occur?
In v480.1088 and lower.

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)

In v480.1088 and lower. Issue occurs in v481.1090 and upwards.

Workarounds:
To use v480 till this is fixed?
Are you positive this doesn't occur in 480? I'm looking through the diff and I can't find a single viable reason clicks would be lost. I do know however that if a client bogs down, the menu takes longer to appear and that could be a factor in play here. Although there would be no performance difference from 480 to 481, it's possible your test in 480 didn't experience the same conditions and thus didn't show the problem in action. It would be helpful to confirm this.

[edit]
I'm confused on something here. When you say the menus at the top show this--are you referring to the Windows menus, not a HUD? If the Windows menus are missing clicks, the problem is definitely not related to your BYOND version or anything the software is doing, because we do not intercept clicks outside of the window's client area.
Yes I am positive. Here is what I did;

Downloaded the ZIP of v480 and v481.

Opened the game in v480 with Dream Daemon, then connected to it (after opening v480's BYOND). Tried to click menu's for a bit. Everything normal.

Closed it all down. Exited BYOND/DD.

Opened the game in v481 with Dream Daemon, then connected to it (after opening v481's BYOND). Tried to click menu's again, had the issue. Sometimes clicks not being registered on menus. So having to click 2 times on a menu item. Lag on a live server seems to enhance this to the point where you can click and click and click and click...... and nothing happen.

So it was all local, and had the exact same conditions each time. I went back and forth a few times and v480 seems fine, issue pops up with v481.


When I say menu's at the top, I mean Menu's at the top of (or in) the skin.

As opposted to the menu's that pop-up when you Right-Click an OBJ/MOB etc. Which are also affected.

Nothing in Windows itself is affected. Its limited to Dream Seeker.
If the menus themselves are not responding, then the client is simply bogged down. There shouldn't be anything different between 480 and 481 in that regard. I'm still looking but so far nothing is turning up that would explain any difference that severe.

If you mean the menus are opening and you're clicking a command but it's not going through, that's another matter. I still see nothing to account for that but some clarification would help.

[edit]
On more testing I do see what you mean with one of the help commands. I click on that and sometimes the help comes up, sometimes not.

[edit 2]
In the debugger it seems whenever a click is lost, it's not reaching our code at all. The issue is something in Windows, but I'll see if I can find out what's causing it and if there's a workaround.
I finally found the code responsible for this, and the 480-481 diff did indeed show the problem.

A fix that was put in for keyboard input in 481 also should have impacted mouse actions for the better. However this seems to have gravely screwed up Windows' handling of menus. I could find no information online as to how this even makes sense, but removing the bit that handled mouse messages fixed the issue.
That's good news indeed. I am sure my players will be happy about this.

I would have reported it sooner however there seemed to be *nothing* in the forum about it so I couldnt understand why it was just affecting me.
If you've lowered tick_lag that could be part of it, or if the size of your map is a factor. This behavior only comes up when the client tick happens while mouse commands are waiting.
Nope on tick_lag, but the map size is; 130 x 130
I meant the viewable map though, not the internal map itself.
Hmmm well that is adjustable. But is normally about 22 x 22. However I cannot say that reducing it made a difference, but never really tried.