Commit graph

12031 commits

Author SHA1 Message Date
Rachael Alexanderson
619281de64 Revert "Merge commit 'refs/pull/336/head' of https://github.com/coelckers/gzdoom"
This reverts commit a05c38fefd, reversing
changes made to 0fb1a0604c.
2017-05-28 07:12:41 -04:00
Christopher Bruns
a49afd5bfc Initial OpenVR mode.
Second attempt: clean up commit, and avoid messing with HDR framebuffer format.
2017-05-28 06:20:32 -04:00
Rachael Alexanderson
a05c38fefd Merge commit 'refs/pull/336/head' of https://github.com/coelckers/gzdoom 2017-05-28 01:33:59 -04:00
Rachael Alexanderson
0fb1a0604c Merge https://github.com/coelckers/gzdoom 2017-05-27 21:52:43 -04:00
Christopher Bruns
a149b54226 Maybe avoid gcc compile problem with forward declared enum. 2017-05-27 20:16:00 -04:00
Christopher Bruns
c1bacdbf92 Create initial rotation-tracking-only implementation of OpenVR mode for VR headsets. 2017-05-27 19:42:49 -04:00
Rachael Alexanderson
4545bb2fa1 - rename vid_used3d on windows to vid_glswfb to match Linux. Additionally, the values were reversed to match the Linux variant of this configuration. This CVar now operates exactly the same way it does on Linux, except it defaults to being off and still allows the D3D framebuffer on Windows when it's deactivated. 2017-05-27 04:52:43 -04:00
Rachael Alexanderson
872db304f0 Merge https://github.com/coelckers/gzdoom 2017-05-27 04:31:53 -04:00
Magnus Norddahl
b111a708da - Fix compile error and some warnings 2017-05-27 06:27:36 +02:00
Magnus Norddahl
3f991429d1 - Reduce the number of naked new/delete calls in OpenGLSWFrameBuffer 2017-05-27 02:31:15 +02:00
Major Cooke
35583621cf PSPF_MIRROR now corrects the bobx direction. 2017-05-26 18:28:09 -05:00
Rachael Alexanderson
40bbb70799 Merge https://github.com/coelckers/gzdoom 2017-05-26 18:17:35 -04:00
Major Cooke
636e36b90d Clean-up. 2017-05-26 11:34:26 -05:00
alexey.lysiuk
67d313cf25 Fixed megasphere item selection in bot code
https://forum.zdoom.org/viewtopic.php?t=56604
2017-05-26 11:54:42 +03:00
Major Cooke
a25a536c9f Removed the auto PSPF_FLIP implimentation. 2017-05-25 20:40:54 -05:00
Major Cooke
a111c59286 Added PSPF_MIRROR.
- Flips the sprite's drawing and position over entirely. Automatically implies PSPF_FLIP.
2017-05-25 19:46:36 -05:00
Rachael Alexanderson
5c30a99aa9 Merge https://github.com/coelckers/gzdoom 2017-05-25 10:39:14 -04:00
alexey.lysiuk
d633e8afc1 Fixed sector iteration with Floor_Stop and Ceiling_Stop action specials
https://forum.zdoom.org/viewtopic.php?t=56582
2017-05-25 10:41:06 +03:00
Rachael Alexanderson
538bfabef8 Merge https://github.com/coelckers/gzdoom 2017-05-23 06:17:46 -04:00
Christoph Oelckers
9d73e4c635 - fixed errors in wallsprite setup for the classic software renderer:
* it did not use the correct texture.
* it had a math error in the right edge's y-coordinate calculation.
2017-05-23 09:37:38 +02:00
Dugan Chen
bc0f9023f6 Add mem_fn header to oalsound.cpp 2017-05-22 21:54:58 +02:00
Rachael Alexanderson
7600fdb200 Merge https://github.com/coelckers/gzdoom 2017-05-22 13:10:19 -04:00
svdijk
bdfc42182f OPLsynth: Default to center panning. 2017-05-22 09:15:02 +02:00
Christoph Oelckers
7bc5573baa - call P_FindParticleSubsectors before rendering a save picture in OpenGL.
This entry point was the only one missing that call.
2017-05-21 12:45:49 +02:00
Christoph Oelckers
fc0855fac7 - fixed size of particles in the hardware renderer.
From the look of it the scale was changed in the software renderer several years back but the hardware renderer never got adjusted for it.
This also adds a bit of compensation to round particles so that they get rendered a bit larger than square ones.
2017-05-21 12:36:34 +02:00
Christoph Oelckers
be2cfddb17 - handle the case where SBARINFO only contains a mugshot definition and fall back to the current statusbarclass if creating an SBARINFO-based statusbar fails. 2017-05-21 12:06:22 +02:00
Magnus Norddahl
e27e89b57d - Make sure a hung worker thread always crashes the application 2017-05-21 12:03:12 +02:00
Rachael Alexanderson
3955b7a4f8 Merge https://github.com/coelckers/gzdoom 2017-05-21 05:52:27 -04:00
Magnus Norddahl
aff9205057 - Fix mipmap filtering bug when using nearest filter 2017-05-21 11:01:37 +02:00
svdijk
371a8755c2 vid_glswfb: Prevent defunct windows. 2017-05-20 23:21:51 +02:00
Rachael Alexanderson
fd0602a163 Merge https://github.com/coelckers/gzdoom 2017-05-19 23:40:51 -04:00
Christoph Oelckers
fc8639226d - yet again Visual Studio's autocompletion feature deleted some tildes. 2017-05-19 21:36:32 +02:00
Christoph Oelckers
a4231ffd00 - more handling of some very broken old ATI drivers. 2017-05-19 21:33:48 +02:00
Christoph Oelckers
e1cd0dc588 - major optimization on carry scroller code.
The old version was checking every single actor in every single sector for being affected by a carry scroller if there was so much as a single such scroller in the map.
Changed it so that the scroll thinker flags all actors in the affected sectors so that these expensive calculations can be skipped for everything else.
This change and reduce think time by 1/3 on maps like ZDCMP2 (on the test machine it went down from 6 ms to 4 ms on this map.)
2017-05-19 16:31:44 +02:00
Christoph Oelckers
9fc309d5b5 - stop the music when processing a fatal error. 2017-05-19 12:20:33 +02:00
Christoph Oelckers
c1e64fa576 - fixed: The rail trail should use r_trail_sparsity, not r_spiral_sparsity.
- fixed: Spawning actors on the rail trail must ignore the sparsity CVARs completely.
2017-05-19 12:03:20 +02:00
Christoph Oelckers
c8e631bf26 - fixed: The colormap was not fully initialized for 3D floors in sectors where neither the original floor nor ceiling were visible. 2017-05-19 11:42:44 +02:00
Christoph Oelckers
97b664968e - removed a few unused VM opcodes. 2017-05-19 10:27:22 +02:00
Rachael Alexanderson
1472627f6a Merge https://github.com/coelckers/gzdoom 2017-05-17 22:15:48 -04:00
Major Cooke
bb1e927c46 Give the parameter a better name to associate by. 2017-05-17 23:03:22 +02:00
Major Cooke
65f13b0927 - Added a Z offsetting parameter to the ZScript LineAttack function.
- Added LAF_OVERRIDEZ flag to LineAttack. Disregards all internal offsetting aside the actor's Z position before adding the offset parameter.
2017-05-17 23:03:22 +02:00
Rachael Alexanderson
0f54d7f854 Merge https://github.com/coelckers/gzdoom 2017-05-17 08:53:34 -04:00
alexey.lysiuk
a92f889e44 Fixed recently introduced compilation warnings
src\v_video.cpp(1771): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
src\v_video.cpp(1773): warning C4244: '=': conversion from 'double' to 'int', possible loss of data
2017-05-16 16:39:07 +03:00
Rachael Alexanderson
a93efb1e9e - slightly increase source code readability by moving a flag from one line to another. 2017-05-16 09:52:50 +02:00
Rachael Alexanderson
8192ad73bd - changed fall damage so it is max 'TELEFRAG_DAMAGE - 1' instead of a flat 999 (it used to check for >=1000). 2017-05-16 09:52:50 +02:00
Rachael Alexanderson
c6946cc672 - removed all instances of CF_POWERBUDDHA 2017-05-16 09:52:50 +02:00
Rachael Alexanderson
fe023b5ca4 - changed Buddha powerup from a flag to an inventory check 2017-05-16 09:52:50 +02:00
Major Cooke
b1a8ef54f6 - Fixed bitwise comparison. 2017-05-16 09:52:50 +02:00
Major Cooke
6bbbd28a08 - Added missing LAXTELEFRAGDMG support to SelfDamageFactor. 2017-05-15 19:19:35 +02:00
Rachael Alexanderson
a96ef5276d - Added new flags8 actor field. Isn't it frightening how quickly how we got to our 8th flag field?
- Speaking of frightening, added +FRIGHTENING flag.
2017-05-15 19:17:46 +02:00
Rachael Alexanderson
7ded20ca05 Merge https://github.com/coelckers/gzdoom 2017-05-15 03:27:58 -04:00
Dmitri Kourennyi
3b20c26275 Fix A_CheckProximity setting pointer to dead things when it shouldn't.
When using A_CheckProximity with CPXF_SETTARGET, the target pointer could
be set to a dead monster even without the CPXF_COUNTDEAD and CPXF_DEADONLY
flags. This is becuase the check for death would occur after setting the
pointer.

Fix simply moves death check to occur before setting pointers.
2017-05-14 20:01:18 +02:00
Major Cooke
795f8f0578 - Added a separate cheat flag to handle buddha powerups. Currently, Buddha powerups could interfere and disable the actual player cheat unintentionally, when the player may not want their actual cheat to be turned off.
- Set some overlooked 1000000 damage points to TELEFRAG_DAMAGE inside the falling damage code.
2017-05-14 17:22:46 +02:00
Christoph Oelckers
6a34092742 - fixed automap positioning with linked portals and a camera actor that is transitioning a sector portal. 2017-05-14 13:12:39 +02:00
Christoph Oelckers
437dd68d79 - the Render state must be applied before performing a portal clear screen, because it would still be set to stencil drawing at this point. 2017-05-14 12:42:25 +02:00
Rachael Alexanderson
a7025b5563 Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/version.h
2017-05-14 06:41:56 -04:00
Christoph Oelckers
8a91153aeb - Why does the Visual Studio editor hate tildes so much...? 2017-05-14 12:36:13 +02:00
Christoph Oelckers
ef7e4fe678 - draw empty portals in black, not the last set color. 2017-05-14 12:31:51 +02:00
Christoph Oelckers
0f80b7dcb6 - fixed: P_CollectConnectedGroups should abort if it tries to collect the same portal group more than once, because this would indicate an infinite loop. 2017-05-14 12:24:52 +02:00
Christoph Oelckers
1767dd6a42 - fixed: A_CheckBlock performed item pickup checks which could be done in completely inappropriate spots if this function was used from weapon overlays, for example. 2017-05-14 11:55:32 +02:00
svdijk
6dd570c538 Menu: Fix cycling the "midi devices" menu option. 2017-05-14 12:12:12 +03:00
svdijk
b6ef9fae3e SDLGLFB: Implement mouse coordinate scaling for the menus. 2017-05-14 12:12:12 +03:00
Magnus Norddahl
788b9f6d54 Merge branch 'master' of https://github.com/coelckers/gzdoom 2017-05-14 08:55:39 +02:00
Magnus Norddahl
31125486ad - Improve line portal rendering somewhat 2017-05-14 08:55:30 +02:00
Christoph Oelckers
b346dd0c09 - added a check for unconnected linked line portals. 2017-05-13 17:45:59 +02:00
alexey.lysiuk
f0d40d6a8a Added check for patch set existence before loading in FluidSynth
This helps to avoid flooding of output with the following messages on every MIDI song change:
fluidsynth: error: Unable to open file "/usr/share/sounds/sf2/FluidR3_GS.sf2"
fluidsynth: error: Couldn't load soundfont file
fluidsynth: error: Failed to load SoundFont "/usr/share/sounds/sf2/FluidR3_GS.sf2"
fluidsynth: error: Unable to open file "/usr/share/sounds/sf2/FluidR3_GM.sf2"
fluidsynth: error: Couldn't load soundfont file
fluidsynth: error: Failed to load SoundFont "/usr/share/sounds/sf2/FluidR3_GM.sf2"
2017-05-13 17:56:26 +03:00
alexey.lysiuk
27384fc70d Do not create symlink to executable on macOS too
This link in build directory pointed to non-existing file since we started to create application bundle with CMake
2017-05-13 17:01:24 +03:00
Magnus Norddahl
4554d90b1d Merge branch 'master' of https://github.com/coelckers/gzdoom 2017-05-13 15:49:09 +02:00
Magnus Norddahl
0a4f4aaffd - Stop using sqrt when calculating texture coordinates 2017-05-13 15:48:55 +02:00
alexey.lysiuk
3ab4a2238e Removed some remains of sound system MIDI device 2017-05-13 16:45:02 +03:00
alexey.lysiuk
a8e379553e Copy default soundfont in post build step 2017-05-13 15:49:23 +03:00
alexey.lysiuk
a01c6b1d65 Fixed build of non-Windows targets
src/sound/mididevices/music_fluidsynth_mididevice.cpp:355:13: error: use of undeclared identifier 'BaseFileSearch'
2017-05-13 14:29:29 +03:00
Christoph Oelckers
ba37f093e0 - use FluidSynth as default MIDI device and allow loading a 'gzdoom.sf2' sound font if none is specified. The search rules for this file will be the same as for gzdoom.pk3. 2017-05-13 12:33:14 +02:00
Rachael Alexanderson
d1c6d8543b Merge https://github.com/coelckers/gzdoom 2017-05-13 04:17:54 -04:00
Chris Robinson
e1fc33c38f Don't downmix sounds when AL_SOFT_source_spatialize is available 2017-05-12 21:38:45 +02:00
Magnus Norddahl
7af11b1963 - Offset sky in softpoly by 180 degrees 2017-05-12 17:59:22 +02:00
Magnus Norddahl
7a2be275af - Fix interpolator bug in softpoly 2017-05-12 17:47:11 +02:00
Magnus Norddahl
5c6cbd17a1 - Move polyobj rendering to be handled as a special case in RenderPolyScene 2017-05-12 17:26:17 +02:00
Magnus Norddahl
f7d1a2a574 - Add polyobj support to softpoly 2017-05-12 14:05:32 +02:00
Rachael Alexanderson
d907f18e4c Merge https://github.com/coelckers/gzdoom 2017-05-12 07:45:46 -04:00
Rachael Alexanderson
029788976d - fully fix Strife1.wad's MAP10 shooting range.
- added the following compatibility.txt properties: setsectortexture, setsectorlight
2017-05-11 18:56:02 +02:00
Rachael Alexanderson
ac244b3229 Merge https://github.com/coelckers/gzdoom 2017-05-10 05:15:49 -04:00
alexey.lysiuk
8fbb5372b2 Fixed 32-bit Windows crash reporter
Restored old exception handling for 32-bit Windows executable
Tested on 32-bit Windows XP (previously exited without notification), 64-bit Windows 7 and 10 (previously deadlocked in system DLLs)
2017-05-10 11:34:48 +03:00
Chris Robinson
092b339c8f Replace usleep with nanosleep for macOS too 2017-05-10 09:44:54 +02:00
Magnus Norddahl
f492e92cb5 - Handle degenerate triangles either sent as input or caused by clipping 2017-05-10 02:43:00 +02:00
Chris Robinson
7ad61a97ed Fix handling long wait times on POSIX's I_WaitVBL
usleep only works for sleeping up to one second. The function is also
deprecated and nanosleep should be used instead.
2017-05-09 23:21:32 +02:00
svdijk
fd8613a11e CMake: Fix building on 32-bit Linux (Core 2 Duo) again. 2017-05-09 20:48:48 +02:00
Chris Robinson
60cc91e000 Properly unload the backend sound buffers 2017-05-09 19:13:52 +02:00
Christoph Oelckers
0a8083e280 - fixed default obituary handling for predefined damagetypes. 2017-05-09 19:04:07 +02:00
Christoph Oelckers
2bf8e8f1c0 - fixed: InitClipper was missing a call to Clipper.Clear. 2017-05-09 12:20:49 +02:00
Christoph Oelckers
8be7ff01dd - removed some pointless restrictions from AActor::IsOkayToAttack which prevented its use on normal monsters.
This all made sense as long as the function was only used internally but that's not the case anymore.
2017-05-09 09:57:38 +02:00
Christoph Oelckers
c6a516089e - fixed: OPLio::WriteTremolo wrote the wrong value for operator #0. 2017-05-08 22:46:35 +02:00
Christoph Oelckers
762ba13cd9 - store the last found OpenGL version in the INI so that modern GL related options can be removed when running old hardware with software rendering. 2017-05-08 19:30:51 +02:00
Christoph Oelckers
4a5fe65ce8 - added missing check for RenderStyle None to GL weapon drawer. 2017-05-08 19:13:18 +02:00
alexey.lysiuk
bdac1c3ad1 Fixed problem with looping of particular music tracks
Part of https://forum.zdoom.org/viewtopic.php?t=56333
2017-05-08 18:07:02 +03:00
Christoph Oelckers
26325edddc - fixed Ogg tag validation. 2017-05-08 17:00:09 +02:00
alexey.lysiuk
f7b8dadedb Made size of music stream buffer customizable
Use snd_streambuffersize CVAR to set buffer size in kilobytes, from 16 to 1024
Name of existed CVAR from removed FMOD sound backend is used
Increased default size of stream buffer to 64 kB like it was in FMOD backend
2017-05-08 10:30:16 +03:00
alexey.lysiuk
3d100e6578 Removed unused #include's from music_libsndfile.cpp 2017-05-08 10:30:16 +03:00
alexey.lysiuk
e1266685d9 Use proper function to set sound offsets in samples
This fixes the following compilation warnings:
src\sound\oalsound.cpp(1588): warning C4244: 'argument': conversion from 'unsigned int' to 'ALfloat', possible loss of data
src\sound\oalsound.cpp(1796): warning C4244: 'argument': conversion from 'unsigned int' to 'ALfloat', possible loss of data
2017-05-08 10:29:41 +03:00
Rachael Alexanderson
cdb68f159c Merge https://github.com/coelckers/gzdoom 2017-05-07 21:29:12 -04:00
alexey.lysiuk
e848abf4df Fixed restoration of absolute time position for sounds
Loading of saved game no longer restarts sounds from beginning
2017-05-07 13:00:06 +03:00
Rachael Alexanderson
0941cda7cc Merge https://github.com/coelckers/gzdoom 2017-05-07 05:07:22 -04:00
Magnus Norddahl
81de951abc - Fix missing include 2017-05-06 22:25:18 +02:00
Magnus Norddahl
f083109b51 - Add SSE code to OpenGLSWFrameBuffer::OpenGLPal::Update to workaround a broken auto-vectorizer in GCC 2017-05-06 22:03:32 +02:00
Christoph Oelckers
7f7be9e393 - fixed compile errors in last commit. 2017-05-06 20:38:36 +02:00
alexey.lysiuk
85bb5192b3 Replaced sectorflooroffset with more generic compatibility parameter
New parameter setsectoroffset can set offset of floor or ceiling

# Conflicts:
#	src/compatibility.cpp
2017-05-06 19:43:35 +02:00
alexey.lysiuk
de97b753f6 Added compatibility parameter to set wall textures 2017-05-06 19:43:35 +02:00
alexey.lysiuk
cd8aa252ae Added compatibility parameter to set thing skills
# Conflicts:
#	src/compatibility.cpp
2017-05-06 19:43:35 +02:00
Magnus Norddahl
9011f0ed5b - Fix texture coordinates for sloped walls 2017-05-06 18:44:06 +02:00
Chris Robinson
996ce4497d Add a resampler option for the OpenAL backend 2017-05-06 18:07:31 +02:00
Magnus Norddahl
aca628acaf - Improve wall texture coordinates in softpoly 2017-05-06 15:48:04 +02:00
Christoph Oelckers
567c21cdeb - fixed recursion in Dim functions. When the main worker function was renamed to DoDim the Super calls were not fixed for it. 2017-05-06 10:44:29 +02:00
Rachael Alexanderson
678949ccd4 Merge https://github.com/coelckers/gzdoom 2017-05-06 00:52:02 -04:00
Magnus Norddahl
5c1dc900e3 - Slightly improve sky rendering in softpoly 2017-05-06 01:43:05 +02:00
Christoph Oelckers
bb12dabe2b - added a 'protrusion' property to SBARINFO so that the map name display can properly be handled here as well. Until now it was only working for scripted status bars. 2017-05-05 19:32:37 +02:00
Rachael Alexanderson
fa3846ccc6 Merge https://github.com/coelckers/gzdoom 2017-05-05 00:36:22 -04:00
Magnus Norddahl
4fcea96a1c - Improve softpoly sky rendering a little bit 2017-05-05 03:27:22 +02:00
Christoph Oelckers
2dff0e7309 - fixed: P_TranslateLinedef should not do any byte swapping but require passing of properly ordered values.
This gets called from several places, and the only one passing in potentially byte swapped values is P_LoadLineDefs.
All other uses of this function were essentially broken on PowerPC.
2017-05-04 23:52:16 +02:00
Rachael Alexanderson
118976129d Merge https://github.com/coelckers/gzdoom 2017-05-04 02:38:13 -04:00
Christoph Oelckers
99a61e74c7 - fixed: The first model ID was always initialized to 0, even if that model wasn't even present in the definition. 2017-05-04 00:37:43 +02:00
Rachael Alexanderson
5a450b5eaa - fixed: +FLIPSPRITE works in mirrors in OpenGL now. 2017-05-03 15:56:33 -04:00
Rachael Alexanderson
00a4993654 - forgot to implement +SPRITEFLIP for OpenGL 2017-05-03 21:13:31 +02:00
Rachael Alexanderson
2acb485121 - Added +SPRITEFLIP which reverses a sprite's left-rightness. 2017-05-03 21:13:31 +02:00
alexey.lysiuk
8303d8bbd1 Fixed name of mpg123 shared library on Linux
https://forum.zdoom.org/viewtopic.php?t=56253
2017-05-03 16:56:22 +03:00
Christoph Oelckers
f9445e96f5 - fixed: DPSprite::GetRenderStyle returned the wrong alpha value. 2017-05-03 10:27:20 +02:00
Rachael Alexanderson
00dab8677a - fixed: Changing fullscreen while vid_renderer != currentrenderer will cause a fake vid_renderer to be passed to the mode change function in order to prevent a crash. 2017-05-03 10:05:46 +02:00
Rachael Alexanderson
a9412ec815 Merge https://github.com/coelckers/gzdoom 2017-05-02 23:26:34 -04:00
Magnus Norddahl
e68da4cd6b - Fix crash in glswfb if vid_hw2d is toggled off 2017-05-02 22:56:31 +02:00
Magnus Norddahl
c8070c65d4 - Add support for drawing decals on 3d floors in the software renderer 2017-05-02 22:26:13 +02:00
Magnus Norddahl
17108e575a - Add support for drawing decals on 3d floors in softpoly 2017-05-02 22:24:32 +02:00
alexey.lysiuk
43fc5633af Fixed player falling through narrow notch upon unmorphing
https://forum.zdoom.org/viewtopic.php?t=56230
2017-05-02 17:22:50 +03:00
alexey.lysiuk
f73f42c4a6 Removed unsuccessful attempt to fix sndfile unaligned access
This reverts commit 8a36bf5c09.
2017-05-02 11:22:18 +03:00
Rachael Alexanderson
a59336908c Merge https://github.com/coelckers/gzdoom 2017-05-02 03:13:40 -04:00
Christoph Oelckers
aac6e65842 - fixed: FxActionSpecialCall did not resolve float to int casts. 2017-05-01 22:44:58 +02:00
Christoph Oelckers
050acc9271 - added rudimentary support for SVE.wad from the Strife Veteran edition so that the extended single player campaign is usable:
* all new things got either an sctor definition or are explicitly deleted through the 'doomednums' section in MAPINFO. CTC related actors are non-functional!
* added a 'noskillflags' option to 'doomednums' so that the lightmap definition things in the maps can be repurposed as dynamic lights.
* added the new dagger powerup.
* added MAPINFO entries for the added maps.
2017-05-01 21:25:54 +02:00
alexey.lysiuk
dcded0e183 Handle unloading of canvas textures properly
https://forum.zdoom.org/viewtopic.php?t=56207
2017-05-01 16:20:25 +03:00
Rachael Alexanderson
ebf33ed24e Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/posix/cocoa/i_video.mm
2017-04-30 22:16:01 -04:00
Christoph Oelckers
b84f7bcada - scriptified the weapon firing logic. 2017-05-01 01:55:35 +02:00
Christoph Oelckers
abee2805cb - the last scriptified bits of P_PlayerThink. 2017-05-01 00:27:58 +02:00
Chris Robinson
6044c876ab Update LASTRUNVERSION to handle the snd_hrtf change
Also snd_hrtf now uses -1 for "auto" and 0 for "off", which makes more sense.
2017-05-01 00:26:28 +02:00
Rachael Alexanderson
65399bf075 - fixed: Added currentrenderer checks to SDL and COCOA implementations of 'swtruecolor' 2017-04-30 16:35:16 -04:00
Rachael Alexanderson
dfa5a3cd07 - Changed cocoa backend's s_currentRenderer to match PC version's 'currentrenderer' to address a possible Mac compilation issue. 2017-04-30 16:21:11 -04:00
Christoph Oelckers
6e25c34fda - more player code exported 2017-04-30 22:17:51 +02:00
Christoph Oelckers
10deb5ce56 - exported P_PlayerThink to ZScript. 2017-04-30 22:17:50 +02:00
Rachael Alexanderson
8c992647de - fixed: "vid_renderer" should NEVER be referenced outside of the hardware code. This may fix a crash when changing modes with vid_renderer not matching actual renderer 2017-04-30 16:11:34 -04:00
Rachael Alexanderson
588d028499 Merge https://github.com/coelckers/gzdoom 2017-04-30 16:00:52 -04:00
Chris Robinson
aae6ded2dd Add snd_hrtf back in to allow enabling HRTF again
It's now an Int type instead of Bool. Older config files that had it set to
"true" or "false" will interpret it as 0, which is Auto (the default).
2017-04-30 18:41:39 +02:00
alexey.lysiuk
9a7aa7a7b4 Fixed map name in demos recorded with * argument
https://mantis.zdoom.org/view.php?id=642
2017-04-30 16:35:28 +03:00
Rachael Alexanderson
aae9b33198 - fixed: Swapping swtruecolor no longer crashes in OpenGL mode after selecting Software in the menu 2017-04-30 07:39:00 -04:00
alexey.lysiuk
8a36bf5c09 Fixed potential crash in sndfile reader on Intel platform
https://mantis.zdoom.org/view.php?id=640
2017-04-30 12:01:28 +03:00
svdijk
4c803b6615 CMake: Fix building on 32-bit Linux (Core 2 Duo). 2017-04-29 13:36:33 +02:00
alexey.lysiuk
be496a89d9 Fixed silent sounds on first play, stereo and precached only
https://mantis.zdoom.org/view.php?id=637
2017-04-29 11:44:13 +03:00
Rachael Alexanderson
1d980b87b4 Merge https://github.com/coelckers/gzdoom 2017-04-28 22:14:15 -04:00
Christoph Oelckers
ec1aeaf384 - allow changing to the current map by using "*" as argument. Implemented for 'map', 'changemap' and 'recordmap'. 2017-04-28 11:39:47 +02:00
Rachael Alexanderson
9fc2f805de Merge https://github.com/coelckers/gzdoom 2017-04-27 14:29:28 -04:00
Christoph Oelckers
694b48423a - fixed initialization of classes so that AllActorClasses only gets initialized when the game knows what is an actor and what is not.
This could result in lost states for weapons because the weapon class did not get added to the array.
2017-04-27 10:52:00 +02:00
Christoph Oelckers
22b70dd222 - fixed: For the last block in an MP3 the buffer address was incorrectly incremented. 2017-04-27 10:08:24 +02:00
Christoph Oelckers
21af612224 - avoid double loading sound data for monoization. 2017-04-26 20:51:06 +02:00
Christoph Oelckers
b5dc5ceb3c - removed some unused static variables 2017-04-26 14:48:33 +02:00
Rachael Alexanderson
6fa7c9ee0c Merge https://github.com/coelckers/gzdoom 2017-04-25 20:54:45 -04:00
Christoph Oelckers
99579efd0d - fixed a few issues with libmpg123 not correctly reporting the sound's length and issues with repeatedly rewinding the song. 2017-04-25 21:30:11 +02:00
Christoph Oelckers
f866e0f02f - saved the wrong version. 2017-04-25 21:05:36 +02:00
Christoph Oelckers
090502b243 - moved the 'no player start' check to the end of G_DoLoadLevel because inside G_FinishTravel it would leave some data in undefined places that later can cause a crash. 2017-04-25 19:55:05 +02:00
Christoph Oelckers
9375edda11 - removed p_buildmap.cpp.
This code had been broken for years and inactive for several months. Since there is really little point fixing it it may just be removed entirely.
2017-04-25 12:40:08 +02:00
alexey.lysiuk
2bb16c684f Fixed crash caused by 0-length lines in UDMF
When line was removed during processing bogus entries remained in sidedefs array
2017-04-24 15:57:30 +03:00
Rachael Alexanderson
88f8c4afcc Merge https://github.com/coelckers/gzdoom 2017-04-24 08:09:34 -04:00
Chris Robinson
f97efefe7e Set the source gain to 0 before stopping it
Stopping a source in the middle of playback can causing undesirable "popping"
from a sudden change in amplitude. Setting the source gain to 0 gives OpenAL
the opportunity to ramp the source's output to 0, where it can be safely
stopped without causing a sudden change in amplitude.
2017-04-24 13:12:43 +02:00
Chris Robinson
78231d5ba1 Remove unused URLSong functionality
This isn't supported with the OpenAL backend, and instead of trying to make a
workaround for it, a better approach would probably be to make a FileReader
implementation that handles URLs.
2017-04-24 13:12:43 +02:00
alexey.lysiuk
e78d88094d Removed obsolete timer workaround from Cocoa backend 2017-04-23 17:35:35 +03:00
alexey.lysiuk
6fb1689d02 Disabled truecolor software renderer on PowerPC by default
Performance on such old hardware is not acceptable
2017-04-23 17:35:35 +03:00
alexey.lysiuk
ab8759049d Enabled GLSW framebuffer in Cocoa backend by default
Added fallback to generic Cocoa implementation if it's not available (i.e. without OpenGL Core Profile support)
Value of vid_glswfb CVAR is now saved to configuration file
2017-04-23 17:35:35 +03:00
Christoph Oelckers
f9735c44de - fixed signedness issues in OPL code. 2017-04-23 15:40:03 +02:00
alexey.lysiuk
70abf19f76 Replaced pointless comparison with loop_start range check
src/sound/oalsound.cpp:1285:17: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
2017-04-23 14:49:36 +03:00
alexey.lysiuk
93fa9ac1c9 Include gitinfo.h in version.h on Windows only
Avoid building of several files on each pull/reset/amend/cherry-pick/etc on macOS and Linux
2017-04-23 14:49:36 +03:00
alexey.lysiuk
bd74cf85a4 Added selection of frame buffer implementation in Cocoa backend
Added vid_glswfb CVAR but set it to false by default for compatibility reasons
2017-04-23 14:49:36 +03:00
alexey.lysiuk
ea3b47d0ad Added generic workaround for double type alignment
This fixes not only 32-bit Linux/macOS builds but PowerPC Mac target too
2017-04-23 14:49:36 +03:00
alexey.lysiuk
1c6cc3e28f Proper detection of Intel 64-bit architecture
Size of pointer check was not enough
2017-04-23 14:49:36 +03:00
alexey.lysiuk
680d1b2dd6 Moved all CMake modules and launcher templates to designated directory
Let's not pollute root directory with various files
2017-04-23 14:49:36 +03:00
Christoph Oelckers
c519e76280 - fixed calculation of clipping rect's lower edge. 2017-04-23 12:58:40 +02:00
Christoph Oelckers
82b032680c - delete the MMX function, too. 2017-04-23 12:12:49 +02:00
Christoph Oelckers
ace0568d09 - now that SSE2 is a required feature for compiling on x86, DoBlending_MMX has no use anymore and could be removed, as could the checks for bRDTSC, which is an older hardware feature than SSE2. There's also little point printing pre-SSE2 hardware features because they can be assumed to be present on anything the code can run on. 2017-04-23 11:54:08 +02:00
Magnus Norddahl
63e0310961 - add non-sse version of the softpoly drawers 2017-04-23 11:05:48 +02:00
Christoph Oelckers
2621c460e3 Revert "- add CPU.bSSE2 branching support to softpoly"
This reverts commit 545241aa06.

These commits are WIP stuff that should not be in the master branch. A work branch has been created to finalize this code.
2017-04-23 10:39:07 +02:00
Chris Robinson
c2391d6a0d Fix the default loop end point 2017-04-23 09:06:34 +02:00
Chris Robinson
4b7834465b Fix off-by-one error for the loop end 2017-04-23 09:06:34 +02:00
Rachael Alexanderson
c71d23f519 Merge https://github.com/coelckers/gzdoom 2017-04-22 22:02:20 -04:00
Magnus Norddahl
fe2864d396 - add the AVX-2 softpoly drawer to the repository for completeness sake (not currently used) 2017-04-22 22:15:09 +02:00
Magnus Norddahl
9c805d1867 - added non-sse version of the true color softpoly drawers 2017-04-22 22:05:47 +02:00
alexey.lysiuk
173fa31383 Fixed internal Dehacked support
https://mantis.zdoom.org/view.php?id=619
2017-04-22 22:58:45 +03:00
alexey.lysiuk
e4c73cfc5f Fixed compilation on Linux
src/polyrenderer/drawers/poly_triangle.cpp:212:20: error: ‘CPU’ was not declared in this scope
src/polyrenderer/drawers/screen_triangle.cpp:955:6: error: ‘CPU’ was not declared in this scope
2017-04-22 22:21:34 +03:00
Magnus Norddahl
545241aa06 - add CPU.bSSE2 branching support to softpoly 2017-04-22 20:38:06 +02:00
Christoph Oelckers
3608299e61 - serialize AActor::boomwaterlevel.
After changing the splash code this looks necessary.
2017-04-22 15:52:24 +02:00
Christoph Oelckers
882279d600 - clamp the loop end point to the sample size for sound effects so that bogus values do not render the loop start ineffective. 2017-04-22 15:49:39 +02:00
Christoph Oelckers
dc3df4e897 - remove mod_dumb CVAR. This now effectively disabled module playback because the OpenAL backend cannot substitute for it, unlike FMod. 2017-04-22 10:59:52 +02:00
alexey.lysiuk
ecbfb255f7 Fixed handling of default values in EventHandler.SendNetworkEvent() 2017-04-22 10:28:53 +03:00
alexey.lysiuk
370b639ab1 Fixed crash on returning to title screen
https://mantis.zdoom.org/view.php?id=615
2017-04-22 09:58:38 +03:00
Rachael Alexanderson
b2ba7a4e18 Merge https://github.com/coelckers/gzdoom 2017-04-21 18:15:48 -04:00
alexey.lysiuk
4e1e527b2c Fixed compilation with Clang
src/sound/oalsound.cpp:1288: error: non-constant-expression cannot be narrowed from type 'uint32_t' (aka 'unsigned int') to 'ALint' (aka 'int') in initializer list [-Wc++11-narrowing]
2017-04-21 22:07:06 +03:00
Christoph Oelckers
3ccd4aa0d1 - fixed: The powerup icons did not blink when expiring. 2017-04-21 18:08:30 +02:00
Christoph Oelckers
0ed3ee6267 - updated the license in fmopl.cpp to the one in the current version of the original file. 2017-04-21 17:48:40 +02:00
Christoph Oelckers
f7a22154b7 - fixed: loop_end needs a different default in the sound effect code than in the music code. 2017-04-21 16:25:36 +02:00
Christoph Oelckers
b3f3500ce5 - added loop tag reading for Ogg and Flac sound effects. Due to lack of test material this is currently untested.
- removed unaligned memory access in FindLoopTags.
2017-04-21 12:29:50 +02:00
Christoph Oelckers
66b5c26352 - consider the volume control of all Windows MIDI mapper devices broken, because it may be the GS synth, which is not detectable. 2017-04-21 10:37:03 +02:00
Rachael Alexanderson
11ec35b061 Merge https://github.com/coelckers/gzdoom 2017-04-20 21:04:33 -04:00
alexey.lysiuk
c681d6eff0 Fixed applying of multiple pain chances
https://mantis.zdoom.org/view.php?id=608
2017-04-20 22:09:18 +03:00
alexey.lysiuk
e19f6fe8ea Final touch in fixing restart CCMD
https://mantis.zdoom.org/view.php?id=595
2017-04-20 16:20:51 +03:00
alexey.lysiuk
403634c0e1 Fixed crash caused by failure to allocate memory block of very special size
Allocation of 810 FState objects (32400 bytes in total) could be performed in MSVC x64 build but worked in 32-bit version
This fixes https://mantis.zdoom.org/view.php?id=602
2017-04-19 17:52:43 +03:00
ZZYZX
29402ff685 ZScript version of SetCameraToTexture 2017-04-19 11:20:17 +02:00
Christoph Oelckers
1f69a000df - removed redundant sound includes. 2017-04-18 20:55:40 +02:00
alexey.lysiuk
00dc649cc2 Fixed compilation with Clang
error: cannot pass object of non-trivial type 'FString' through variadic constructor; call will abort at runtime [-Wnon-pod-varargs]
2017-04-18 18:46:53 +03:00
Rachael Alexanderson
5d11c9962b Merge commit '8db239d' 2017-04-18 11:33:52 -04:00
Christoph Oelckers
42a34ddd58 - fixed: The menu descriptors were not cleared on restart, leaving some menu data behind. 2017-04-18 16:54:06 +02:00
Christoph Oelckers
8180d34765 - added user configurable menus where soundfonts, patch sets or Timidity EXEs can be selected from lists being stored in the config file to reduce the hassle of testing MIDIs with different settings. 2017-04-18 16:43:07 +02:00
Christoph Oelckers
fb12c58533 - restart the music if the OPL core or the config file for the softsynths is changed, except for the GUS synth, which loads all its data during engine startup and cannot swap it out.
- added arrays to the config to hold entries for the softsynths' config files. This is not active yet, but will later be used to give the user a list of config options instead of having to type it by hand.
2017-04-18 16:43:07 +02:00
alexey.lysiuk
8db239d34f Fixed build with NO_OPENAL defined
https://mantis.zdoom.org/view.php?id=596
2017-04-18 16:40:31 +03:00
alexey.lysiuk
1d84b28fc2 Added support for bool type in SetUserVariable() ACS function
https://mantis.zdoom.org/view.php?id=462
2017-04-18 15:37:45 +03:00
alexey.lysiuk
b6774e723b Fixed non-functional XInput support when built with modern Windows SDKs
https://mantis.zdoom.org/view.php?id=568
2017-04-18 10:42:05 +03:00
alexey.lysiuk
03b77c0505 Set names for mpg123 and sndfile macOS dynamic libraries 2017-04-17 19:21:57 +03:00
alexey.lysiuk
a7cb7bbb9c Backported changes from newer sndfile.h to fix non-MSVC compilation 2017-04-17 18:51:29 +03:00
Christoph Oelckers
7405f541e8 - allow dynamic loading of all sound related libraries without providing any SDK at all.
The needed headers are now included in the repo, which for these libraries is possible thanks to a stable ABI (at least on Windows, the other platforms still need to be checked but the headers only add, never remove or change existing content.)
The big advantage of this setup is that it allows building the project on Windows without any necessary setup - all that needs to be provided is the DLLs from the binary package.
This still requires some fixes for macOS and Linux. On MacOS the proper library names are missing and the ones for Linux are not verified. Both platforms should work, though, if the dynamic loading is disabled.
2017-04-17 17:05:09 +02:00
Christoph Oelckers
a48a3d0abf - fixed some signedness warnings in OPL code. 2017-04-17 15:37:45 +02:00
Christoph Oelckers
96d328de9b - removed all Doom Source license and all default Raven copyright headers and replaced them with GPLv3. Also fixed the license in a few other files.
For some files that had the Doom Source license attached but saw heavy external contributions over the years I added a special note to license all original ZDoom code under BSD.
2017-04-17 13:33:19 +02:00
Christoph Oelckers
57d703236b - changed Doom source license to GPL in all subdirectories and fixed missing licenses in a few other files. 2017-04-17 12:27:19 +02:00
Christoph Oelckers
b68741b17f - removed the special conditions of the FraggleScript license, now that they are no longer needed. Also relicensed the two original files under the GPL for consistency. 2017-04-17 10:31:25 +02:00
Christoph Oelckers
33ee761b37 - fixed: The timing of Heretic's lava damage was not correct. 2017-04-17 10:10:09 +02:00
alexey.lysiuk
59626cf843 Simplified transition to OpenAL sound backend 2017-04-17 10:46:38 +03:00
alexey.lysiuk
4519ab12e9 Fixed compilation errors
src/sound/oplsynth/musicblock.cpp:3:10: fatal error: 'muslib.h' file not found
src/sound/oplsynth/oplio.cpp:410:12: error: use of undeclared identifier 'cos'
src/sound/oplsynth/oplio.cpp:410:41: error: use of undeclared identifier 'sin'
2017-04-17 10:27:11 +03:00
Christoph Oelckers
c219811a54 - removed FMod as the last remaining piece of code that is not GPL compatible.
Please consider GZDoom as licensed under the GPL starting with this commit, even though the license headers have not been changed yet.
2017-04-17 01:06:54 +02:00
Christoph Oelckers
79ed1f73e7 - some minor cleanup, including renaming some data structutrd in the OPL code. 2017-04-17 00:46:27 +02:00
Christoph Oelckers
ba5721f98a - rewrote the OPL middle layer to remove the MusLib code.
The new version keeps the non-MusLib code of both files and replaces most of the rest with code from Chocolate Doom.
2017-04-17 00:39:03 +02:00
Christoph Oelckers
4f67dc4f01 - fixed: DCorpsePointer's constructor was doing nasty stuff while the object wasn't fully set up yet. 2017-04-15 19:07:13 +02:00
Christoph Oelckers
47bcd8aaa2 - added per-layer translucency support to the OpenGL PSprite drawer. 2017-04-15 17:25:46 +02:00
Major Cooke
259e3127fe - Fixed crash with corpse queueing. 2017-04-15 16:43:40 +02:00
Christoph Oelckers
1ee9256842 - did a complete workover of the weapon sprite translucency code that got inherited from QZDoom.
This was very poorly done without ever addressing the issues a composite render style can bring, it merely dealt with the known legacy render styles.
The same, identical code was also present in two different places.
The oversight that AlterWeaponSprite overrode even forced styles was also fixed.

OpenGL is not implemented yet but with the problems eliminated should be doable now.
2017-04-15 16:41:00 +02:00
Christoph Oelckers
046e250f2e - fixed: Ceiling_CrushStop checked the wrong argument for the remove parameter. 2017-04-15 14:54:43 +02:00
Christoph Oelckers
2d0da4fcfa - fixed: Dynamic arrays of objects in structs were not registered for garbage collection. 2017-04-15 13:20:58 +02:00
Christoph Oelckers
069e4e9b0b - allow tag == 0 for backside activation on a few more actions. 2017-04-15 12:03:21 +02:00
Christoph Oelckers
e333e31410 - fixed: Vector array elements failed to allocate the proper amount of registers. 2017-04-15 12:03:21 +02:00
alexey.lysiuk
490fd8f3a0 Fixed applying of multiple damage factors
https://mantis.zdoom.org/view.php?id=586
2017-04-15 12:33:26 +03:00
Rachael Alexanderson
997a62de36 Merge https://github.com/coelckers/gzdoom 2017-04-14 23:09:21 -04:00
Christoph Oelckers
edebea4f8d - allow specifying a custom class for message box display. 2017-04-14 23:28:54 +02:00
Christoph Oelckers
ca1981c52f - fixed missing null pointer check in BuiltinNameToClass. 2017-04-14 23:06:12 +02:00
Christoph Oelckers
c73b71807b - fixed: During hub travel, static thinkers may not be deserialized.
Since they are static, the version that got carried over from the last level will still be there and the more current version.
2017-04-14 22:06:29 +02:00
Christoph Oelckers
3d8821ee82 - make polyobject setup errors not abort the map. 2017-04-14 20:27:46 +02:00
Christoph Oelckers
d014395dae - do not delete the namespaces when removing compiler symbols. They still get referenced by some types and must remain until the engine shuts down. 2017-04-14 19:40:50 +02:00
Christoph Oelckers
7186342221 - do not try to serialize static arrays. 2017-04-14 19:25:47 +02:00
Christoph Oelckers
d03c33f393 - added Translation.GetID. 2017-04-14 17:40:05 +02:00
alexey.lysiuk
2add60a4c4 Single RUNTIME_CLASS() macro for classes and templates
The main purpose of this is to fix compilation errors with GCC/Clang
src/dobject.h:87:48: error: expected primary-expression before ‘)’ token
2017-04-14 18:07:20 +03:00
Christoph Oelckers
cde450dd8a - some enhancements for PowerReflection. 2017-04-14 16:51:11 +02:00
Christoph Oelckers
329c168cc2 - added a distance parameter to A_SprayDecal. 2017-04-14 16:28:54 +02:00
Christoph Oelckers
92acbdc625 - made GetClassName an intrinsic and expanded it to also work on class types. 2017-04-14 16:14:27 +02:00
Christoph Oelckers
1135f154b7 - fixed: For Screen.SetClipRect, -1 is a valid value for width and height so it must not be clamped away. 2017-04-14 15:41:36 +02:00
Christoph Oelckers
47bb29bac6 - check the return value of ogl_LoadFunctions and abort if it indicates failure.
If this happens there is normally something very wrong on the system side so continuing is not advised.
2017-04-14 15:32:04 +02:00
Christoph Oelckers
7983f6ea4f - fixed incorrect return variable. 2017-04-14 15:23:18 +02:00
alexey.lysiuk
fd07b56ae9 Fixed link error for MSVC x64 build with modern Windows SDK
win32video.obj : error LNK2001: unresolved external symbol IID_IDirectDraw2
2017-04-14 16:13:51 +03:00
Christoph Oelckers
33145610b1 - let's better add a null check to Create<> in case allocation or construction fails. Although unlikely it's not impossible. 2017-04-14 13:48:00 +02:00
Christoph Oelckers
cd180d29c7 - block direct use of 'new' for DObjects.
This is to ensure that the Class pointer can be set right on creation. ZDoom had always depended on handling this lazily which poses some problems for the VM.
So now there is a variadic Create<classtype> function taking care of that, but to ensure that it gets used, direct access to the new operator has been blocked.

This also neccessitated making DArgs a regular object because they get created before the type system is up. Since the few uses of DArgs are easily controllable this wasn't a big issue.

- did a bit of optimization on the bots' decision making whether to pick up a health item or not.
2017-04-14 13:31:58 +02:00
Rachael Alexanderson
4b2b2af63e Merge https://github.com/coelckers/gzdoom 2017-04-14 05:51:36 -04:00
Christoph Oelckers
929affa3cb - removed MarkACSThinker.
The global variable holding a pointer to this thinker should be a weak reference to the instance in the thinker chain, there is no need to mark this global variable, as the thinker's lifetime is only determined by the thinker chain.

- committed a few Posix related file the last commit missed.
2017-04-14 10:59:57 +02:00
Christoph Oelckers
dc5a5419fc - took DCanvas and all its subtypes out of the DObject tree.
I have no idea why they were even in there, as they intentionally circumvented all GC related features - they declared themselves fixed if prone to getting collected, they all used OF_YesReallyDelete when destroying themselves and they never used any of the object creation or RTTI features, aside from a single assert in V_Init2.

Essentially they were a drag on the system and OF_YesReallyDelete was effectively added just to deal with the canvases which were DObjects but not supposed to behave like them in the first place.
2017-04-14 10:48:18 +02:00
Rachael Alexanderson
93564078fe Merge https://github.com/coelckers/gzdoom 2017-04-14 01:05:26 -04:00
Magnus Norddahl
d407aa3157 - Fix linear filtering bug for sprites 2017-04-13 22:16:26 +02:00
Christoph Oelckers
b1057cee36 - fixed: do not draw armor on the fullscreen HUD if the amount is 0. 2017-04-13 20:43:17 +02:00
Christoph Oelckers
2d098e99fb - fixed: WP_NOCHANGE had different values in native and script code, resulting in problems with weapon selection.
This now explicitly allocates a single object it can safely point to instead of trying to hack around it.
2017-04-13 18:59:45 +02:00
Christoph Oelckers
98dab9c4b9 - took PTypeBase and all its subclasses out of the DObject hierarchy.
- moved scope flag to a new variable that is specific to PType instead of hijacking the ObjectFlags for this.
2017-04-13 17:47:17 +02:00
Rachael Alexanderson
2c4552da42 Merge https://github.com/coelckers/gzdoom 2017-04-13 10:09:47 -04:00
Christoph Oelckers
988fe8d735 - removed all RTTI from the type table.
Using names is just as good as using types so now this is what's done.
2017-04-13 16:01:38 +02:00
Christoph Oelckers
aeb455d705 - removed all RTTI checks for the types. 2017-04-13 15:38:06 +02:00
Christoph Oelckers
b2d944974e - first stage of simplifying the type system.
Let's use inline checkers in PType instead of constantly having to do clumsy IsKindOf checks etc. Once complete this also means that the types can be taken out of the class hierarchy, freeing up some common names.
2017-04-13 12:52:18 +02:00
Christoph Oelckers
522ce59be2 - use in-class initialization for FLightDefaults to avoid uninitialized variables in the future. 2017-04-13 12:50:43 +02:00
alexey.lysiuk
cced9e014b Fixed issue with actors occasionally unaffected by dynamic lights
https://mantis.zdoom.org/view.php?id=536
2017-04-13 13:14:33 +03:00
alexey.lysiuk
fbc1028d2b Fixed crash when parsing DECORATE constant expressions 2017-04-13 12:06:59 +03:00
alexey.lysiuk
cbf2a21c83 Fixed registration of tentative classes 2017-04-13 12:03:45 +03:00
alexey.lysiuk
c99cecea8e Fixed warnings reported by GCC/Clang
src/p_pspr.cpp:363:37: warning: more '%' conversions than data arguments [-Wformat]
src/gl/textures/gl_texture.cpp:845:21: warning: comparison of integers of different signs: 'int' and 'unsigned int' [-Wsign-compare]
2017-04-13 10:40:44 +03:00
alexey.lysiuk
1889efa814 Fixed build with Clang
Fixed bunch of compilation errors:
cannot pass non-trivial object of type 'FString' to variadic method; expected type from format string was 'char *' [-Wnon-pod-varargs]

Fixed linker erorr:
g_doomedmap.cpp.o: In function `InitActorNumsFromMapinfo()':
src/g_doomedmap.cpp: undefined reference to `PClass::FindActor(FName)'
2017-04-13 10:40:43 +03:00
Rachael Alexanderson
a15031706d Merge https://github.com/coelckers/gzdoom 2017-04-12 20:33:38 -04:00
Christoph Oelckers
1712667ce2 Merge branch 'master' of https://github.com/coelckers/gzdoom 2017-04-13 02:18:16 +02:00
Christoph Oelckers
85d8244d03 - fixed: With the reorganization of the class data the setup of actor replacements must be delayed until after InitializeDefaults has been called. 2017-04-13 02:18:06 +02:00
Christoph Oelckers
6599e2c425 - moved the VM types into their own file and only include it where really needed. 2017-04-13 01:12:04 +02:00
Christoph Oelckers
3e47f00ba0 - the new order requires manual deletion of all class descriptors. 2017-04-12 22:57:14 +02:00
Christoph Oelckers
fc9e304189 - separated class descriptors from VM types.
Combining these two groups of data has been the cause of many hard to detect errors because it allowed liberal casting between types that are used for completely different things.
2017-04-12 22:46:49 +02:00
Christoph Oelckers
afd6743965 - moved AddNativeField to PSymbolTable, too. 2017-04-12 18:29:58 +02:00
Christoph Oelckers
8dc11317dd - Moved WriteFields into SymbolTable as well. 2017-04-12 17:42:10 +02:00
Christoph Oelckers
96631e8808 - make PClass not inherit from PStruct.
Having these two types related can cause problems with detection in the compiler because for some parts they need quite different handling.
Common handling for the fields has been moved into PSymbolTable but overall redundancy was quite minor as both types share surprisingly little functionality.
2017-04-12 17:21:13 +02:00
alexey.lysiuk
20a9f17a15 Fixed handling of count parameter's default value in Array.Delete()
https://mantis.zdoom.org/view.php?id=571
2017-04-12 17:40:17 +03:00
Christoph Oelckers
0d7b7d6ab1 - merged PStruct and PNativeStruct.
There were exactly 4 places in the code that checked for the difference, this is better done with a flag.
2017-04-12 15:12:41 +02:00
Christoph Oelckers
63eb3e331e - un-const-ify some functions. 2017-04-12 14:40:29 +02:00
Christoph Oelckers
abc4481431 - set PointedType to null for PClassPointer to simplify the functions for this class. 2017-04-12 13:11:59 +02:00
Christoph Oelckers
6308251084 - added a FindSymbol wrapper to PClass so that other code does not need to access the symbol table directly.
- added an isActor utility function to codegen.cpp to simplify a few constructs.
2017-04-12 13:08:41 +02:00
Christoph Oelckers
b17ab7a133 - put PObjectPointer to some use.
- fixed: There was no check for compatible class pointers.
2017-04-12 11:40:40 +02:00
Christoph Oelckers
bc486904cd - split PPointer into PPointer and PObjectPointer.
A pointer to an object has quite different semantics so let's do this with proper virtual inheritance. This should allow to simplify a lot of pointer related checks in the compiler.
2017-04-12 10:52:54 +02:00
Christoph Oelckers
80801d11b1 - removed some redundant static_casts. 2017-04-12 10:29:04 +02:00
Christoph Oelckers
9c9b2ccf6d - replaced more dyn_casts and checks for RUNTIME_CLASS(PClassActor)
It is preferable to use IsDescendantOf wherever possible if we ever want to be able to separate PClass from PType.
2017-04-12 10:20:58 +02:00
Christoph Oelckers
5350721ec5 - removed PClass::DeriveData because it is no longer needed.
- fixed: IsVisibleToPlayer and optimized it a bit more.
- moved SourceLumpName to PClass, so that it can also be used for non-actors (there's a lot of non-Actor classes already.)
- separated the serializer for PClassPointer from PPointer. Even though not doable, a pointer to a class type is something entirely different than a class pointer with a restriction so each should handle its own case.
2017-04-12 09:55:27 +02:00
Rachael Alexanderson
d5ad0b5b42 Merge https://github.com/coelckers/gzdoom 2017-04-11 21:48:17 -04:00
Magnus Norddahl
df8fa1274a - Oops, forgot to actually disable vid_glswfb in last commit 2017-04-12 03:22:38 +02:00
Magnus Norddahl
96834fa524 - Turn off vid_glswfb, gl_es on Linux ARM and stop saving it in the config file until it fully works 2017-04-12 03:21:43 +02:00
Christoph Oelckers
0e0eca0e0f - replaced some dyn_casts with calls to FindActor.
- fixed type checks in A_Morph.
2017-04-12 01:29:51 +02:00
Christoph Oelckers
e4d2380775 - moved all remaining fields from PClassActor to FActorInfo.
- added a few access functions for FActorInfo variables.

With PClassActor now empty the class descriptors can finally be converted back to static data outside the class hierarchy, like they were before the scripting merge, and untangle the game data from VM internals.
2017-04-12 00:07:41 +02:00
Christoph Oelckers
854053a14f - use TArrays instead of TMaps to store damage factors and pain chances.
For these fields maps have no advantage. Linearly searching a small array with up to 10 entries is nearly always faster than generating a hash for finding the entry in the map.
2017-04-11 23:29:37 +02:00
Christoph Oelckers
4afe2d4218 - moved OwnedStates and NumOwnedStates out of PClassActor. 2017-04-11 22:44:35 +02:00
Christoph Oelckers
05240ccbe5 - fixed redundant reallocation of constructable meta fields.
- some optimization of access to OwnedStates in old DECORATE.
- consolidate all places that print a state name into a subfunction.
- allocate states from the ClassDataAllocator memory arena. States do not need to be freed separately from the rest of the static class data.
2017-04-11 21:48:41 +02:00
Rachael Alexanderson
7040bc2156 Merge https://github.com/coelckers/gzdoom 2017-04-11 14:06:13 -04:00
Christoph Oelckers
311ce2362a - started moving stuff out of PClassActor into meta data.
This reinstates the old FActorInfo as part of the meta data a class can have so that the class descriptor itself can be freed from any data not directly relevant for managing the class's type information.
2017-04-11 19:37:56 +02:00
Christoph Oelckers
6a3ddaa8fa - moved Restricted/ForbiddenToPlayerClass fully to the script side.
This required some fixes for allowing to read from metadata arrays.
2017-04-11 15:11:13 +02:00
Christoph Oelckers
45691e91c9 - removed PClassActor::PointerSubstitution.
This is not needed anymore because classes do not need to be replaced. The only reason this was implemented was the original design with the class descriptors taking on all the metadata themselves.
2017-04-11 14:03:49 +02:00
Christoph Oelckers
1febf277af - fixed crash on bad PNGs.
The cast to a signed long could create negative numbers which failed the sanity check and caused a stack corruption.
2017-04-11 10:29:52 +02:00
Magnus Norddahl
f049e6145b - remove all usage of std::make_unique to keep things C++11 compliant 2017-04-11 01:25:44 +02:00
Magnus Norddahl
bdf02ea67c - move masked reads 2017-04-11 01:11:30 +02:00
Christoph Oelckers
7a6e70e777 - reenabled the part of OP_THROW that throws a VMAbortException. This part is still needed for a runtime variable access check. 2017-04-11 00:11:36 +02:00
alexey.lysiuk
4c1e03ebff Fixed alignment issue with GCC/Clang i386 build 2017-04-10 22:20:34 +03:00
alexey.lysiuk
d5edd3db36 Commented out remains of VM exception handling opcodes
This fixes build with GCC/Clang
2017-04-10 22:18:43 +03:00
Christoph Oelckers
040c70714c - commented out the exception handling opcodes in the VM.
They are currently not used and not planned to be used - and they are rather costly by increasing stack size per call quite significantly.
2017-04-10 20:41:55 +02:00
Christoph Oelckers
9ae97502be - removed the last remnants of the ATAGs. 2017-04-10 17:08:52 +02:00
Christoph Oelckers
60dd58e7d2 - most ATAG stuff is gone, except for the static storage space in the VMFunction. 2017-04-10 16:06:18 +02:00
Christoph Oelckers
5464336035 - removed ATAGs from the function builder. 2017-04-10 15:48:27 +02:00
Christoph Oelckers
e551ef52f8 - removed atag parameter from GetConstantAddress. 2017-04-10 15:39:04 +02:00
Christoph Oelckers
ef77cbd295 - stop using the ATAGs for checking pointer types in asserts.
This is an incredibly costly way to do a debug check as it infests the entire VM design from top to bottom. These tags are basically useless for anything else but validating object pointers being passed to native functions (i.e. mismatches between definition and declaration) and that simply does not justify a feature that costs execution time in non-debug builds and added memory overhead everywhere.
Note that this commit does not remove the tags, it only discontinues their use.
2017-04-10 15:18:31 +02:00
alexey.lysiuk
175e784b67 Fixed applying of powerup effects after (un)morph
https://mantis.zdoom.org/view.php?id=556
2017-04-10 15:46:30 +03:00
alexey.lysiuk
287a0933bd Fixed lookup of inventory and ammo types in FraggleScript
https://forum.zdoom.org/viewtopic.php?t=55950
2017-04-10 11:58:53 +03:00
Rachael Alexanderson
00531cda49 Merge https://github.com/coelckers/gzdoom 2017-04-09 11:53:40 -04:00
Christoph Oelckers
e1698c6d41 - split P_PlayerThink into several smaller functions.
This is for a future script export where overriding the actions separately may be interesting.
2017-04-08 15:45:11 +02:00
Christoph Oelckers
18d6fb7f49 - fixed: USEACTORPITCH in the model code was still using inverted pitch. 2017-04-08 10:24:12 +02:00
Rachael Alexanderson
cecf41e4d0 Merge https://github.com/coelckers/gzdoom 2017-04-07 21:50:23 -04:00
Magnus Norddahl
9f180b29b9 - Remove GL_MAJOR_VERSION check for OpenGL ES as apparently not even this can be done right by driver writers 2017-04-08 00:19:39 +02:00
Rachael Alexanderson
a90692330b Merge https://github.com/coelckers/gzdoom 2017-04-07 09:55:00 -04:00
Rachael Alexanderson
3a36ffee35 - vid_glswfb is now true by default in Linux 2017-04-07 09:53:59 -04:00
Magnus Norddahl
73effc70bb - The legacy OpenGL path resets the GLSL version, which in turn makes #version 0 crash the AMD driver. Old stuff that uses the legacy path will not get glswfb acceleration. 2017-04-07 15:45:08 +02:00
Magnus Norddahl
35c35fc26f - Check if glCreateProgram or glCreateShader fails, because apparently AMD found a way to make exactly that happen 2017-04-07 15:27:04 +02:00
Rachael Alexanderson
51f30a8b1e Merge https://github.com/coelckers/gzdoom 2017-04-06 23:55:20 -04:00
Rachael Alexanderson
b1e1f25218 - detect gl es shaders and request them 2017-04-06 23:34:50 -04:00
Magnus Norddahl
85a9984807 - Add OpenGL ES 3 support to GL renderer 2017-04-06 23:34:42 -04:00
Magnus Norddahl
b7482e10e2 - Detect dinosaur OpenGL and refuse to use it 2017-04-06 23:34:37 -04:00
Magnus Norddahl
e690de25a8 - Use SDL_GL_GetProcAddress on platforms where the SDL is being used. Since SDL initialized OpenGL for us, it is the only reliable way of retrieving proc addresses.
- Check if ogl_LoadFunctions failed and make OpenGLSWFrameBuffer gracefully recover from that
2017-04-06 23:33:56 -04:00
Rachael Alexanderson
dc1695918e - detect gl es shaders and request them 2017-04-06 23:29:15 -04:00
Magnus Norddahl
994740b3ae - Add OpenGL ES 3 support to GL renderer 2017-04-07 04:09:04 +02:00
Magnus Norddahl
a9591f57a6 - Detect dinosaur OpenGL and refuse to use it 2017-04-07 03:03:21 +02:00
Magnus Norddahl
0376d4e8fc - Use SDL_GL_GetProcAddress on platforms where the SDL is being used. Since SDL initialized OpenGL for us, it is the only reliable way of retrieving proc addresses.
- Check if ogl_LoadFunctions failed and make OpenGLSWFrameBuffer gracefully recover from that
2017-04-07 02:17:34 +02:00
Christoph Oelckers
74faacd218 - fixed: FxVMFunctionCall::GetDirectFunction did not perform any checks on the function's self pointer and failed to report a mismatch as an error.
- also fixed two places in the code where the above caused some incorrect definitions not to be detected.
2017-04-06 20:52:38 +02:00
Rachael Alexanderson
a1473c48c3 Merge https://github.com/coelckers/gzdoom 2017-04-06 04:30:38 -04:00
alexey.lysiuk
ca4888eb3d Added CVar.GetCVar() function to do player-dependent console variables lookup 2017-04-06 10:51:36 +03:00
alexey.lysiuk
26e4b74261 Restored initial behavior of CVar.FindCVar()
https://mantis.zdoom.org/view.php?id=537
2017-04-06 10:50:40 +03:00
alexey.lysiuk
ac5e516148 Removed obsolete forward declaration 2017-04-06 10:39:53 +03:00
Magnus Norddahl
1312e9fb72 - fix linker error on platforms with no SSE support 2017-04-05 22:36:57 +02:00
alexey.lysiuk
a27ab73f33 Fixed broken dialogue customization in USDF parser
https://mantis.zdoom.org/view.php?id=539
2017-04-05 13:43:49 +03:00
Rachael Alexanderson
c06bd028d9 Merge https://github.com/coelckers/gzdoom 2017-04-05 00:53:00 -04:00
alexey.lysiuk
dd30d2a045 DEHACKED lumps from IWAD now have precedence over embedded lumps and separate files
See https://forum.drdteam.org/viewtopic.php?t=7588

Processing order is now the same as in Chocolate Doom
prBoom+ loads separate files after all WAD lumps though
This makes sense but would change loading sequence existed in ZDoom for years
2017-04-04 12:20:12 +03:00
Rachael Alexanderson
5851408803 Merge https://github.com/coelckers/gzdoom 2017-04-04 01:29:14 -04:00
Magnus Norddahl
f12c42d8d1 - add fuzz mode to softpoly 2017-04-04 01:11:55 +02:00
Magnus Norddahl
5c5e3bdcba - change fuzzing to not do any offsetting but keep the shading pattern produced by it 2017-04-03 19:11:38 +02:00
Major Cooke
d3ef3b585b - fixed: Flat sprites did not rotate their sprite angles when given the FLATSPRITE flag. 2017-04-03 17:06:33 +02:00
Rachael Alexanderson
12d39c74ef Merge https://github.com/coelckers/gzdoom 2017-04-02 21:38:20 -04:00
Major Cooke
73c1451048 - fixed: The functionality for AddEventHandlers and EventHandlers were backwards. 2017-04-02 19:23:28 +02:00
Christoph Oelckers
e074c75609 - added a generic TransformRect to the status bar so that the proper transformations can be applied to draw operations that require special parameters not supported by the stock functions. 2017-04-02 12:58:31 +02:00
alexey.lysiuk
4cf3e1be2c Removed obsolete workaround for Apple's GCC 4.x from node builder 2017-04-02 11:51:58 +03:00
alexey.lysiuk
bb9cd1b159 Removed special initialization of legacy render styles
Workaround for Apple's GCC 4.0.1 is now completely pointless
2017-04-02 11:41:04 +03:00
alexey.lysiuk
5187acd44f Fixed undefined behavior in drawing of status bar graphics
Debug configuration built with Apple's Clang had bogus render styles applied to graphics in status bar
2017-04-02 11:38:59 +03:00
alexey.lysiuk
659f75c84a Avoid duplication of member in OpenGL software framebuffer class 2017-04-02 10:13:25 +03:00
alexey.lysiuk
63f85f6b07 Fixed compilation of Cocoa backend
Use the same member names in framebuffer class for all backends
2017-04-02 10:11:41 +03:00
Rachael Alexanderson
643bdac514 Merge https://github.com/coelckers/gzdoom 2017-04-02 02:34:32 -04:00
Magnus Norddahl
4268090738 - switch OpenGLSWFrameBuffer to use m_Lock instead of LockCount 2017-04-02 00:47:18 +02:00
Magnus Norddahl
4a9dffa70d - change subsector gbuffer to use a 8x8 block memory layout to avoid having to clip memory reads and writes 2017-04-01 23:21:06 +02:00
Magnus Norddahl
0ed60b8df6 - fix OpenGLSWFrameBuffer::Begin2D 2017-04-01 22:14:04 +02:00
Christoph Oelckers
3f552ea95f - added loop tag reading to the new streaming music class.
This is somewhat brute-force thanks to the surprising lack of good documentation for the Ogg headers. The only other option would have been some rather bloated library for a function that should be 25-30 lines at most.
2017-04-01 21:40:36 +02:00
Christoph Oelckers
dfd3535e02 - added a dedicated player class for streamed music formats (i.e. MP3, Ogg and Flac)
The idea is to have more control on the game side instead of dealing with these formats in the backend, which was done for FMod because it already had the decoders implemented.
However, with OpenAL this setup makes no sense and only complicates future extensions that can be better handled at a higher level.
2017-04-01 19:47:12 +02:00
Magnus Norddahl
4a0b3c3bab - speed up triangle setup slightly 2017-04-01 16:42:24 +02:00
Rachael Alexanderson
2b2297b73e Merge https://github.com/coelckers/gzdoom 2017-04-01 10:11:52 -04:00
Christoph Oelckers
54764c136d - changed the 2D draw abort check to use a dedicated variable, that gets set in Begin2D and unset at the end of D_Display.
This is really all the extent where 2D draw operations may be allowed. Trying to detect this from other variables is not reliable.
2017-04-01 12:59:58 +02:00
Christoph Oelckers
9dc8933109 - let 'stat think' also print the number of active thinkers. 2017-04-01 12:30:38 +02:00
alexey.lysiuk
36ad485edd Proper default value for GL framebuffer lock in Cocoa backend
No more error when running with +map command line parameter with classic HUD:
> VM execution aborted:  Attempt to draw to screen outside a draw function
> Called from BaseStatusBar.DrawImage [Native]
> Called from DoomStatusBar.DrawFullScreenStuff at gzdoom.pk3:zscript/statusbar/doom_sbar.txt, line 140
> Called from DoomStatusBar.Draw at gzdoom.pk3:zscript/statusbar/doom_sbar.txt, line 41
2017-04-01 13:16:31 +03:00
Christoph Oelckers
e780cd8297 - seems the wrong version of this got committed... 2017-04-01 12:04:31 +02:00
Christoph Oelckers
41f2f61b94 - minor VM optimization: Precalculate a function's frame size when compiling it instead of doing it each time it gets called.
This made up ca. 10% of the 'call' instruction's execution time.
2017-04-01 10:42:47 +02:00
alexey.lysiuk
893607c96c Fixed crash in decals handling caused by reference to undefined class
https://forum.drdteam.org/viewtopic.php?t=7589
2017-04-01 10:36:35 +03:00
alexey.lysiuk
59ae50aecb Fixed compilation warning reported by GCC/Clang
src/gl/textures/gl_texture.cpp:691:25: warning: comparison of integers of different signs: 'unsigned int' and 'int' [-Wsign-compare]
2017-04-01 10:24:05 +03:00
Magnus Norddahl
da6bfe65ff - only calculate gradients once 2017-04-01 04:38:15 +02:00
Magnus Norddahl
6db89a2ce1 - clean up the triangle setup functions 2017-04-01 03:44:45 +02:00
Rachael Alexanderson
24b6924428 Merge https://github.com/coelckers/gzdoom 2017-03-31 14:58:45 -04:00
alexey.lysiuk
f48af606df Fixed creation of BaseStatusBar
No more access to memory ouside of class instance
Minimized amount of copy-pasted code

https://mantis.zdoom.org/view.php?id=511
2017-03-31 12:53:28 +03:00
Rachael Alexanderson
bf9edec91a Merge https://github.com/coelckers/gzdoom 2017-03-30 18:04:37 -04:00
Christoph Oelckers
5601364aaf - fixed some issues with Set/GetClipRect. 2017-03-30 21:12:39 +02:00
Christoph Oelckers
228c57fae3 - fixed: Even SBARINFO needs to call the scripted Init method of the status bar because it initializes some data used by the automap HUD. 2017-03-30 19:00:26 +02:00
Christoph Oelckers
91ac6e30fe - fixed: The automap tried to access a variable before it was initialized.
The fix is not ideal but the way this code is used it cannot be done any better.
2017-03-30 18:51:24 +02:00
Christoph Oelckers
3a1228bf95 - exported the clipping rectangle to scripting and added a statusbar scaling wrapper for it.
- fixed: BaseStatusBar.Fill did not pass its flags parameter to the native function.
2017-03-30 12:13:28 +02:00
Christoph Oelckers
a3ef711d1d - added a special slider type for the scaling options that prints a descriptive text instead of the slider for the special settings.
- fixed the adaptive scale calculation in GetUIScale which had the coordinates mixed up.
2017-03-30 11:30:09 +02:00
Rachael Alexanderson
39826753f9 Merge https://github.com/coelckers/gzdoom 2017-03-30 02:11:03 -04:00
Christoph Oelckers
f95c29ad28 cleaned up the scaling options.
- all 5 settings affected by uiscale have been changed to have the exact same semantics: -1, if supported means special scaling, this is available for HUD and status bar, 0 means to use uiscale, any larger value is a direct scaling factor.
- scaling is cut off when the factor is larger than screenwidth/320 or screenheight/200 because anything larger will definitely not fit.
- a lot of code has been cleaned up and consolidated. Especially the message code had an incredible amount of redundancy.
- all scaling options have been moved into a submenu. This menu is not complete, though - it still requires a special menu widget to convey the intended information without confusing the user.
2017-03-30 02:16:23 +02:00
Christoph Oelckers
1dcc017daf - reimplemented the position display, but changed its position a bit upward.
- activated the RenderOverlay event, now that it can be called from the correct spot, i.e. right after the top level HUD messages are drawn. The system's status output will still be drawn on top of them.
2017-03-29 23:51:53 +02:00
Christoph Oelckers
bde73fc530 - added automatic brightmaps.
Everything in the brightmaps/auto directory will automatically be assigned to the same-named texture.
2017-03-29 23:13:11 +02:00
Christoph Oelckers
7011010ff2 - fixed the drain callback.
- changed the effect spawn prevention of the Hexen flame strike weapon and reverted the attempt to fix this in FastProjectile.

This cannot be fixed in the base class, which was doing everything right. It's the flame missile that was doing undefined things by stopping its movement without clearing its missile flag. This cannot work because missiles are given some minimal forced velocity to ensure collision detection and any attempt to address this without clearing the missile flag is doomed to fail.
2017-03-29 22:50:13 +02:00
Christoph Oelckers
3f9ad55432 - allow multiple expressions in 'for' iteration part. 2017-03-29 22:18:52 +02:00
Christoph Oelckers
b38934b532 - fixed declaration of ACS getters for status bar.
- fixed some uninitialized variables in font print code.
2017-03-29 21:54:11 +02:00
Christoph Oelckers
01b095c911 - added colorization for untranslated fonts. This uses the light color of the vertices. The software rendered 2D code will ignore this infomation.
- added a virtual OnRetrun method to menus.
2017-03-29 21:22:05 +02:00
Christoph Oelckers
d36f656caf - added a callback for when damage is drained from a target. 2017-03-29 20:25:54 +02:00
Christoph Oelckers
356144a537 - fixed: The player menu was not able to set the new name because the security check did not account for the text enter menu being present. 2017-03-29 20:11:58 +02:00
Christoph Oelckers
9d1031f0ba - fixed ForcedScale handling in SBARINFO.
Due to the setup it would miss setting it when changing between HUDs.
2017-03-29 20:01:57 +02:00
Christoph Oelckers
401a1e80e8 - fixes typo in actionspecials.h. 2017-03-29 19:24:56 +02:00
Christoph Oelckers
1d4ab0cc2a - implemented proper scaling for the status bar itself.
This allows using the UI scale or its own value, like all other scaling values.
In addition there is a choice between preserving equal pixel size or aspect ratio because the squashed non-corrected versions tend to look odd, but since proper scaling requires ununiform pixel sizes it is an option.

- changed how status bar sizes are being handled.

This has to recalculate all scaling and positioning factors, which can cause problems if the drawer leaves with some temporary values that do not reflect the status bar as a whole.
Changed it so that the status bar stores the base values and restores them after drawing is complete.
2017-03-29 19:23:40 +02:00
Christoph Oelckers
7ba6860102 - scriptified the automap HUD and made it obey hud_scale instead of always being fully scaled. 2017-03-29 14:20:22 +02:00
Christoph Oelckers
2f06c09681 - fixed map name display on the automap HUD
This would cut off overlong names and the handling for status bars with protruding elements was far too simplistic and worse, making assumptions based on game mode.
It now uses a virtual function to query the status bar itself for returning this information so it can be overridden and uses V_BreakLines to split the text if it is wider than the display.
2017-03-29 10:36:16 +02:00
Rachael Alexanderson
9f38b2b107 Merge https://github.com/coelckers/gzdoom 2017-03-28 22:40:40 -04:00
Christoph Oelckers
fabf8451e7 - use Fill to draw Strife's health bars. 2017-03-29 02:24:04 +02:00
Christoph Oelckers
598523a1de - moved all coordinate adjustment for the status bar mode into one function and use this function in all places where status bar related coordinate adjustments need to be performed, also in SBARINFO.
- fixed unscaled status bar placement.
- fixed inventory count display for Doom status bar.
2017-03-29 01:59:03 +02:00
Christoph Oelckers
914c829f79 - added Floor/Ceiling_MoveToValueAndCrush action specials. 2017-03-29 01:25:02 +02:00
Christoph Oelckers
3a569f176d - added GetLineX/GetLineY ACS functions. 2017-03-29 01:02:29 +02:00
Magnus Norddahl
d160424aea - added DFrameBuffer::HasBegun2D to allow scripting to test if 2D drawing is active (instead of using IsLocked, which may return false when vid_hw2d is active) 2017-03-29 00:45:53 +02:00
Christoph Oelckers
054d9a5bcc - allow passing the activator to ScriptCall. 2017-03-29 00:43:12 +02:00
Christoph Oelckers
19e7d60275 - removed DSBarInfo::Scaled because it tended to disagree with StatusBar->Scaled. 2017-03-29 00:35:35 +02:00
Christoph Oelckers
2d1641f0cd - fixed: Reference types passed as a reference parameter were not properly checked for. 2017-03-29 00:00:25 +02:00
Christoph Oelckers
5e3e4a3bd1 - fixed: The wall spliter for 3D lights did not initialize the resulting colormap's fog density value. 2017-03-28 23:36:26 +02:00
Christoph Oelckers
fa893c082b - changed the default for hud_scale to 0 (i.e. use uiscale)
- allow calling Menu.SetMenu from play code so that in-game menus can be opened.
2017-03-28 22:51:37 +02:00
Rachael Alexanderson
9da596cd9c Merge https://github.com/coelckers/gzdoom 2017-03-28 16:29:07 -04:00
Christoph Oelckers
6870efe134 - added a GetCVarString ZScript/DECORATE function.
- fixed: loading a savegame triggered PlayerEntered events.
2017-03-28 21:37:43 +02:00
nashmuhandes
99d1581c27 Added "DontLightActors" flag for dynamic lights. Actors will not be illuminated by lights that are given this flag. 2017-03-28 21:33:16 +02:00
Christoph Oelckers
bdf761e457 - moved th player resurrection code into a player_t method. 2017-03-28 21:29:14 +02:00
Christoph Oelckers
71fe4a83c9 - fixed: the translucent flat drawer used a bad condition for dynamic light processing which caused a problem with the GL 3.x lighting method. 2017-03-28 21:18:03 +02:00
Christoph Oelckers
cd94d0927a - fixed a problems with BeginHUD clobbering gST_Y.
The code involved is a total mess and needs some cleanup.
2017-03-28 20:49:06 +02:00
Magnus Norddahl
e8ba1156af - add rect drawers for softpoly's player sprites 2017-03-28 16:46:22 +02:00
alexey.lysiuk
4716b712b1 Fixed compilation issues with isnan()
Need to do it in pure C++ way to avoid C99 macro at all costs
Tested with CI targets, on Debian Jessie using GCC 4.9 and on Ubuntu 16.04 using GCC 5.4
2017-03-28 17:10:06 +03:00
Christoph Oelckers
e2e17f575c - added safeguards to all 2D drawing functions to throw an exception if used outside a valid 2D draw context.
This is necessary because the hardware accelerated renderers will hide the problem, but with pure software rendering to a locked hardware surface, like DirectDraw can result in a crash.
Note that ANY mod that gets caught in this did something wrong!
2017-03-28 13:25:17 +02:00
Christoph Oelckers
f3db5f3803 - added a clipping rectangle to DCanvas that can be used independently of DrawTexture calls.
Currently this is only being used for draw operations that are not automap related, i.e. DrawLine, DrawPixel and FillSimplePoly are not subjected to it.
2017-03-28 13:06:24 +02:00
Christoph Oelckers
c4c2b440fc Merge branch 'master' of https://github.com/coelckers/gzdoom 2017-03-28 11:00:18 +02:00
Christoph Oelckers
b9485d4edf - ported the Hexen status bar to zscript.
Note that DrawBar with a background texture does not work yet because the clipping rectangle is not done yet.
2017-03-28 11:00:05 +02:00
Magnus Norddahl
d15def7d41 - remove TriVertex::NumVaryings as this did not help on readability at all 2017-03-28 10:52:19 +02:00
Magnus Norddahl
5adf7463cd - support render styles on decals 2017-03-27 21:59:43 +02:00
Magnus Norddahl
0537e9c1ba - implement all styles for sprites in softpoly 2017-03-27 21:03:51 +02:00
Christoph Oelckers
78095460ac Merge branch 'master' of https://github.com/coelckers/gzdoom 2017-03-27 21:01:47 +02:00
Christoph Oelckers
a6bf93c624 - implemented the Heretic status bar. 2017-03-27 21:01:40 +02:00
alexey.lysiuk
020c34abfa Added workaround for undefined isnan()
All our continuous integration targets have no problems with C99 isnan() macro but on Ubuntu 16.04 compilation fails
It appeared that some implementation of C++ Standard Library may undefine bunch of C macros to avoid conflicts with own declarations
2017-03-27 17:06:21 +03:00
Magnus Norddahl
e865ba60f5 - support particle styles in softpoly 2017-03-27 11:33:16 +02:00
alexey.lysiuk
bed559f763 Fixed compilation with GCC/Clang
src/g_statusbar/sbar.h:399:23: error: extra qualification on member 'DrawString'
2017-03-27 11:55:17 +03:00
Magnus Norddahl
ad992d2ffd - add support for choosing the particle style in the software renderer 2017-03-27 10:12:57 +02:00
alexey.lysiuk
5f44bc4d5f Fixed crash in line portal setup
https://mantis.zdoom.org/view.php?id=488
2017-03-27 10:55:51 +03:00
Christoph Oelckers
0fdd118906 - change statusbar drawers to use the top left of the virtual screen as origin, not the top left of the actual status bar, to bring this in line with SBARINFO.
The Strife status bar which was still native code had it differently and that was used as the initial guideline.
2017-03-27 09:52:30 +02:00
Rachael Alexanderson
2338fe7e66 Merge commit 'c8eabe5' 2017-03-26 21:57:23 -04:00
Christoph Oelckers
bc95e5180d - moved the BarShader textures into the texture manager so that ZScript can use them. ZScript only knows about TextureIDs, but those require the texture to be handled by the texture manager. 2017-03-27 01:55:47 +02:00
Christoph Oelckers
bb04eea996 Merge branch 'master' of https://github.com/coelckers/gzdoom 2017-03-27 01:06:28 +02:00
Christoph Oelckers
a112b29c43 - implemented the inventory bar. This object is a bit special because it requires a lot of parameters, most of which are easily set to defaults. To make handling easier, most are passed through a container object which does some processing up front.
- finished work on the Doom status bar. I also took the opportunity to fix the layout of the inventory bar which is a bit broken in SBARINFO.
- tuned the selection rules for deciding what creates the status bar, so that the most recent definition that can be found is chosen.
2017-03-27 01:02:10 +02:00
Christoph Oelckers
e791c957d9 - implemented the regular Doom status bar.
The DOOM status bar and HUD are complete, except the inventory bar.
2017-03-26 22:04:58 +02:00
alexey.lysiuk
c8eabe57ff Fixed compilation warning reported by GCC/Clang
src/v_draw.cpp:503:25: warning: comparison of integers of different signs: 'uint32_t' (aka 'unsigned int') and 'int' [-Wsign-compare]
2017-03-26 22:10:05 +03:00
alexey.lysiuk
e5d4d9a36a Fixed compilation with GCC/Clang
src/swrenderer/line/r_walldraw.cpp:102:13: error: expected unqualified-id before ‘(’ token
2017-03-26 22:10:05 +03:00
Magnus Norddahl
84e94f2a32 - change softpoly psprite drawing to do exactly what the software renderer does 2017-03-26 18:55:23 +02:00
Christoph Oelckers
0cbbd8d4b1 Merge branch 'master' of https://github.com/coelckers/gzdoom 2017-03-26 18:41:44 +02:00
Christoph Oelckers
08b3c38304 - simplified the parameters of the HUD draw functions by moving all booleans into one flags word and ordering them so that the less likely ones to be used can be made optional.
- got rid of the image list in the Doom status bar. The cost of the texture lookup is mostly irrelevant here so clearer and shorter code is preferrable.
- moved the box fitting code from DrawTexture into the native function to have all coordinate calculations in one place which is necessary to implement proper alignment default handling. Without higher level functions altering positioning the default can be set to automatic alignment determination, i.e. the value's sign decides where something is placed. Of course for special cases this can be overridden.
- use ANIMDEFS to animate the inventory arrow,
2017-03-26 18:41:24 +02:00
Magnus Norddahl
a12f0862c9 - remove softpoly intersection math class 2017-03-26 17:12:20 +02:00
alexey.lysiuk
28be42675d Fixed build of SDL backend on macOS 2017-03-26 11:49:23 +03:00
Magnus Norddahl
ffc90f16ab - Simplify the PolyDrawArgs interface 2017-03-26 10:10:55 +02:00
Magnus Norddahl
7b58eab332 - fix softpoly light visibility bug 2017-03-26 05:28:27 +02:00
Christoph Oelckers
488fface50 - started port of Doom status bar to ZScript.
Fullscreen HUD done with the exception of key and inventory bar. I also used the opportunity to make it a bit more resistant against badly designed inventory icons.
2017-03-25 21:40:17 +01:00
Christoph Oelckers
3e67a8bafa - let hud_scale act like an override to uiscale, just like con_scale does.
- better handling of ForceScale for the fullscreen HUD that doesn't mess around with CVARs.
- moved the mug shot into the status bar, because this is global state that needs to be shared between different pieces of code which want to display a mug shot.
- SBARINFO should work off the current status bar settings instead of the ones stored in its script object
2017-03-25 18:32:47 +01:00
Rachael Alexanderson
71ad6c9651 Merge https://github.com/coelckers/gzdoom 2017-03-25 11:19:27 -04:00