Change Player's Screen Focus? Drag Drop Scroll Rate?

Is there any way to trigger a player’s screen focus to a designated map location? I have Pieces that allow players to draw from card decks, but it requires a tedious amount of scrolling to get to the decks from their position. It would be nice to “snap to” that location automatically. Second, semi-related question. Is there any way to increase the scroll rate when dragging and dropping pieces? It too can be painfully slow for games with large hi-res mapboards.

For the scroll rate, look for “Scroll increment (pixels)” in the Preferences.

That changes the scroll increment for the mouse scroll-wheel (or whatever triggers page scrolling) but that is disabled when you are dragging a Piece. The only settings in Preferences that pertain to dragging are the “Delay” and “Distance from map edge” before scrolling. The scroll rate doesn’t seem to be configurable. On larger maps, it can be painfully slow and requires that the player carefully hold a click (drag) while doing so. Some players have reported that it’s frustrating.

I take it there is no way to auto-change the focus aside from “Center on opponent’s moves” and “Center on selected piece” in a GPIW…

You’re right—the drag speed appears not to be configurable.

I have no comment on the other question. Maybe someone else will.

the new Camera view feature allows the player viewpoint to be moved to a defined area and zoom level. it isn’t automatic but its quick.

1 Like

That’s exactly what I was looking for! You can set the location with an expression and invoke it with a Hotkey so it CAN be automated. Brilliant!

1 Like

Please try out the “SpeedyMcScroll” build at Builds of vassalengine/vassal – it implements the option of a scroll rate preference (pixels-per-millisecond – it was fixed at 0.5 before).

Also, for all three of those preferences (the ones about the drag-at-edge scrolling), I added a thing where the module designer can affect the initial default when someone loads the module for the first time, by creating a Global Property (at the module level) with the designated name (see docs below) and the desired default value.

These default mechanisms need some testing, but please note that they only take effect the FIRST time a user loads a module. So apart from the brand new one, you probably already have a default set for those. To test the “load for very first time” mechanism, one way is to change the module’s official name in the root entry of the editor. That will cause Vassal to create a new set of preferences for that module name.

Please let me know if this stuff is all working right for you.

Enjoy!

Brian

2 Likes

Scroll-rate feature works great in 3.6.6. FYI for others, no need to define the global property as numeric, although my guess is that won’t hurt either…

Out of curiosity, can it be changed in-play like any other global property, or is this a workaround that should not be otherwise touched?

1 Like

The global property only controls what it will default to the first time person loads it. No way to change it programatically on the fly.