Alchemy-Meister / TekkenBot

AI and tools for playing and understanding Tekken 7
MIT License
39 stars 5 forks source link

Can't resize framedata window in draggable mode #1

Closed KulaGGin closed 5 years ago

KulaGGin commented 5 years ago

When I choose Draggable mode, it starts to show some small window on which I can't see anything, and it doesn't allow me to resize that window.

I play in Fullscreen and have my overlay on second monitor, because there's much less lag in Fullscreen mode than in Windowed. I also don't like overlay on top of my game window.

Here's video demonstration of this issue: https://www.youtube.com/watch?v=auPcL0AflRk

In this video above I was actually in a practice mode session: in a match on Infinite Azure stage, you can hear the background noise of Infinite Azure.

Also, when in windowed mode, it shows too small window, I can't see anything on it neither: https://www.youtube.com/watch?v=4_iT2KDdQg0

I'm on 1920x1080 resolution and have 2 monitors if it helps. In windowed mode, it would help if you make window just bigger, by 200% probably, so I can see everything normally. Maybe allow us to choose how big we want everything to be.

In fullscreen mode, well, make it usable, because right now this Tekken Bot Prime pretty much unusable if you play in fullscreen mode.

Alchemy-Meister commented 5 years ago

Right now overlay size and position is always calculated based on the size of the Tekken window on screen. I haven't debugged it yet but I guess that when the fullscreen lose its focus or gets minimized its size becomes zero or almost zero. However when returned to its former state the overlay scales as intended.

I will implement a solution that let's the overlay to be resized when on draggable mode. But the redesign can take a while.

Meanwhile as a workaround, you click in the icon of the overlay window and select move to place the overlay where you want on your secondary screen (relative to top-left coordinate). Then, return to the game in fullscreen.

https://youtu.be/M7k9DCCOFJQ

KulaGGin commented 5 years ago

Ok, cool, it works.

Alchemy-Meister commented 5 years ago

I realized that GetWindowRect didn't work when the window gets minimized, as its size became zero in this state. However I found that GetWindowPlacement function could partially fix this issue.

https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getwindowplacement

WINDOWPLACEMENT struct's rcNormalPosition returns the last size of the window when minimized. So this should prevent the overlay from becoming extremely small when Tekken lose its focus on explicit fullscreen mode.

https://youtu.be/pGTahdX2COY

However I found that rcNormalPosition has some issues when changing from windowed mode to fullscreen followed by a resolution change.

In this case, when Tekken gets minimized, rcNormalPosition will take the size of the resolution set before entering the fullscreen mode, instead of the current resolution.

The current workaround to this, is to have the correct resolution set before entering fullscreen mode and don't change it.

Alchemy-Meister commented 5 years ago

I uploaded a pre-release that hopefully fixes these issues. Try it out and if it works for you I will release for everybody.

Already made it public.

https://github.com/Alchemy-Meister/TekkenBot/releases/tag/0.1.8