You ALMOST had it perfect - 2 displays (Full Version)

All Forums >> [New Releases from Matrix Games] >> Gary Grigsby's War in the East 2



Message


MarkShot -> You ALMOST had it perfect - 2 displays (6/16/2021 8:09:04 PM)

Running the game in a window on one display, and the manual on the other display (see below).

What's the makes this less than perfect? You failed to implement an option for MOUSE MAP DRAG (like a held MMB).

What goes wrong it that precise scrolling one edge that corresponds to the other display is very twitchy thing. You could have made that a none problem with the above options.

[image]http://www.kwlsystems.com/images/gameq/up.jpg[/image]




MarkShot -> RE: You ALMOST had it perfect - 2 displays (6/16/2021 8:15:13 PM)

Let me know if you intend to fix this.

If not, I can implement a mouse guard via like Auto Hot Key to fix it for you when the game is the active window.

This will get rid of the twitching behavior. All I need to do is select the PDF display, since my mouse guard will disable when your window loses focus. I don't know if you are familiar with www.autohotkey.com I might implement a community utility to this which allows the user to put the game on either the left or right monitor. I am on the left which is the TV.




MarkShot -> RE: You ALMOST had it perfect - 2 displays (6/16/2021 8:40:19 PM)

There is another way you can fix this without a map drag button.

You could have a single UI button or hotkey function as mouse release function. (Of course, you make this a preference option.)

In essence, when the user activates your window, you capture the mouse. It cannot leave. It is like running in full screen mode. But if the user clicks the release UI button or hits the hot key (maybe MMB), the mouse is released to go anywhere and your window loses focus.

I cannot take credit for this idea. This is how DOSBOX handles running games in a Window.

But this behavior, I cannot code in AHK.




Joel Billings -> RE: You ALMOST had it perfect - 2 displays (6/17/2021 12:40:50 AM)

I suspect that only Pavel knows the answer to your question. He's the programmer that has been managing to squeeze new functionality out of the engine, and finding ways to improve the interface. I'll forward this to him, but I don't know if he will be in a position to provide a quick answer.

BTW, glad you are enjoying the manual. It's been nice to see the overall response to it. I can't say enough about the great work that Roger, John, Matrix and the team did to make it come out like it did. As the original WitE was an ode to the original SPI board game of the same name, the manual was an ode to the old wargame manuals that so many of us loved to read.




MarkShot -> RE: You ALMOST had it perfect - 2 displays (6/17/2021 4:58:56 AM)

Joel,

I will be working on it today, by setting a MouseGuard in AHK. When the game is active, and it senses the mouse has left primary display, it just sends it back to the edge. Maybe a check every 200 milliseconds.

If I come up with something generic; meaning any number of displays and any resolutions. Then, I will pass it to Matrix. It can be used as a little EXE; compiled or as a script of you are worried about what it is doing, but they must install AHK. It's neither a patch, nor a mod, in computer speak we would say coresident utility. I've done such utilities for Matrix games in the past (Pre-Slitherine).

I will let you know. Thanks.

PS: With only some slight coding changes, it could be made to work with any GG game (you just need to create a hooked group as opposed to a single EXE)




MarkShot -> RE: You ALMOST had it perfect - 2 displays (6/17/2021 7:56:43 AM)

Matrix contact me

I have complete implementation which with a little work could work for all GG games.

I have worked together with Erik in the past.

I will post the code after one final test.




Helpless -> RE: You ALMOST had it perfect - 2 displays (6/17/2021 7:57:30 AM)

I'd wish to implement map mouse dragging, but it would conflicts with many existing map click handlers.

You can alt-tab between apps (game/manual). Map screen scrolling is inactive when app is not on foreground.




MarkShot -> RE: You ALMOST had it perfect - 2 displays (6/17/2021 8:00:01 AM)

; Mark Kratzer - 06/17/21 (revised 06/17/21)
;
; This is Window Guard program.
; NOTE: It is not a mod.
; NOTE: It is not a patch.
; It is intended to run along side the game and alter the game's mouse
; behavior so that you can comfortably take advantage of two displays.
; If you only have a single display, it will unload itself automatically.
; If you exit the game it will rapidly unload itself.
;
; This program provides multi-monitor mouse support, RIGHT NOW only for WITE2.
; However this code could easily be adapted to support all such games.
;
; When the game is the active window, the mouse behavior on the primary display
; is exactly the same as full screen.
;
; You may wish to run the manual along side on a secondary monitor. To switch to
; the manual click on your PDF Reader in the Windows Task Bar. This will deactivate
; the mouse guard functionality.
;
; This is written in www.autohotkey.com
;
; You can either run a compiled version EXE or install AHK and run the script.
;
; If you launch this before the game, then you have 30 seconds to run the launch the
; game before this unloads. Or you can launch this after the game.
;
; THIS IS PROVIDED AS IS WHICH MEANS I TAKE NO RESPONSABILITY FOR YOUR GAME, YOUR PC, OR
; YOUR HEALTH.
;
; You are welcome to modify the code redistribute. Please credit all who may have worked
; on the code.
;
; Enjoy - Thankyou.
;
; PS1: Thank you, Gary Grigsby and Team for a superb manual and game which inspired me
; to write this.
;
; PS2: This has been tested and does what it says on the tin. I am leaving this to
; Matrix to compile and make it download for the community. Matrix, contact me
; if you have any questions. If have worked with Erik in the past.

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#SingleInstance force
#Persistent
#NoTrayIcon

Game01 = War in the East 2 v

TimerInterval = 200

SetTitleMatchMode 1
CoordMode, Mouse, Screen

Sleep, 30000
SysGet, MonCnt, MonitorCount
If MonCnt==1
ExitApp
SetTimer, ScriptDone, %TimerInterval%
SetTimer, WatchCursor, %TimerInterval%
return

ScriptDone:

IfWinNotExist,%Game01%,
ExitApp

Return

WatchCursor:

IfWinActive, %Game01%
{
SysGet, Screen, Monitor,
MouseGetPos, XPos, YPos
If (XPos > ScreenRight)
{
MouseMove, ScreenRight+5, %YPos%
}
If (XPos < ScreenLeft)
{
MouseMove, ScreenLeft-5, %YPos%
}
}
return

; This is reserved for future key binds - hard coded name is needed here
; for games. If you know how AHK works, then you can remap the game's
; hot keys here.

#IfWinActive, War in the East 2 v,




MarkShot -> RE: You ALMOST had it perfect - 2 displays (6/17/2021 8:01:51 AM)

Pavel, all coded and tested for you. 30 minutes works will make it work for all games in the series. I leave to you to compile and make available.




MarkShot -> RE: You ALMOST had it perfect - 2 displays (6/17/2021 8:11:51 AM)

Pavel, you miss the point. With two displays, the user will general overshot the scroll landing zone for the mouse unlike the 3 sides of the display. That is why this is a "mouse guard". It halts the mouse's movement, and returns behavior back to full screen or single monitor window use. Hook up a PC with two displays, and give it a try with the game. Far more ergonomic.




Helpless -> RE: You ALMOST had it perfect - 2 displays (6/17/2021 8:48:40 AM)

Mark, I'll take a look at it next week when I get back from the trip. Thanks.




dray67 -> RE: You ALMOST had it perfect - 2 displays (6/17/2021 2:39:51 PM)

I'd like something similar tbh, usually I just use alt-tab to avoid the map scrolling while I look at the manual, it's not a major thing I know, but it is incredibly annoying in it's own way.




MarkShot -> RE: You ALMOST had it perfect - 2 displays (6/17/2021 2:45:19 PM)

Are your working with two monitors?

I can put up the EXE I created some place for you to download. You cannot normally email EXEs; that's also why I would like Matrix to just include this as official utility. I only have one title, but it would be easy to make it work for all titles.




nukkxx5058 -> RE: You ALMOST had it perfect - 2 displays (6/17/2021 4:59:10 PM)


quote:

ORIGINAL: MarkShot

Running the game in a window on one display, and the manual on the other display (see below).

What's the makes this less than perfect? You failed to implement an option for MOUSE MAP DRAG (like a held MMB).

What goes wrong it that precise scrolling one edge that corresponds to the other display is very twitchy thing. You could have made that a none problem with the above options.

[image]http://www.kwlsystems.com/images/gameq/up.jpg[/image]


Why don't you just alt-tab ?

Or, other fix, play WITE2 in a window.




overkill01 -> RE: You ALMOST had it perfect - 2 displays (6/17/2021 6:23:12 PM)

Anoying indeed.
There's free software out there that let you customize the mousebehavior in dual screens.
For example "Dual monitor tools"
You can configure a deadzone on the edge of you're display in wich the mouse doesn't jump screen untill you go over it.
Or a hotkey to switch.




overkill01 -> RE: You ALMOST had it perfect - 2 displays (6/17/2021 6:57:59 PM)


quote:

ORIGINAL: overkill01

Anoying indeed.
There's free software out there that let you customize the mousebehavior in dual screens.
For example "Dual monitor tools"
You can configure a deadzone on the edge of you're display in wich the mouse doesn't jump screen untill you go over it.
Or a hotkey to switch.



Or not, tried it myself just now and for some reason it doesn't work with wite2 :s




MarkShot -> RE: You ALMOST had it perfect - 2 displays (6/18/2021 3:07:18 AM)

What I wrote works perfectly for running in a window and having multiple monitors. It will most likely work with any other GG title, but I don't have other titles for further testing.

I am using it, and decided to share. But I don't want to distribute and host. Around 2000, I signed a beta agreement with "old" Matrix games. Legally, it is still binding, and I have offered it to the new owners. Either way, my problem is solved. It is simply a question of whether they want to get more mileage of the excellent GG manuals by making it easy for those with 2 or more displays.

I don't have a Patreon or Paypal account ... I have nothing to gain here. I just don't want to host and distribute.




MarkShot -> RE: You ALMOST had it perfect - 2 displays (6/22/2021 3:23:59 PM)

Given that there is no key remapping; at the bottom script above, I had left an area for doing things like this.

This is read as:

Keyboard -> (maps) -> Game

#IfWinActive, War in the East 2 v,

; PrintScreen Alternate (Snagit)
PrintScreen::!v

Up::PgUp
Down::PgDn
Left::Home
Right::End

End::y
Del::z
Ins::a
Home::t

This is only the simplest of things you can do. You can write a whole macro sequence of keystroke and mouse commands ... it's general purpose programming. But at the simplest, you can map keys any way you like them without access to a gaming keyboard/mouse with programmable keys. (or knowing anything about computers)




MarkShot -> RE: You ALMOST had it perfect - 2 displays (6/22/2021 4:04:08 PM)

To illustrate more advanced ideas with AHK and customizing WITE2.

Two things to be added with a little programming as PgUp and PgDn are now free.

I think a key which cycles through all highlighted unit possibilities would be nice. As for the clearing, the length between presses can be be measured say with 1 second, meaning toggle=clear. (Implementation tip: Capture the system clock in milliseconds, and just subtract between consecutive presses.)

Another nice cycle can be the soft factors. With no key strokes defined, you just issue mouse move and click commands.

If you really want to program this, how do you know what to emit next? You keep a statefull variable in the script. If you want to be fancy, you write that disk, and read it on start up. This would keep your keys in sync with the game as opposed to have to reset, your selections each session.




MarkShot -> RE: You ALMOST had it perfect - 2 displays (6/23/2021 5:40:09 AM)

Another example of AHK and what you can do.

An example of how to cycle counter highlighting (for which there is no single) key.

You may say, "Well, I am not a programmer." AHK is freeware and used by many professionals and gamers. It means that Google search will often find many samples of code for game things you want to do.

Another great use is games that put tiny buttons close to the screen edge, and you are always moving the map trying to click the buttons. Define hot keys if the developer didn't which act as quick mouse click on the button and returns the pointer to the current location. For most purposes, it looks just like a hot key.

PgUp::
{
send {Ctrl Down}
Sleep, 100
If Disp = 0
{
Send {0 Down}
Sleep, 100
Send {0 Up}
}
Else If Disp = 1
{
Send {1 Down}
Sleep, 100
Send {1 Up}
}
Else If Disp = 2
{
Send {2 Down}
Sleep, 100
Send {2 Up}
}
Else If Disp = 3
{
Send {3 Down}
Sleep, 100
Send {3 Up}
}
Else If Disp = 4
{
Send {4 Down}
Sleep, 100
Send {4 Up}
}
Else If Disp = 5
{
Send {5 Down}
Sleep, 100
Send {5 Up}
}
Else If Disp = 6
{
Send {6 Down}
Sleep, 100
Send {6 Up}
}
Else If Disp = 7
{
Send {7 Down}
Sleep, 100
Send {7 Up}
}
Else If Disp = 8
{
Send {8 Down}
Sleep, 100
Send {8 Up}
}
Else If Disp = 9
{
Send {9 Down}
Sleep, 100
Send {9 Up}
Disp=-1
}
Sleep, 100
Send {Ctrl Up}
Disp++
return
}




Page: [1]

Valid CSS!




Forum Software © ASPPlayground.NET Advanced Edition 2.4.5 ANSI
0.9526367