* these circumvented all internal texture replacement logic. Texture objects should only be resolved right before drawing them
* added an explicit ‚tilebackground‘ option for the summary screen to fix problems with bad decision logic based on incorrect texture type checks. Automatic tiling no longer depends on texture type, but solely on size.
* added a DrawTexture variant that can be passed a texture ID instead of a pointer
This eliminates nearly all palette dependencies, most importantly font translation will now be done on True Color data, making translations on True Color font less destructive.
- vid_aspect is now set to change to 21:9's ACTUAL aspect - 64:27
- screen elements now scale to 64:27 properly. to restore classic behavior, set cvar `vid_allowtrueultrawide` to false
* - modify Shape2D so that it manages its own vertex buffer
* - fix the last commit failing on Shape2Ds that were modified after AddShape was called
* - make buffers an array of F2DVertexBuffers instead of an array of pointers
* - fix AddShape with the same VBO but different transformation crashing the game
* - formatting fixes
This only concerns the actual horizontal scroller. The vertical one still needs work and the "The End" screen only works if the second picture of the scroller is the full widescreen image because this page is done as a regular single image page which does not know anything about widescreen asset replacements.
The option still remains for cases where it does not work but the cases where mode 3 causes real problems are rare.
All I could find were a handful of poor intermission pics in some old mods which aren't worth keeping this artificial limitation.
This allows proper dimensions in the stock menus and should make menu layout for mods a lot easier because coordinates are more predictable than with the clean factors.
The feature is opt-in for custom content. As long as only stock elements are used, the menu will be able to switch between both on its own, but as soon as custom classes or custom elements are used, the virtual size must be declared explicitly, defaulting to clean scaling.
* removed refreshFreq variable and related code. This only got into the backend because of stupid interpolation code in some of the Build games which has long been removed.
* save FixedBitArrays as base64 in savegames.
* allow indirections in the string table - by prefixing the language string with '$$' the remaining text is interpreted as another string label to resolve.
* constexpr in palette code, also replacing #defines with enums.