Commit graph

15249 commits

Author SHA1 Message Date
Magnus Norddahl
9882cd9d6b - fix softpoly bug where sprites and translucent walls in front of models would disappear 2018-10-25 13:57:03 +02:00
Tommy Nguyen
0403fb5416 - use value initialization for secspecial_t 2018-10-23 21:31:26 +02:00
Magnus Norddahl
b011900f48 - fix null pointer crash 2018-10-23 13:39:01 +02:00
Magnus Norddahl
6ca14ac8c6 - portal check is overridden by a different inverted check in the software renderer 2018-10-23 13:38:58 +02:00
Magnus Norddahl
a8112d4815 - Cull two-sided lines using the same rules as the software renderer is using (as suspicious as they may be) 2018-10-23 13:38:51 +02:00
alexey.lysiuk
063efa1ccd - fixed default values for S_ChangeMusic
https://forum.zdoom.org/viewtopic.php?t=62323#p1076849
2018-10-22 10:28:22 +02:00
Christoph Oelckers
eca23badb8 - added a compatibility fix for Hacx's MAP05.
This is by no means perfect and looks different than what was originally intended, but at least this doesn't totally fail to render properly with the OpenGL renderer.

# Conflicts:
#	wadsrc/static/zscript/level_compatibility.txt
2018-10-21 20:57:40 +02:00
Rachael Alexanderson
35bf70456a - fixed: attaching a new status bar to a player now calls 'setsizeneeded' - fixes an issue where the screen geometry is out of sync with the characteristics of the new status bar. 2018-10-20 21:22:24 +02:00
Magnus Norddahl
ae532d88ee - fix distance attenuation for PBR materials 2018-10-17 09:36:01 +02:00
Erick Tenorio
c2784e4b6b - Visually align Doom 2 MAP04 crusher floors
Use Transfer_Heights to fake floors on the crusher sectors
2018-10-16 20:50:53 +02:00
Marisa Kirisame
100ad0ac6d Preserve line locknumber in savegames. 2018-10-16 20:50:52 +02:00
drfrag666
2183f71ec6 - Make 160x100 scaling actually work, not that it's really useful.
This partially reverts "- don't let the video scale let the screen end up with a client size less than 320x200, which may cause undefined behavior and trigger asserts in debug builds."
2018-10-15 11:58:09 +02:00
Christoph Oelckers
cb2750f6f5 Changed AppVeyor configuration to create the 64 bit debug build with VS 2017 and no XP toolset 2018-10-15 11:41:30 +02:00
Rachael Alexanderson
d3bdeacd09 - fixed: use 'setsizeneeded' more often in the scaling code. recalculating screen geometry for 2D elements when it changes never really hurts. 2018-10-15 11:32:34 +02:00
Rachael Alexanderson
24d42b74a7 - fixed: use templates.h function for minimal value check
# Conflicts:
#	src/r_videoscale.cpp
2018-10-15 11:32:06 +02:00
Rachael Alexanderson
c42c4afeeb - enforce 160x100 minimum in actual scaling code
# Conflicts:
#	src/r_videoscale.cpp
2018-10-15 11:28:08 +02:00
Erick Tenorio
3b432a99e8 -Fixed many IWAD mapping errors
# Conflicts:
#	wadsrc/static/zscript/level_compatibility.txt
2018-10-14 12:10:56 +02:00
Christoph Oelckers
53c87fd5eb - extended the register limit for 'param'.
The instruction one free instruction byte so it's now using that to extend its argument's register range to 65535.
For param this is needed because it passes strings by reference and creating an implicit temporary copy for string constants does not work here.
2018-10-14 10:31:48 +02:00
player701
3e0ed1c907 - Fixed indentation 2018-10-14 10:31:47 +02:00
player701
dcc2006c76 - Exported PickNewWeapon function from PlayerPawn to ZScript. 2018-10-14 10:31:46 +02:00
Christoph Oelckers
979c3022c4 - fixed: MD3s with a skin-less surface left the renderer in an undefined state.
The frame interpolation factor wasn't reset and rendering prematurely aborted with no chance to recover.
2018-10-09 22:00:04 +02:00
Erick Tenorio
3bb5608435 Fix missing enemies in HTP-RAW.WAD MAP22
Make 100% kills possible on MAP22 of Hell to Pay
2018-10-09 22:00:02 +02:00
Magnus Norddahl
770c676ac9 - add gl_dither for toggling dithered output on and off
# Conflicts:
#	src/gl/renderer/gl_postprocess.cpp
#	src/gl/renderer/gl_stereo3d.cpp
#	src/hwrenderer/postprocessing/hw_presentshader.h
2018-10-09 21:57:14 +02:00
Rachael Alexanderson
5d7411dd56 - change 'halfstep' in the dither shader to a #define 2018-10-09 13:23:22 +02:00
Rachael Alexanderson
c784411b13 - expand the dither matrix from 4x4 to 8x8 2018-10-09 13:23:21 +02:00
Rachael Alexanderson
d5f71ad3ce - further math tweaks 2018-10-09 13:23:07 +02:00
Rachael Alexanderson
213b33de16 - fix up a bit of math on the dither shader 2018-10-09 13:22:54 +02:00
Magnus Norddahl
60ae0915b9 - add dithering to present shader 2018-10-09 13:22:31 +02:00
Rachael Alexanderson
960661df49 - fixed: smooth teleporters could fudge the player over an adjacent line, causing the player to appear on top of a cliff that is much higher than the original teleport. 2018-10-09 13:01:00 +02:00
Rachael Alexanderson
787638ff5f - always enforce a minimum distance for fog when fogmode is set to standard. without this, it was possible for the GPU to error out and stop rendering pixels for certain screen blocks
# Conflicts:
#	wadsrc/static/shaders/glsl/main.fp
2018-10-09 11:56:41 +02:00
Erick Tenorio
1b97ba198b Fixes for Wraith Corporation WADs 2018-10-09 11:53:59 +02:00
Christoph Oelckers
1e48f240e0 - fixed potential null pointer access in Hexen's spike code. 2018-10-07 21:21:07 +02:00
alexey.lysiuk
93645065fd - use Xcode 10 for Travis builds 2018-10-07 11:15:33 +02:00
Christoph Oelckers
9eabb46daf - removed dynamic lights from Hexen's Mana pickups.
They barely glow, yet were casting relatively strong lights.
2018-10-07 11:11:26 +02:00
Magnus Norddahl
811bd578cd - fix artifact in PCF filter when the texture coordinate wraps 2018-10-05 22:25:11 +02:00
Kevin Caccamo
434ffe542a Attempt to fix warnings from VS2017 Win64 compiler 2018-10-05 22:24:39 +02:00
Kevin Caccamo
a628cff085 Calculate normals for OBJ models with smooth groups
Add smoothGroup member to OBJFace struct, and assign the current smooth group number to it
Move face normal calculation code to CalculateNormalFlat
Add AddVertFaces method, which initializes and populates the vertFaces array of arrays, which holds references to triangle references per vertex
Only initialize and populate vertFaces if the model has missing normals and smooth groups
Assign smooth groups to triangle data
Add CalculateNormalSmooth method, which calculates the normals for each face the vertex is attached to, depending on whether or not the faces are part of the given smooth group, and averages them out
Add OBJTriRef struct, which holds references to triangles on OBJ surfaces

Make {agg,cur}SurfFaceCount unsigned ints
Change nvec to a value instead of a pointer
2018-10-05 22:24:26 +02:00
Christoph Oelckers
6df918341a - be more thorough with 'in menu' checks for certain protected functions.
They would also pass the test if a menu just was open but not the actual invoker.
Also error out if this happens so that modders can see that they are doing unsupported things. Silent failure is not a good idea here.
2018-10-05 22:24:25 +02:00
Christoph Oelckers
4cd4e01fff - fixed some warnings in OBJ model code.
(This clearly shows that using 'long' as parameters in any interface must be stopped. It is fundamentally unsafe to have a type whose size is not reliable - it's either an int-sized nor a pointer sized value, depending on the platform, and essentially worthless.)
2018-10-05 22:24:23 +02:00
Magnus Norddahl
33180fd4e8 - remove shadow acne from PCF shadowmap filter and add three quality levels 2018-10-05 10:20:02 +02:00
drfrag666
dfe032dc8a - Fixed no rendering with shadowmaps enabled and render buffers disabled. 2018-10-05 01:56:28 +02:00
Marisa Kirisame
c674c3ff72 Computed facet normals for UE1 models were not normalized when they were supposed to. 2018-10-05 01:23:38 +02:00
drfrag666
9d10545ff2 - Fixed non valid value. 2018-10-04 21:10:05 +02:00
Vitaly Novichkov
72affb2c2e Upgrade libADLMIDI and libOPNMIDI
Added full-panning stereo, improvement of channel management, and many other things.

Also, I have implemented an ability to use custom WOPL (for libADLMIDI) and WOPN (for libOPNMIDI) banks from the same path as "soundfonts", but also, in the same environment, the "fm_banks" folder was added for WOPL/WOPN storing purposes.
To toggle usage of embedded or custom bank, I have added togglable booleans. When bank fails to be loaded, the default embedded bank is getting to be used as fallback.

ADLMIDI 1.4.0   2018-10-01
 * Implemented a full support for Portamento! (Thanks to [Jean Pierre Cimalando](https://github.com/jpcima) for a work!)
 * Added support for SysEx event handling! (Thanks to [Jean Pierre Cimalando](https://github.com/jpcima) for a work!)
 * Added support for GS way of custom drum channels (through SysEx events)
 * Ignore some NRPN events and lsb bank number when using GS standard (after catching of GS Reset SysEx call)
 * Added support for CC66-Sostenuto controller (Pedal hold of currently-pressed notes only while CC64 holds also all next notes)
 * Added support for CC67-SoftPedal controller (SoftPedal lowers the volume of notes played)
 * Fixed correctness of CMF files playing
 * Fixed unnecessary overuse of chip channels by blank notes
 * Added API to disable specific MIDI tracks or play one of MIDI tracks solo
 * Added support for more complex loop (loopStart=XX, loopEnd=0). Where XX - count of loops, or 0 - infinite. Nested loops are supported without of any limits.
 * Added working implementation of TMB's velocity offset
 * Added support for full-panning stereo option (Thanks to [Christopher Snowhill](https://github.com/kode54) for a work!)
 * Fixed inability to play high notes due physical tone frequency out of range on the OPL3 chip

OPNMIDI 1.4.0   2018-10-01
 * Implemented a full support for Portamento! (Thanks to [Jean Pierre Cimalando](https://github.com/jpcima) for a work!)
 * Added support for SysEx event handling! (Thanks to [Jean Pierre Cimalando](https://github.com/jpcima) for a work!)
 * Added support for GS way of custom drum channels (through SysEx events)
 * Ignore some NRPN events and lsb bank number when using GS standard (after catching of GS Reset SysEx call)
 * Added support for CC66-Sostenuto controller (Pedal hold of currently-pressed notes only while CC64 holds also all next notes)
 * Added support for CC67-SoftPedal controller (SoftPedal lowers the volume of notes played)
 * Resolved a trouble which sometimes makes a junk noise sound and unnecessary overuse of chip channels
 * Volume models support taken from libADLMIDI has been adapted to OPN2's chip speficis
 * Fixed inability to play high notes due physical tone frequency out of range on the OPN2 chip
 * Added support for full-panning stereo option

ADL&OPN Hotfix: re-calculated default banks
The fix on side of measurer of OPL3-BE and OPN2-BE where some instruments getting zero releasing time.

# Conflicts:
#	src/sound/mididevices/music_adlmidi_mididevice.cpp
#	src/sound/mididevices/music_opnmidi_mididevice.cpp
#	wadsrc/static/menudef.txt
2018-10-04 20:25:02 +02:00
Christoph Oelckers
48bf320570 - fixed warning in ADLMidi. 2018-10-04 19:53:21 +02:00
Marisa Kirisame
5877c0248d Exports various resurrection-related functions to ZScript. 2018-10-04 19:30:39 +02:00
Magnus Norddahl
8997d5effb - fix the nearest shadow map filter to have no shadow acne and replace linear with nearest in the menu 2018-10-04 19:27:20 +02:00
Magnus Norddahl
7124ba8216 - add some comments to shadowmap.fp 2018-10-04 19:24:22 +02:00
Magnus Norddahl
9ad56a9f66 - fix diagonal linear shadow map artifact 2018-10-04 19:24:12 +02:00
Christoph Oelckers
ee278db86f - toned down the intensity of the dynamic lights for Doom's torches. 2018-10-04 19:23:58 +02:00