Haha, nice to hear from you Nash! Put some pants on that guy
Anyway, the long term goal is to completely port Z-Windows to ZScript, but things will be significantly different from GDCC. The only truly hacky stuff in Z-Windows is GetPlayerInput and HudMessage spamming; one early goal was a universal HudMessage ID system so users never need to mess with an ID. GDCC, as you know, gave us a C compiler with all the perks, structs, enums, pointers, etc. Z-Windows describes a "window" through a struct that even contains pointers to functions, creating a "C-Class". There's also structs for buttons, text, and graphics, which get connected to the window through linked lists. I'm not lying when I compare it to the Win32 API, which probably makes it just as difficult to begin using as ZScript.
What I'm currently imagining is another generic series of classes that allow for a window abstraction; what you put in it doesn't matter but creates the benefit of a uniform system to create interactive displays onscreen. I still have yet to even begin messing with drawing things onscreen, mouse control has taken priority. Right now ZScript and Z-Windows do not play together at all, the systems are that different, which has me considering skipping the intermediary step of making them play together and just going for the full ZScript version. What I need to do is get Z-Windows mouse control disabled, but continue to use the mouse struct and feed coordinates from ZScript to it. Z-Windows Universal Mouse Control is a large part of the system that touches many things. Lack of ZScript documentation and time to work on it are big hindrances to progress; I work 10hr days during the week with optional Saturdays and I'm working every other.
Question:
Some minor background: Z-Windows uses what I call "Quikclose" (yes no C in the word) to cancel mouse control and return movement control to the player. Z-Windows monitors the movement keys via GetPlayerInput, Forward, Back, Strafe Left/Right, and Turn Left/Right, and upon receiving one of these commands returns control to the player. This is because the game does not pause while the player is interacting with an interface, ala System Shock. That is both a limitation and feature.
My question is, how do I monitor the movement keys via ZScript? From "constants.txt" I can see there is an
EButtons enum, but how do I go about using it?