enforce ban on all GL/window access from busy worker
world time is not paused during game saves [commit 4b1a62ff]
game endings should loop forever [with NoSkip ⇒ script not stopped at end]
SDL: capslock behavior to match Windows: behaves like a normal key
menu buttons do not reflect the current state of their cvars (e.g., ctl-run)
prevent iterating through entire disk file tree during DD_LocateAllGameResourcesWorker() [e.g., -iwad (homedir)/some.wad; respect the NO_DESCEND flag; fixed by 98b889e2]
automap: default zoom level at map start [now closer to vanilla Doom; not identical, though]
input: track sharp input toggle states during busy mode (keys, buttons)
defer GL calls when not in main thread
Doom: missing enemies during the end game cast call
Heretic automap: font tracking state mismanagement [missing calls to FR_Push/PopAttrib in UI widget drawer]
finale events handled in the wrong order [Doom 2 cast call]
“shortcuts” binding context should be active during game endings
[402] regression: HacX: Password map object is broken [state lookup logic mismatches, DED Reader vs DEH Reader]
Doom: don't let floating monsters float into an invalid position after a valid XY move [verified in Doom 2 map30]
automap: panning in “follow off” mode is unusably slow
Hexen: falling scream not played in single-player games
[395] regression: movement controls stuck at map start
Hexen: standing on a mobj allows walking through walls
Hexen: no view bobbing when walking on mobjs [e.g., barrels in DK map17]
Enemies embedded in one another cannot separate [caused by game-mobj-fracepsilon]
Doom: Flying enemies get stuck on one another [mf2_passmobj]
multiple simultaneous “help” InFine scripts [rapidly tap F1]
update readme
WARNING: Phase 1 of game resource loading does not presently prioritize ZIP [no longer applicable]
-iwad failed locating iwads in root of Doomsday install dir
investigate possible dedicated server memory leak [disabled fast zmallocs]
memory zone functionality and performance: fixed memory zone fragmentation and excessive volumes; efficient test for a full volume
mobj ↔ polyobj collisions thrust mobj at an incorrect angle (+inconsistent damage) [polyobj seg→angle != linedef→angle]
Hexen: text mispositioned on the end game finale
Hexen: Korax's ghosts do not circle his corpse [removed FRACUNIT]
upon fatal error an attempt is made to return to ringzero [should simply shutdown; the implicit “unload” should not return to ringzero]
Game Menu|Hexen: character selection menu draws player sprite in wrong pos
Game Menu: main page objects not positioned exactly the same as the original games'
rend-dev-wireframe 1 will only affect player view; added mode 2 for wire framing the UI/fonts
When using lookspring the view pitch would not center when side-stepping left.
Do not do the text glitter/shadow effect for the space character.
Menu text shadow effect does not work.
Chat widget sometimes drawn over the message log making it difficult to read.
Buffer overflow vulnerability in WI_DrawParamText.
When drawing paramater text blocks as used with the patch_replacement system, the “break” directive was interpreted immediately when encountered. If the same paramater block also made changes to font or scale before the use of the break directive; the subsequent break(s) would use the new font and/or scale rather than that which was in effect before the paramater block began.
InFine
Script command 'notrigger' does not work, allowing the menu to be opened.
Menu trigger not enabled by default (as specified in the documentation).
All games
Further tweaked player/mobj movement friction and deceleration.
Other HUD displays were being drawn behind the “ReadThis” help screens even though they could not be seen.
After a teleport the player's view bob offset was not zeroed, resulting in brief interpolation of the view height from the old relative height back to zero.
DOOM
HUD weapons vertically offset four pixels lower than in the original game when using the statusbar-span view.
Both the idclip and idspispopd cheats worked in all variants of DOOM.
Flickering of the Tower of Babel on the episode two intermission (present in the original game).
Dynamically spawned BOSSTARGETs (e.g., using the ccmdspawnmobj) not working as expected.
Upon loading a saved game duplicate BOSSTARGETs would be spawned. Note that this would have no visible effect on gameplay.
At easy skill modes, the boss brain will only spit a BOSSCUBE every other time A_BrainSpit is called. However the value used to keep track of this was not stored in saved games.
Fullscreen HUD counters drawn using the menu text shadow and type-in effect if enabled.
Teleporting voodoodolls would affect the real player's view height offset and look direction.
Heretic
The current item display on the fullscreen HUD cannot be enabled/disabled from the menu.
With the auto-hide HUD enabled cycling through the inventory would not automatically unhide.
The menu color widget did not display an alpha slider when setting the fullscreen HUD text color.
Teleporting voodoodolls would affect the real player's view height offset and look direction.
Hexen
Fatal error attempting to play Deathkings of the Dark Citadel (Rend_RenderSkyHemisphere: Sky layer without a material!).
The current item display on the fullscreen HUD cannot be enabled/disabled from the menu.
With the auto-hide HUD enabled cycling through the inventory would not automatically unhide.
Minor alpha blending artefacts when using a translucent statusbar and the automap is open.
The menu color widget did not display an alpha slider when setting the fullscreen HUD text color.
Changes
API
View window is now specified in viewport coordinates (formerly fixed 320×200).
Before calling game-side drawing routines the engine now configures the orthographic projection in the viewport coordinate space (formerly fixed 320×200). It is now the responsibility of the game to scale the coordinate space if/as required.
If support is available; make use of the relaxed OpenGL requirement for non-power-of-two textures. If present this negates the need to resize textures, consequently resulting in higher quality textures in-game (especially noticeable on small, odd-sized textures such as those used in the various game HUD displays).
Removed the splitting of large Patch and Raw format graphics into two textures. Back when this was implemented the maximum texture dimensions supported by many GL implementations was considerably smaller than is common today. So to preserve quality Doomsday would split “large” graphics up into two smaller parts. This resulted in several architectural issues as drawing these graphics necesitated the use of dedicated methods for the purpose. Today with maximum texture dimensions so much larger and support for non-power-of-two textures being common place, this splitting is no longer useful for 99% of systems and has now been removed (this will allow us to streamline the rest of the API and the engine-internal texture management).
New equalization algorithm used on detail textures during load which balances them toward the optimum average and amplifies the hi/low variance to achieve better results (with poor source textures) when rendering. Note this does not mean that artists no longer have to take care to do this during the creation process. A well authored detail texture will produce far better results than a bad one relying on this algorithm. Verbose messages will be added to the log detailing what was done to each detail texture.
When loading Patch format graphics with both the “Upscale and Sharpen” and “Monochrome” translation/conversion filters enabled; do the Monochrome conversion first then Upscale and Sharpen, as this produces better results. The upscale method utilizes the HQ2x algorithm which aims to retain the shape of regions with similar colors. By doing the monochrome conversion first, regions of similar luminosity but different hue are no longer treated as distinct seperate forms.
Added a nearest neighbor image scaling algorithm for use with tiny graphics (w*h < 16) rather than hq2x. The hq2x algorithm can do nothing to help graphics this small and better results can be obtained with a simple nearest neighbor.
When loading sprites add an additonal 1 texel border around the graphic which is then scaled and clipped out at render time. This addresses various GL filtering issues where a sprite contains color information in the edge texels.
Disabled the BlackOutlines algorithm previously used on Patch format graphics with the “Upscale and Sharpen” conversion.
New approach to drawing the player weapon sprites which aims to preserve the original aspect ratio. If the window dimension aspect ratio is equal or near to the original ratio, psprites will be stretched to fill the screen. If not, psprites will be centralized and scaled to fit while maintaining the original aspect ratio. This means that by default anything between 4:3 and 16:10 will be stretched while everything else will be scaled to fit. This behavior can be overridden with the new cvarrend-hud-nostretch.
Resolution independent aspect-correct drawing of the view border/background.
Renamed command line option “texnonpow2” to notexnonpow2 and logically inverted its usage.
Tweaked console min-height to leave a gap 1/4th of line height above the command line.
New approach to drawing various HUD elements which aims to preserve the original aspect ratio. If the window dimension aspect ratio is equal or near to the original ratio, the element will be stretched. If not, the element will be centralized and scaled to fit while maintaining the original aspect ratio. This means that by default anything between 4:3 and 16:10 will be stretched while everything else will be scaled to fit (unless overridden).
Resolution independent aspect-correct drawing of the message log, crosshair, map title/author and Pause graphic.
Improved animation between view sizes to include HUD display modes.
Minor reorganisation of the HUD menu.
Added a separate slider for crosshair opacity and removed the alpha slider from the color selection widget. It was not immediately obvious that when vitality color was enabled that the opacity could be set independently.
Reordered items, grouping together player message options.
Added a slider to the Messages section for message scale.
ccmds movefloor and moveceil no longer prevent moving planes to or past the height of the opposite plane.
InFine
Command “linehgt” is now interpreted as a percentage of the actual height of the font rather than a fixed 320×200 pixel offset.
Automap
Improved drawing of marked points by projecting them onto the edges of the view window (they are always in-view regardless of scale or position).
Scale up the width of lines drawn to 1/1.6 of their visible width at 320×200.
All games
The map title display is now drawn for each viewport instead of one over all viewports.
Removed ccmd “viewsize” (now unnecessary as the cvarview-size can be changed directly from the console).
Removed ccmd “sbsize” (now unnecessary as the cvarhud-status-size can be changed directly from the console).
PrtSc key now bound by default to take a screenshot.
The gravity multiplier (cvarserver-game-mod-gravity) previously only available in multiplayer now works in singleplayer also.
Changed maximum movement speed for camera players, allowing them to move almost twice as fast as non-camera players when running.
DOOM
Changed the default colors for the menu, fullscreen HUD to better match the original Patches.
Changed the built-in Patch replacement strings for the main menu load/save items and the headings on the load/save menus to better match the original patches.
The kills/items/secrets counters were previously only visible when the automap was open. Renamed the cvars “map-cheat-counter” and “map-cheat-counter-scale” to hud-cheat-counter and hud-cheat-counter-scale respectively.
Draw all owned keys on the statusbar if not cvarhud-keys-combine (e.g., if the player owns both the Blue Keycard and the Blue Skull they will both be drawn in slot 1).
Heretic
The kills/items/secrets counters were previously only visible when the automap was open. Renamed the cvars “map-cheat-counter” and “map-cheat-counter-scale” to hud-cheat-counter and hud-cheat-counter-scale respectively.
Hexen
Position the inventory left/right indicators relative to the number of visible slots when using the fullscreen HUD.
New features
Engine
cvarrend-hud-nostretch 1=Disable automatic stretching of the HUD to fill the screen at aspects near to the original game.
Monitor vsync is used automatically on Windows and Mac OS X for smoother screen refresh.
Win32
Addedcommand line option noframe: Useful in combination with window or nofullscreen to obtain a fullscreen-like but windowed behavior (e.g., for configuring multi-monitor setups).
All games
cvarmenu-nostretch 1=Disable automatic stretching of the menu to fill the screen at aspects near to the original game.
cvarfinale-nostretch 1=Disable automatic stretching of finales to fill the screen at aspects near to the original game.
The help screens shown when selecting “ReadThis” from the menu or using the (default) F1 shortcut are now defined as in_fine scripts to allow for customization in mods.
Sequential cycling of player weapons using next/prev until the current weapon is fully lowered (for example, if the player owns weapons one through four and four is currently readied; cycling the previous weapon three times in quick succession will select weapon one). Added “Sequential” item to the Weapons option menu. Addedcvarplayer-weapon-cycle-sequential (on by default).
Common Code Library
InFine
Added command “font” (handle) (font) specify the font to use with a Text block by name.
version/detailed_list_of_changes_in_doomsday_version_1.9.7.txt · Last modified: 2017-03-23 06:45 by skyjake