Doom64TC does not have a fully functional HUD
This is likely the cause of #2019.
ST_BuildWidgets in doom64/src/st_stuff.c only initializes the automap.
It does not initialize the log, chat, status bar, etc...
#1 Updated by rhargrave about 5 years ago
- Tags changed from Doom64TC to Doom64TC, HUD
- Subject changed from Doom64TC plugin does not fully initialize HUD widgets to Doom64TC does not have a fully functional HUD
- % Done changed from 0 to 10
I've added the log (and chat) widget to the HUD, which has effectively stopped the crash-on-LogPost bug from happening. As it stands right now, however, the HUD is not being rendered. I've checked that Hu_Drawer is being called, and it is. I'll debug this and check back.
#4 Updated by danij about 5 years ago
I have just pushed a
hud-cleanup work branch which I started a month or so back where I began doing just that. You may want to continue or adapt that work as it'll likely save you a fair amount of time.
With regards to the HUD, please bear in mind that we plan to replace the implementation entirely using libgui components. A primary goal for any cleanup work should therefore be code clarity. As opposed to best OO practices, code-quality concerns, etc...
#5 Updated by skyjake about 5 years ago
To clarify what this means:
we plan to replace the implementation entirely using libgui components
libguiis where the low-level OpenGL code resides. It does not contain any higher-level UI widget functionality.
- The new UI widgets in
libappfwdo their drawing using the OpenGL classes in
libgui. These are the ones responsible for the engine UI overlay (task bar, console log, FPS indicator, etc.). This is completely engine-side functionality currently, because the game plugins have their own UI drawing code, including a simple widget system.
- There is a plan to replace the game plugins' menu system with one based on InFine and Doomsday Script (#1630).
- I am not aware of a concrete plan (in the tracker) for exactly how the game HUD widgets should be reworked. Having a direct dependency from
libguito the plugins is not advisable because game plugins must be compilable also in a server-only configuration. That's why there is currently the DGL API published by the engine (which provides a simple OpenGL 1 like drawing API), which is only offered to plugins by the client executable.