hoikas / legacywindow Goto Github PK
View Code? Open in Web Editor NEWWindowed mode for Journeyman Project 3: Legacy of Time
Windowed mode for Journeyman Project 3: Legacy of Time
Legacy.exe hides the mouse pointer over the window caption/title bar. This makes it somewhat challenging to move the game window.
Legacy of Time was released in 1998 and has a hardwired resolution of 640x480. This was getting slightly long in the tooth at that time, however, it was less noticeable due to most folks using CRT monitors. Now, with our 2K and 4K behemoths, this is terrible, even with the ability to run the game in a window. Given that we are already rendering to a proxy surface under the hood, we should allow the destination DC to be larger that the source.
The original Legacy game has a menu at the top of the screen that appears only when that area is moused over. In our hook, we draw to the game window's client area. Unfortunately, the menu is nonclient area, causing awkward shifting in the game window. The solution here is to make the menu always visible.
The inventory selection UI does not open. git bisect
reveals it was broken in 5a76001.
The settings from our settings menu are neither saved when changed nor reloaded. At bare minimum, we should remember the resolution setting.
The save game dialog draws the preview image to the main surface instead of the dialog box.
Legacy.exe uses appears to use ddraw to render some portions of its popup dialog windows. In the original game on Windows XP, this works fine. However, on the gog.com version of the game, those portions are absent from the dialog. When our window hook is present, you can actually briefly see these portions are being rendered to the main game window behind the dialog.
Any dialogs that use GDI functions to render text are ultimately rendering to the main surface.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.