Commit Graph

11277 Commits

Author SHA1 Message Date
Christoph Oelckers 822cda652b - fixed: A_FireProjectile was still using the inverted pitch from A_FireCustomMissile it was supposed to correct. 2017-03-13 10:03:42 +01:00
Christoph Oelckers 1fccec32d6 - add limits.h include to vectors.h for FLT_EPSILON. 2017-03-13 09:23:57 +01:00
Christoph Oelckers 60fd79ce23 - some menu reorganization:
* dynamic lights also work in the true color software renderer and have been moved out of the OpenGL menu.
* created a separate software renderer menu and moved all relevant options there.
* delete non-applicable options when running in legacy mode.
* moved the OpenGL preferences menu one level up to eliminate a two-entry GL top level menu.
2017-03-13 01:17:46 +01:00
Christoph Oelckers f9bb64a5f3 - fixed: MIDIStreamer::Update did not check if the device was still valid.
Stopping a song can delete device while the streamer is still valid.
2017-03-13 00:38:59 +01:00
Christoph Oelckers 439e4f9f94 Merge remote-tracking branch 'remotes/origin/3.0_work' 2017-03-13 00:02:16 +01:00
Christoph Oelckers 4965cdfd9a - removed some unused global variables. 2017-03-12 23:56:17 +01:00
Christoph Oelckers d72623b9b5 - eliminated global in_area variable.
Removing this made me realize that calling the renderers' FakeFlat functions from the automap is inherently unsafe with the recent refactorings because there is absolutely no guarantee that the data may actually still be defined when the automap is being drawn.
So the best approach here is to give the automap its own FakeFlat function that runs independently of render data and assumptions of data preservation. This one can also be a lot simpler because it only needs the floor, not the ceiling info.
2017-03-12 23:13:07 +01:00
Magnus Norddahl a663f71a9f - Added thread safety to texture loading in the software renderer 2017-03-12 22:53:20 +01:00
Christoph Oelckers 4c61048278 - moved gl_fixedcolormap into GLSceneDrawer.
This means that one of the most extensively used global variables is gone.
2017-03-12 21:57:39 +01:00
Magnus Norddahl 00f6ed45a2 Make LightVisibility thread local 2017-03-12 20:40:00 +01:00
Christoph Oelckers 61c91f05fc Merge branch '3.0_work'
# Conflicts:
#	src/gl/scene/gl_portal.cpp
#	src/r_plane.cpp
2017-03-12 20:31:34 +01:00
ZZYZX 0176c29ec2 Will not emit OP_SCOPE if self type can be checked at compile time. 2017-03-12 20:27:38 +01:00
ZZYZX 91e83bf3c6 Fixed DECORATE scope for duplicates 2017-03-12 20:27:38 +01:00
ZZYZX bd889cc8f1 Fixed various virtualscope oddities; set scope for DECORATE classes to play. 2017-03-12 20:27:38 +01:00
Christoph Oelckers 438b983ab1 - inlined the 4 remaining short functions of the Plane class and removed gl_geometric.cpp.
# Conflicts:
#	src/CMakeLists.txt

# Conflicts:
#	src/CMakeLists.txt
2017-03-12 20:11:57 +01:00
Christoph Oelckers b52d1c3d50 - some cleanup. 2017-03-12 20:04:46 +01:00
Christoph Oelckers 4cd0d3d454 - removed the Vector class in the GL renderer and replaced all its uses with FVector3.
- optimized the math to get a plane equation from a linedef. The original code used a generic algorithm that knew nothing about the fact that Doom walls are always perfectly vertical. With this knowledge the plane calculation can be reduced to a lot less code because retrieving the normal is trivial in this special case.
- use the SSE2 rsqrtss instruction to calculate a wall's length, because this is by far the most frequent use of square roots in the GL renderer. So far this is only active on x64, it may be activated on 32 bit later as well, but only after it has been decided if 32 bit builds should be x87 or SSE2.

# Conflicts:
#	src/gl/dynlights/gl_dynlight.cpp

# Conflicts:
#	src/g_shared/a_dynlightdata.cpp
2017-03-12 19:59:45 +01:00
Christoph Oelckers ef3421eee5 - moved dynamic lights out of the GL code into the common game code.
Since the true color software renderer also handles them there is no point keeping them on the GL side.
This also optimized how they are stored, because we no longer need to be aware of a base engine which doesn't have them.
2017-03-12 19:57:06 +01:00
Magnus Norddahl 6788b19e89 - stop using PORTSF_INSKYBOX flag in software renderer as it is not thread safe 2017-03-12 19:43:40 +01:00
Magnus Norddahl 3113db798d Debug build compile fix 2017-03-12 19:10:52 +01:00
Magnus Norddahl 5bcdc7d889 Fix compile error on Linux 2017-03-12 18:56:48 +01:00
Magnus Norddahl 5fdbbc4f9e Remove usage of r_viewpoint and r_viewwindow globals from software renderer and poly renderer 2017-03-12 18:54:39 +01:00
alexey.lysiuk 23130678a1 Fixed compilation errors and warnings in Mac PowerPC target
Tested with GCC 5.2 on 10.4 (32-bit only) and Clang from Xcode 8.2 on 10.12 (64-bit only)
2017-03-12 16:27:02 +02:00
alexey.lysiuk b398c7458c Do not draw crosshair on automap with alternative HUD enabled 2017-03-12 08:57:25 -04:00
Christoph Oelckers e7330cfa03 - all main functions in gl_scene.cpp now belong to the new GLSceneDrawer class. 2017-03-12 12:51:26 +01:00
Christoph Oelckers e4d7d9de8b - moved several more functions from FGLRenderer to GLSceneDrawer. 2017-03-12 12:03:54 +01:00
Christoph Oelckers 90c42519b7 - fixed changed variable inside an assert that apparently got overlooked because it got only compiled as release. 2017-03-12 01:59:41 +01:00
Christoph Oelckers 64183fc3cd - moved GL texture precaching to gl_texture.cpp. 2017-03-12 01:49:44 +01:00
Christoph Oelckers 9b33d1dd18 Merge branch 'scene_multithreaded' of https://github.com/raa-eruanna/qzdoom into 3.0_work
# Conflicts:
#	src/gl/scene/gl_clipper.cpp
#	src/gl/scene/gl_portal.cpp
#	src/gl/scene/gl_scene.cpp
#	src/swrenderer/scene/r_scene.cpp
2017-03-12 00:38:55 +01:00
Rachael Alexanderson 0f61197bae - Forbade return scripts from triggering on save load. 2017-03-12 00:22:59 +01:00
Magnus Norddahl c79051126e Fix ssao being applied to skybox portals 2017-03-12 00:22:58 +01:00
Christoph Oelckers 0aa0db637c - started adding a SceneDrawer class to the OpenGL renderer.
This will eventually hold all the global variables for the rendering.
2017-03-12 00:19:20 +01:00
Rachael Alexanderson bfc8c614a0 - Forbade return scripts from triggering on save load. 2017-03-11 17:39:57 -05:00
Magnus Norddahl 0c9014b984 - move r_utility globals into r_viewpoint and r_viewwindow
- change r_utility functions to only work on FRenderViewpoint and FViewWindow
2017-03-11 23:28:07 +01:00
Christoph Oelckers 8e2ebe15fe - removed several unused variables from OpenGLFrameBuffer.
- removed the LastCamera logic in RenderView. This code predates the first GZDoom release and apparently was only added because back then R_SetupFrame was not fully compatible with the hardware renderer. Today it is not needed anymore.
2017-03-11 21:10:21 +01:00
Christoph Oelckers 9e70771da3 - Added a check to allow shader storage buffers on GL 4.3 Intel drivers. It doesn't work if GLSL version is set to 4.0 and the feature activated via extension. 2017-03-11 20:14:18 +01:00
Christoph Oelckers 9eae422dab Merge branch 'shadowmaps' of https://github.com/raa-eruanna/qzdoom into 3.0_work
# Conflicts:
#	src/CMakeLists.txt
#	wadsrc/static/language.enu
2017-03-11 19:55:43 +01:00
Christoph Oelckers 28aba3469d - missed 2 includes 2017-03-11 19:18:31 +01:00
Christoph Oelckers 921abc404d - fixed GCC warnings and errors
(Is there anyway to tone down GCC's warning level? It outputs too many false positives for potentially uninitialized variables in which the genuine errors get drowned.)
2017-03-11 19:02:35 +01:00
Magnus Norddahl 77a388e908 Fix default palette for voxel BGRA slab data and support translated 8-bit slab data in true color mode 2017-03-11 18:31:53 +01:00
Christoph Oelckers 756e6432c0 - missed a typo. 2017-03-11 18:26:56 +01:00
Christoph Oelckers 7d6cd2ac83 - fixed some issues with the AudioToolboxMIDIDevice interface that got broken by yesterday's changes. 2017-03-11 18:17:08 +01:00
Magnus Norddahl 38ad6ce6b7 Fix ssao being applied to skybox portals 2017-03-11 17:20:06 +01:00
Rachael Alexanderson d868f79413 - fixed: Froze on startup on Linux. 2017-03-11 11:04:37 -05:00
Rachael Alexanderson 81291e6892 - fixed: Clang on Linux compile 2017-03-11 11:01:30 -05:00
Christoph Oelckers 355bbf4829 - removed debug output from recent translation additions. 2017-03-11 14:58:59 +02:00
alexey.lysiuk b8ba2d20e5 Do not draw crosshair on automap with alternative HUD enabled 2017-03-11 14:58:33 +02:00
Christoph Oelckers 72da1fed7e - removed many 'extern "C"' declarations, now that assembly is no longer a concern.
- some concepts about building a RenderViewpoint struct. No actual work yet.
2017-03-11 11:31:09 +01:00
Christoph Oelckers 56986ba843 - removed debug output from recent translation additions. 2017-03-11 09:56:05 +01:00
Christoph Oelckers daacaa961e - removed Windows includes from two more files. 2017-03-10 23:30:30 +01:00
Christoph Oelckers 5eb9587135 - moved the various music format files into their own directory. 2017-03-10 22:26:02 +01:00
Christoph Oelckers 95b181e618 -added missing file. 2017-03-10 22:19:36 +01:00
Magnus Norddahl b407ea2164 Change gl_light_shadowmap to default to being off 2017-03-10 22:12:13 +01:00
Magnus Norddahl 59ec97d2d5 Fix shadow map acne and the attenuate flag 2017-03-10 22:08:55 +01:00
Christoph Oelckers 5cc525cd54 - renamed Timidity++ device source file for consistency. 2017-03-10 21:34:42 +01:00
Christoph Oelckers c8bfef039a - removed dependency on windows.h for music_fluidsynth_mididevice.cpp. It just accesses a single function from Windows so let's manually define this so that this file can use precompiled headers.
- enable precompiled headers for all non-system-specific MIDI devices.
- moved the native Windows and Mac MIDI devices into their respective sections in the project file so that they won't get compiled on the other ones.
2017-03-10 21:18:15 +01:00
Christoph Oelckers 0b645dc42d - reorganized sound related code. 2017-03-10 20:53:03 +01:00
Christoph Oelckers 343db41b63 - changed the #defines in ddstexture.cpp into an enum
(because #defines suck...)
2017-03-10 20:08:39 +01:00
Christoph Oelckers fec958cc0a - finally managed to get rid of the DWORD type.
This one was particularly nasty because Windows also defines a DWORD, but in Windows it is an unsigned long, not an unsigned int so changing types caused type conflicts and not all could be removed.
Those referring to the Windows type have to be kept, fortunately they are mostly in the Win32 directory, with a handful of exceptions elsewhere.
2017-03-10 19:46:22 +01:00
Christoph Oelckers 2b0e9650bb - forgot to add the new header. 2017-03-10 19:11:30 +01:00
Magnus Norddahl b660493051 Add menu option for disabling shadow maps and detecting if storage buffers are available or not 2017-03-10 19:10:40 +01:00
Christoph Oelckers 5374eed06d - cleaned up the interdependencies between the MIDIStreamer and the WinMIDIDevice classes.
A major part of this device's implementation details about how to handle the callback were not encapsulated by the device class at all, they were #ifdef'd into the streamer class.
This puts everything into the device class which now exposes a clean interface to the rest of the game with no special handling aside from calling two additional virtual functions that are empty for the other devices
2017-03-10 19:08:37 +01:00
Christoph Oelckers 8d6fe24945 cleanup of MIDI code dependencies
* make the critical section local to the respective platform instead of polluting everything with system specific symbols.
* moved system specific class declarations into the source file instead of having them in the global header.

This commit temporarily disables the Windows system device because it cannot be done without polluting the global header and still needs a bit of refactoring.
2017-03-10 19:08:36 +01:00
Magnus Norddahl d75e09f545 Fix span dynamic light rendering glitch 2017-03-10 12:25:18 -05:00
Magnus Norddahl 1e7ea1c7ff Fix crash HOM effect when vid_hw2d is off 2017-03-10 12:25:05 -05:00
Magnus Norddahl b6ea5944d3 Fix crash when vid_hw2d is off 2017-03-10 12:24:09 -05:00
Christoph Oelckers 86d8f9ca83 - removed all dependencies on Windows-defined constants, rename the ones for non-Windows platforms and use those througout.
This should remove all dependencies on Windows definitions from the music interface, what remains is some cleanup.
2017-03-10 12:39:23 +01:00
Christoph Oelckers f1630cebf3 - backported Line_Align... fix. 2017-03-10 12:09:15 +01:00
Rachael Alexanderson 9d5f8ba250 - fixed: P_AlignFlat's y-offset data was ignored when calculating plane offsets for the final render 2017-03-10 12:04:43 +01:00
Rachael Alexanderson bb1d29d491 - Fixing r_voxel's license. 2017-03-10 12:04:43 +01:00
Christoph Oelckers bfd968a88c - uncoupled the MIDI player from Windows system structures.
The approach being used here caused the entire sound system to be infested by windows.h, just to avoid copying around a handful of variables in one place, effectively preventing any compiling optimization.
Windows will now use the same internally defined structure for all MIDI processing which only for actual submission to the system player will be converted to the internal format.
2017-03-10 12:01:29 +01:00
Christoph Oelckers bc63c664f2 Merge branch 'master' into 3.0_work 2017-03-10 10:39:12 +01:00
Christoph Oelckers 5b9fece062 - fixed bad definition of FBlockThingsIterator.Next(). When implementing the BlockLinesIterator apparently some incorrect code got modified.
- fixed an uninitialized variable in P_CheckSight.
2017-03-10 10:38:30 +01:00
Christoph Oelckers 4ed5b91b0f - added a few missing includes which were not triggered as error in a debug build. 2017-03-10 09:57:10 +01:00
Christoph Oelckers 96fa38bdc6 - make GCC happy. 2017-03-10 02:29:03 +01:00
Christoph Oelckers bd7476fb8d - untangled r_defs.h from actor.h
Both files can now be included independently without causing problems.
This also required moving some inline functions into separate files and splitting off the GC definitions from dobject.h to ensure that r_defs does not need to pull in any part of the object hierarchy.
2017-03-10 02:22:42 +01:00
Christoph Oelckers ea0a9b537b - removed the dobject.h include from s_sound.h. This isn't needed and only increased compile times of files with no relation to the actual game that need the sound system. 2017-03-10 01:10:14 +01:00
Rachael Alexanderson 7dc70b636f - enable multiprocessor compilation with MSVC++ using /MP for MSBuild
- Target NEON processors for ARM.
2017-03-10 00:49:26 +01:00
Rachael Alexanderson 0d5cb0536e - enable multiprocessor compilation with MSVC++ using /MP for MSBuild
- Target NEON processors for ARM.
2017-03-10 00:44:25 +01:00
Christoph Oelckers 4de0f8b1fa - compile both poly and sw renderer as one unit, because due to the includes this gets really slow otherwise. Lumping these together saves 50 seconds per build on my system with a 3.4 GHz Core i7 and an SSD for storage, so on other systems it may be even more. 2017-03-10 00:43:36 +01:00
Christoph Oelckers a4710bcdb0 - did a bit of header cleanup to reduce the dependency on dobject.h. 2017-03-09 23:30:42 +01:00
Christoph Oelckers 1c81c40c59 - moved several files for which fastmath is mostly irrelevant into the PCH group.
Because reducing compile time is more important than some microscopic performance gain in non-time-critical code.
2017-03-09 20:56:33 +01:00
Christoph Oelckers 6325fbc491 - did a bit of cleanup on the MIDI callback interface, made the function type a typedef and removed the two unused parameters. Only the native Windows player passed something, but it wasn't used by the callback. 2017-03-09 20:28:57 +01:00
Christoph Oelckers 9b87a167d7 - replaced a large batch of DWORDs.
Most of those which still rely on ZDoom's own definition should be gone, unfortunately the code in files that include Windows headers is a gigantic mess with DWORDs being longs there intead of ints, so this needs to be done with care. DWORD should only remain where the Windows type is actually wanted.
2017-03-09 20:19:55 +01:00
Christoph Oelckers a17685f3fd - removed some long longs, to reduce that type's use to the necessary minimum
.
2017-03-09 20:05:22 +01:00
Christoph Oelckers d2beacfc5f - except for DWORD, all homegrown integer types are gone - a handful were left where they represent genuine Windows types. 2017-03-09 19:54:41 +01:00
Christoph Oelckers c008ddaf66 - replaced homegrown SWORD, SBYTE and uint32_t types. 2017-03-09 19:31:45 +01:00
Christoph Oelckers cc1241a4b8 Merge branch 'make-qzdoom-gzdoom-again' of https://github.com/raa-eruanna/qzdoom into 3.0_work
# Conflicts:
#	src/win32/win32gliface.h
#	src/win32/win32iface.h

This compiles but no guarantees otherwise.
2017-03-09 19:09:13 +01:00
Christoph Oelckers 609e4c78b4 - fixed: NOINFIGHTSPECIES checked the wrong target actor. 2017-03-09 18:44:32 +01:00
Rachael Alexanderson 536e8fad19 - Make QZDoom GZDoom again! 2017-03-09 11:51:42 -05:00
Christoph Oelckers 878e6015df - made all iterator classes natively abstract so that they do not get a ConstructNative method so that OP_NEW can refuse creating them without the need to mark them as abstract.
- block creation of actors with the 'new' instruction. Unlike the above these cannot be made abstract because without ConstructNative they cannot be serialized.
2017-03-09 17:21:37 +01:00
Christoph Oelckers 20c56f6dda - added SectorTagIterator and LineIDIterator script classes. 2017-03-09 17:05:51 +01:00
Christoph Oelckers 420f71fc4f - added a BlockLinesIterator script class. 2017-03-09 16:45:48 +01:00
ZZYZX 4dd1910d6d Fixed the size of the local params array for WorldTick/UiTick 2017-03-09 15:38:49 +01:00
ZZYZX 5eb20b7877 Removed Create, CreateOnce, Register, Unregister from the C++ side as well 2017-03-09 15:38:49 +01:00
ZZYZX 01561eb768 Added: UiTick in EventHandlers, a callback that executes at 35fps on every handler in ui scope;
Removed: RenderOverlay, RenderFrame (commented out), Create, CreateOnce, Register, Unregister (completely)
2017-03-09 15:38:49 +01:00
Christoph Oelckers e080f0cf89 - removed Windows.h include from gl_system.h and cleaned up that file. This means that most OpenGL sources can now be compiled without any Windows dependencies, which is significantly faster. 2017-03-09 13:19:51 +01:00
Christoph Oelckers 396c570a96 - moved Win32GLVideo's definition into the .cpp file, because it isn't needed anywhere else. 2017-03-09 13:09:38 +01:00
Christoph Oelckers 05919a2926 - remove Windows includes from gl_load.h
This is one of two places that unconditionally pulled in all Windows headers into the GL code.
We also do not need the cruft for defining the standard integer types. GZDoom is C++11 which means that stdint.h will be present. So the madness with the definitions should be avoided to ensure that the types are always the same.
2017-03-09 13:03:49 +01:00
Christoph Oelckers 03e1cbcfc0 - removed Windows types from several files which don't need them.
- split out the software renderer's video classes into their own file because they got included by all OpenGL sources.
2017-03-09 12:52:31 +01:00
Christoph Oelckers 8bd9c5a983 - moved some ACS enums from p_acs.h to p_acs.cpp.
There is really no point including this in multiple files if only one of them actually uses these constants.
2017-03-09 09:49:07 +01:00
Christoph Oelckers 77bac4f6fa - fixed code generation for min/max when the first operand was a local variable or constant.
The code for constants was not optimal because the first operand of the instructions cannot be constant. This was solved by swapping it with the second choice which will always be non-constant.
The code for local variables did not allocate a new destination register and would overwrite the first parameter's variable.
2017-03-09 09:36:12 +01:00
Rachael Alexanderson 4d70b01da5 - followed through with GZDoom's SQWORD removals. 2017-03-08 21:35:20 -05:00
Rachael Alexanderson cc9a2e5121 Merge https://github.com/coelckers/gzdoom 2017-03-08 21:25:24 -05:00
Magnus Norddahl 279fa7e886 Non-SSE version of the sky drawers 2017-03-08 23:35:13 +01:00
Christoph Oelckers a632fae33f - for some reason the change to c_expr.cpp got lost.
- moved NO_SANITIZE to autosegs.h, because it's the only place where it is used.
2017-03-08 21:14:21 +01:00
Christoph Oelckers b513b32bcf - reduced missing texture messages in the menu to warnings. 2017-03-08 19:04:35 +01:00
Christoph Oelckers f341e7fb6a - removed SQWORD, there were only a handful of occurences. 2017-03-08 19:02:50 +01:00
Christoph Oelckers ba0f5a3f94 - most WORD and SWORD are gone. 2017-03-08 18:55:55 +01:00
Christoph Oelckers 8ab562ef13 - the fourth. 2017-03-08 18:55:54 +01:00
Christoph Oelckers 6dee9ff566 - replaced another large batch of homegrown type use. 2017-03-08 18:55:53 +01:00
Christoph Oelckers 6c6bab73ad - more of the same. 2017-03-08 18:55:53 +01:00
Christoph Oelckers ad41b23506 - replaced the homegrown integer types in all p* sources and headers. 2017-03-08 18:55:52 +01:00
alexey.lysiuk 3a0e29dab9 Added missing linker options for native MIDI support on macOS
Continuous integration is a cool thing: I completely forgot about addition of these frameworks because of my build environment which relies on static libraries and custom command line options
2017-03-08 16:11:04 +02:00
Magnus Norddahl b281a697ce Document the algorithm used for generating the 1D shadow maps 2017-03-08 14:12:59 +01:00
Christoph Oelckers b8f7e305db - changed TObjPtr to take a pointer as its template argument and not the class it points to.
This addresses the main issue with TObjPtr, namely that using it required pulling in the entire class hierarchy in basic headers like r_defs which polluted nearly every single source file in the project.
2017-03-08 13:35:21 +01:00
Christoph Oelckers 1cb89c6b37 - fixed bad call to validate function. 2017-03-08 13:35:21 +01:00
Magnus Norddahl d09c3ad305 Move all GPU handling to gl_shadowmap and rename gl_lightbsp to gl_aabbtree 2017-03-08 13:31:19 +01:00
Magnus Norddahl 8687a9868a Rename Level2DShape to LevelAABBTree and add a bit of documentation to it 2017-03-08 12:40:45 +01:00
alexey.lysiuk de9c9221fe Added AudioToolbox MIDI device for macOS
This device is the default one for OpenAL backend on Apple's platform
2017-03-08 11:23:36 +02:00
alexey.lysiuk 54ca55f070 Default MIDI device is now created by sound backend
OpenAL backend now plays music by default
It uses WinMM device on Windows and OPL on other platforms
2017-03-08 11:04:02 +02:00
Rachael Alexanderson 527a172fcd Merge https://github.com/coelckers/gzdoom 2017-03-07 22:03:56 -05:00
Magnus Norddahl 850e61d1c9 Add shadow test to sprites 2017-03-08 00:34:08 +01:00
Christoph Oelckers d911cdcfe7 - missed a bit. 2017-03-07 22:18:50 +01:00
Christoph Oelckers e2f3a09dd0 - refactored the scope check for VirtualScope calls.
It now uses a dedicated opcode instead of piggybacking on OP_CALL and it passes data that is closer to the VM. Symbols should be avoided at this level.
It also will skip the scope instruction if the code generator detects that both calling function and the self pointer type have the same scope, this assumes that subclasses cannot flip between UI and Play.
2017-03-07 22:17:48 +01:00
Christoph Oelckers 0c686c593b - simplify the runtime checks for OP_NEW.
They are not needed for OP_NEW_K which can evaluate the class relations at compile time and for OP_NEW the calling function can also be checked at compile time, passing only the scope value itself.
2017-03-07 19:57:55 +01:00
Christoph Oelckers 7a0c466b24 - fixed: For reflective floors, closed doors need to be considered an outer boundary, even if the floor below the door is reflective itself. 2017-03-07 18:59:48 +01:00
Rachael Alexanderson 71f400e238 Merge https://github.com/coelckers/gzdoom 2017-03-07 10:00:20 -05:00
Magnus Norddahl 6df3b3fbca Changed the light collision structure uploaded to the GPU to be a binary tree using AABBs for the nodes instead of a BSP plane 2017-03-07 15:58:22 +01:00
ZZYZX 620ce72ebd Fixed E_Responder for mouse events. It being active during console was actually a bug, because console should prevent any events. 2017-03-07 12:46:26 +01:00
ZZYZX 883048b538 Added E_Responder call for direct mouse input interception 2017-03-07 12:46:26 +01:00
Christoph Oelckers 1c95ddacb8 Revert "Moved some ancient playsim mouse input code around so that it works properly with input events"
This reverts commit 2e0eb742eb.

This effectively nullifies the attempt to get a higher mouse update rate for the display.
2017-03-07 10:26:03 +01:00
ZZYZX a681b5b706 Just in case, don't send useless mouse move events to G_Responder. 2017-03-07 09:47:47 +01:00
ZZYZX 2e0eb742eb Moved some ancient playsim mouse input code around so that it works properly with input events 2017-03-07 09:47:47 +01:00
Rachael Alexanderson bd50b5d05a Merge https://github.com/coelckers/gzdoom 2017-03-06 19:40:55 -05:00
Magnus Norddahl 65f8d65858 Minor code clean up 2017-03-06 23:27:02 +01:00
Rachael Alexanderson cb8b2de287 - somehow, this missed a few. 2017-03-06 16:58:48 -05:00
Christoph Oelckers 9d6b5f7015 - switched the menu code over to the data types of the event system.
Note that this will require adjustment of all menu code which overrides the Responder method!
2017-03-06 22:27:51 +01:00
Rachael Alexanderson 28abc96aef - fully implemented "nolightfade" to turn off diminishing lights in the software renderer.
- unfortunately, LIGHT2SHADE had to be transformed into a namespaced function.
2017-03-06 16:14:54 -05:00
Rachael Alexanderson 5c3b9d81ad Merge remote-tracking branch 'origin/no-diminishing-light' 2017-03-06 13:47:33 -05:00
Christoph Oelckers 4f97db74f2 - fixed: The deprecation checks in the compiler backend were wrong. 2017-03-06 19:24:31 +01:00
Rachael Alexanderson 134c2f3f38 Merge https://github.com/coelckers/gzdoom 2017-03-06 12:36:34 -05:00
Major Cooke e111b0b92e Fixed: Deprecated functions could not act because FxVMFunctionCall::CheckAccessibility returned false on warning. 2017-03-06 17:37:18 +01:00
alexey.lysiuk cf23deef74 Fixed ssize_t type definition for mpg123 (affects MSVC x64 only)
According to MinGW headers (which is used for compiling libmpg123) ssize_t type must be 64-bit in size on 64-bit Windows
Moreover it was impossible to build GZDoom with the recent versions of libmpg123 because of wrong type redifinition
Tested MP3 music on Deus Vult II with Release x64 and OpenAL backend
2017-03-06 18:05:06 +02:00
ZZYZX 21ecd714ec Added a way to tell apart console-executed events from code-executed SendNetworkEvent 2017-03-06 11:23:36 +01:00
alexey.lysiuk 4eb9f662cb Fixed compilation with Clang
src/scripting/backend/codegen.cpp:8568:10: error: cannot initialize return object of type 'FxExpression *' with an rvalue of type 'bool'
2017-03-06 10:41:17 +02:00
Rachael Alexanderson 7ef8ed5867 Merge https://github.com/coelckers/gzdoom 2017-03-05 18:40:44 -05:00
Gaerzi ad89d3eea0 Added SLADE3's colourise and tint translations.
Includes support for ACS.
Added tokens for '#' and '@' in sc_man_scanner.re.
2017-03-05 22:50:35 +01:00
Rachael Alexanderson b4079b9915 - implemented "hazardcolor" and "hazardflash" properties. This affects strife's sector damage type that passively builds up over time. setting "hazardcolor" changes the gradual blend that is used when palette flash is disabled. setting "hazardflash" changes the flashing blend that is used when palette flash is turned on. 2017-03-05 22:48:46 +01:00
Christoph Oelckers 2b5fea4ea8 - added version checks for function calls and virtual overrides.
- restricted the UI functions in inventory.
2017-03-05 21:44:10 +01:00
Christoph Oelckers 8a5daf211c - added version check for member variables. 2017-03-05 20:41:41 +01:00
alexey.lysiuk f9e543bed3 Fixed black target screen during wipe (legacy renderer only)
Credits: NiTROACTiVE and Erick194
https://www.doomworld.com/vb/source-ports/93179-two-issues-im-having-with-gzdoom-v2-3-2/
2017-03-05 20:51:48 +02:00
Rachael Alexanderson effe8a1e80 Revert "- started adding ARM support. incomplete. won't compile. don't try."
This reverts commit be8abba344.
2017-03-05 13:07:25 -05:00
ZZYZX 8400961a00 Did some cleanup - since FScopeBarrier is not in codegen now, it's possible to include it properly from vm.h 2017-03-05 18:39:59 +01:00
Christoph Oelckers 456ac64723 - implemented version checks for compile-time type determination and for class inheritance.
Note that in this system, DECORATE counts as version 2.0, so any data that should be available to DECORATE should not use version restriction.
2017-03-05 17:58:55 +01:00
Magnus Norddahl eb7955694b Disable diminishing light in software renderer 2017-03-05 16:57:58 +01:00
Christoph Oelckers 7df698dad8 - implemented the parser basics of a ZScript versioning system.
Note that this completely disables the newly added keywords 'play' and 'ui' for unversioned code to allow using them as identifiers as I have found at least one mod that uses a variable named 'play' that would have been rendered broken otherwise.
This also disables many ZScript only keywords for other parsing jobs.
2017-03-05 14:13:00 +01:00
alexey.lysiuk 5d3244c3a7 Fixed minor issues in config file reader
Removed hardcoded values from long lines handling and made sure that pointer to the last character is always initialized
2017-03-05 13:07:51 +02:00
alexey.lysiuk 27376b1697 Fixed compilation of Debug configuration
src/scripting/vm/vmexec.cpp:204:44: error: no member named 'Native' in 'VMScriptFunction'
2017-03-05 11:39:25 +02:00
ZZYZX 38b86ad83c No need for explicit EFX_Self check in FxStructMember::RequestAddress if self is set to readonly elsewhere. 2017-03-05 09:49:31 +01:00
ZZYZX 1832531726 Fixed: check protected fields against analog of OwningClass in functions, as opposed to the type that the field was accessed from. 2017-03-05 09:49:31 +01:00
ZZYZX 3eafc13b08 Removed BarrierSide from VMFunction, since it's obsolete with addition of VarFlags 2017-03-05 09:49:31 +01:00
ZZYZX 7cbabfb0d4 Implemented implicit 'protected' inheritance in virtual functions 2017-03-05 09:49:31 +01:00
ZZYZX b87f9b540e Implemented 'protected' on fields and methods 2017-03-05 09:49:31 +01:00
ZZYZX 9d4179ca06 Protected on methods of StaticEventHandler is completely useless 2017-03-05 09:49:31 +01:00
ZZYZX 6af5c1fa2b Produce a warning if clearscope is used on non-inner structs. Also now checking for outer class presence correctly. 2017-03-05 09:49:31 +01:00
ZZYZX 86a494aacd Can use clearscope on struct to signify that it should be plain data even if defined inside a play/ui class 2017-03-05 09:49:31 +01:00
ZZYZX 6c90d05407 By default, inner struct in class should take the scope of it's outer class 2017-03-05 09:49:31 +01:00
ZZYZX 0a7aebae93 Fixed const method qualifier. Also, fixed: const is not clearscope, treat differently. 2017-03-05 09:49:31 +01:00
Rachael Alexanderson 2c27b74e34 Merge https://github.com/coelckers/gzdoom 2017-03-05 02:55:38 -05:00
Christoph Oelckers f07bd5ec65 - fixed some mess by two nearly similarly named flags. 2017-03-05 00:36:32 +01:00
Christoph Oelckers 600f57405f - fixed typo in TexMan.GetSize. 2017-03-05 00:28:15 +01:00
Rachael Alexanderson be8abba344 - started adding ARM support. incomplete. won't compile. don't try. 2017-03-04 16:50:42 -05:00
Rachael Alexanderson b8b5360de1 Merge https://github.com/coelckers/gzdoom 2017-03-04 07:28:02 -05:00
Christoph Oelckers cfafbfe4f2 - removed FStringNoInit.
This was development garbage.
2017-03-04 12:55:20 +01:00
Christoph Oelckers 7dbc6939c4 - declared most native getters in Actor as const.
- made the self pointer of const functions readonly.

This seems to work fine. Both calling a non-const function and trying to assign a value to a member fail with an error message.
2017-03-04 12:43:07 +01:00
Christoph Oelckers b3ba5bfe2c - allow 'const' on class functions. This is preferable to 'clearscope' so that the UI code can call getter functions without having to declare things as 'clearscope'.
Clearscope is a dangerous context and should be limited to the minimum extent possible and preferably be blocked in user code.
This may still need some work on const functions but better have it in now.
2017-03-04 12:07:45 +01:00
Christoph Oelckers 5551f3a8c5 - declared the sectorplanes in Sector as read only and marked all relevant functions in the planes themselves const.
This is to block modification of the planes directly. For future-proofness with renderer changes everything that alters these values should go through he function interface.
2017-03-04 11:48:36 +01:00
Christoph Oelckers 3879e67cee - the #if was in the wrong place. 2017-03-04 11:34:53 +01:00
alexey.lysiuk a5edd48996 Fixed remaining warning reported by Clang
src/scripting/zscript/zcc_compile.cpp:2456:54: warning: using the result of an assignment as a condition without parentheses [-Wparentheses]
2017-03-04 12:23:15 +02:00
alexey.lysiuk d8cee4d3a5 Fixed most of warnings reported by Clang
src/scripting/zscript/zcc_compile.cpp: warning: comparison of integers of different signs: 'int' and 'unsigned long' [-Wsign-compare]
src/p_acs.cpp: warning: format specifies type 'char *' but the argument has type 'PClass *' [-Wformat]
2017-03-04 12:17:53 +02:00
alexey.lysiuk 8a1e0ee4b5 Fixed compilation with GCC/Clang
src/menu/menu.cpp:806:20: error: cannot pass non-trivial object of type 'FString' to variadic function; expected type from format string was 'char *' [-Wnon-pod-varargs]
2017-03-04 12:03:31 +02:00
Christoph Oelckers a7fdf4b90d - fixed: M_Init needs to catch VM exceptions from MENUDEF init to print out meaningful error messages in case something goes wrong. 2017-03-04 10:58:34 +01:00
Christoph Oelckers fd4727e701 - did a bit of cleanup.
- disabled the runtime check in OP_CALL because as implemented it doesn't clean up properly and is not fully implemented.
2017-03-04 10:28:51 +01:00
Magnus Norddahl 8515f9720a 1D shadow maps are now working 2017-03-04 09:14:01 +01:00
ZZYZX 3338fb7f33 Added SendNetworkEvent static method to EventHandler; Fixed qualified static method call from own class (previously was 'shadowed' by qualified virtual method call) 2017-03-04 00:57:41 +02:00
ZZYZX c9a994a885 Fixed: clearscope should also clear the inherited scope (through struct member access chain); Fixed: struct member access chain should ONLY work for structs (forgot that FxClassMember inherits FxStructMember) 2017-03-04 00:04:19 +02:00
ZZYZX 723f9770a4 Merge remote-tracking branch 'gz/master' into gz_master2 2017-03-03 23:33:02 +02:00
Rachael Alexanderson 21a8964bea Merge remote-tracking branch 'gzdoom/master'
# Conflicts:
#	src/v_video.cpp
2017-03-03 16:29:33 -05:00
ZZYZX a924564bf3 Implemented hard separation between playsim ConsoleEvent and networked ConsoleEvent (ConsoleProcess, NetworkProcess) 2017-03-03 23:21:12 +02:00
Rachael Alexanderson 4b63092c7a - disable size checking in windowed mode for vid_setmode, allowing it to set arbitrary sizes. 2017-03-03 22:19:58 +01:00
ZZYZX 421f78c771 Fixed potential crash with new() in anonymous functions (is that even allowed?); Added compile-time check for disallowed new() 2017-03-03 22:52:35 +02:00
ZZYZX 3a57a9809f Removed nonew class modifier 2017-03-03 22:42:12 +02:00
ZZYZX 78533cc316 Fixed: the name of accessed field is now properly retrieved in FxStructMember::RequestAddress 2017-03-03 22:38:33 +02:00
Christoph Oelckers fd20e1d78f - allow hooking custom serializers into PPointer so that serializable types can be handled without having to create new type classes which would be a bit unwieldy thanks to how the type system works. 2017-03-03 20:11:13 +01:00
Christoph Oelckers c630b07011 - replaced SDWORD with int32_t globally.
This type wasn't used in the software rendering code so it could be removed already. The other homegrown types will have to be dealt with later.
2017-03-03 19:35:08 +01:00
Christoph Oelckers f563a296c2 - added an ACS ScriptCall function. So far only superficially tested. 2017-03-03 19:23:27 +01:00
Christoph Oelckers 217bcb847d - fixed: When the savegame code errors out, some cleanup is required in G_DoSaveGame. 2017-03-03 19:19:19 +01:00
Christoph Oelckers 7736e42740 - fixed: The respawn event handler was not called for a regular in-game respawn, only for a cheat resurrection. 2017-03-03 18:53:11 +01:00
Magnus Norddahl 6055f136d8 Make sure SwapInterval is only ever called while the default frame buffer is bound to avoid problems with some drivers 2017-03-03 16:55:18 +01:00
Rachael Alexanderson b3a69e1df8 Merge https://github.com/coelckers/gzdoom 2017-03-02 18:13:33 -05:00
Magnus Norddahl 0d1deddae5 Bind shadow map texture for main.fp and sample from the shadowmap texture 2017-03-02 19:10:57 +01:00
Christoph Oelckers 1761da6079 - fixed: AActor::Howl checked HowlSound for the wrong type. 2017-03-02 18:40:01 +01:00
Christoph Oelckers 8253b91d97 - fixed: The stair and donut builders did not initialize FFloor::m_Instant. 2017-03-02 18:18:34 +01:00
Magnus Norddahl 538d516c9a Upload shadow map index for each light to main.fp
Move storage buffer binding location
2017-03-02 18:07:47 +01:00
Magnus Norddahl 62c285f7b3 Create a shadowmap texture and upload light list 2017-03-02 16:19:06 +01:00
Magnus Norddahl 7a4b01471d Add class updating and managing the shadow map texture 2017-03-02 16:19:06 +01:00
Magnus Norddahl 6363c6cf58 Add a shadowmap shader 2017-03-02 16:19:06 +01:00
Magnus Norddahl 58c7c3c902 Upload BSP tree to the GPU 2017-03-02 16:19:06 +01:00
Rachael Alexanderson 26f7902c3f - fixed: If player is killed by world, attacker was not checked for nullptr, causing a crash. 2017-03-02 13:02:25 +01:00
Christoph Oelckers ff88ecd3f0 - a bit more reordering for another minor performance gain. 2017-03-02 12:55:04 +01:00
Christoph Oelckers 4dc0599a6c - did a bit of reordering AActor's variables to group the ones together which are accessed by the renderer. Tested with some actor-heavy maps this does provide a small, approx 3-4% speedup in the OpenGL sprite processing function. 2017-03-02 12:37:25 +01:00
Christoph Oelckers 3532e50575 - check for RF_MASKROTATION before calling IsInsideVisibleAngles, because it is a bit faster this way. 2017-03-02 12:14:00 +01:00
Christoph Oelckers cfda1a49d4 - forgot to save the last fix for the previous commit.
- let the script compiler also output the size of the allocated data for the script functions in addition to the actual code size.
2017-03-02 11:58:30 +01:00
Christoph Oelckers b194ba205a - backported Zandronum's MaxHealth base class for the MaxHealthBonus item. 2017-03-02 11:39:52 +01:00
Christoph Oelckers 00dc59ebdc - separated the blood translation index from the BloodColor variable to allow more than 255 blood translations and as a prerequisite for allowing to change the blood color. 2017-03-02 10:26:23 +01:00
Rachael Alexanderson d84ba4b953 Merge https://github.com/coelckers/gzdoom 2017-03-02 04:22:32 -05:00
Christoph Oelckers 59bd4d608c - fixed: Be a bit more paranoid about what to consider a mod with an empty top-level directory.
This should only be accepted if the subdirectory contains at least one identifiable game definition lump to avoid catching some patch mods with only a few files.
2017-03-02 10:00:22 +01:00
Christoph Oelckers 3c21ca9cb1 - added a compatibility option to move vertices and applied it to E1M6 of Masters of Chaos.
This map has a door/lift combination that could trap the player without any chance to get out because both elements are so close together that it was almost impossible to trigger the lift. Moved two vertices by one map unit to make enough room.
2017-03-01 22:06:39 +01:00
Christoph Oelckers 9b2f31e692 - had to add a hack because some people had to exploit implementation-dependent behavior of the PulseLight type. 2017-03-01 20:54:37 +01:00
Christoph Oelckers 0de79042d4 - fixed: 'Bloodtype' cannot use the generic property definition because it needs special handling for optional arguments. This reinstates the native handler. 2017-03-01 20:20:46 +01:00
Christoph Oelckers b5d4a59465 - fixed: Meta properties must not be serialized. 2017-03-01 20:10:24 +01:00
Rachael Alexanderson bb3a2b25ff Merge branch 'qzdoom-gpuswitch' 2017-03-01 10:26:15 -05:00
Rachael Alexanderson 4ebd25171c - Implemented a simple graphics switch. This currently affects NVidia Optimus-enabled notebooks only. 2017-03-01 09:58:56 -05:00
Matthew McAllister 0583691670 Add bash-style console shortcuts 2017-03-01 11:33:14 +01:00
Rachael Alexanderson 5e5f88b629 Merge commit '5aec906' into testmaster 2017-02-28 21:34:36 -05:00
Rachael Alexanderson d6169ea75e Merge https://github.com/coelckers/gzdoom 2017-02-28 18:55:17 -05:00
Christoph Oelckers cb295e0441 - added parameter to PLayerPawn::GetMaxHealth to return the real maximum health, including stamina upgrades. 2017-03-01 00:04:17 +01:00
Christoph Oelckers 12915b5f6e - use an inventory flag to decide what items are slipped by DF_NO_HEALTH and DF_NO_ARMOR. With all the changes over the last 10 years this had become too spotty.
- use an enum type for ItemFlags, just like it was done for actor flags. Since the flag word is almost full it may soon be necessary to add a second one and then this kind of security check may become necessary.
2017-02-28 21:45:47 +01:00
Christoph Oelckers dc6c91042b - fixed misordered ACS functions. 2017-02-28 18:47:18 +01:00
Christoph Oelckers 314a642527 Merge branch 'meta' 2017-02-28 14:47:00 +01:00
nashmuhandes bb1709228c Changed FOV from a CCMD to a CVar, allowing players' FOV settings to persist. Also exported SetFOV to PlayerInfo for ZScript. 2017-02-28 14:46:30 +01:00
Christoph Oelckers 5f6da0d222 fixed double allocation of metadata. 2017-02-28 14:44:18 +01:00
Christoph Oelckers 168627f549 - native meta variables are not needed anymore. They were only a temporary aid to properly handle this, but now all have been redone. 2017-02-28 14:38:50 +01:00
Christoph Oelckers bc0ffc4185 - removed access to the PlayerPawn's DisplayName variable. This one has implicit semantics, so wherever a displayable name is needed GetPrintableDisplayName should be called instead to allow later refactoring of the internal handling. 2017-02-28 14:33:46 +01:00
Christoph Oelckers fc125f7eaf - reworked the obituary system to use scripted virtual overrides. Let's hope this solves the problems with the original code, now that any actor needing special treatment can override it. 2017-02-28 14:30:14 +01:00
Christoph Oelckers 851984efe0 - made GetDeathHeight a virtual scripted function.
- made GetGibHealth a virtual scripted function.
- removed a few more native meta properties.
2017-02-28 13:40:46 +01:00
Christoph Oelckers d5250d6b9f - made WoundHealth modifiable to allow more control over the wound state. 2017-02-28 12:56:35 +01:00
Christoph Oelckers 2a4a5e7a70 - refactored a few more native meta properties. 2017-02-28 12:47:44 +01:00
Christoph Oelckers 1311f08f47 - scriptified Actor.GetBloodType as a virtual function to allow mods more flexibility here.
- made CameraHeight a modifiable actor property - it was readonly before.
- allow accessing the type constants from ZScript, this required quite a bit of explicit coding because the type system has no capabilities to search for basic types by name.
2017-02-28 12:11:25 +01:00
Christoph Oelckers b6a1fe7fc6 - scriptified the basic attack functions, its properties and the explosion properties to test the new metadata system. 2017-02-28 10:51:32 +01:00
Rachael Alexanderson 5aec906031 Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/version.h
2017-02-28 04:46:23 -05:00
Christoph Oelckers a93a7e1cac - handle player meta properties.
Only two really make sense, the rest is never used from scripts and may just remain where it was.
2017-02-28 01:23:12 +01:00
Christoph Oelckers 4a87a598fb - do floatification of the UDMF Health property as it should have been. 2017-02-28 00:59:09 +01:00
Christoph Oelckers 78a66e001a - properly handle all meta properties for inventory items. 2017-02-28 00:45:16 +01:00
Christoph Oelckers f343d36ea9 - implemented the basics of a working metadata system.
This will store class meta properties in a separate memory block so that it won't have to muck around with PClass - which made the implementation from the scripting branch relatively useless because extending the data wasn't particularly easy and also not well implemented. This can now be handled just like the defaults.
2017-02-27 23:28:19 +01:00
Christoph Oelckers 3700dea336 Revert "- the UDMF health key for actors was not correctly implemented. This addresses the problem by adding a second one and documenting 'Health' as implemented."
This reverts commit e4e023e59a.

(This was nonsense.)
2017-02-27 22:05:20 +01:00
Christoph Oelckers d5d383ee93 - added Floor_Stop and Ceiling_Stop action specials. 2017-02-27 21:31:59 +01:00
Christoph Oelckers 1ff4016498 - added ACS math functions floor, ceil and round. 2017-02-27 20:42:12 +01:00
Christoph Oelckers e511f7f84b - added a damage type parameter to MDK CCMD. 2017-02-27 20:07:21 +01:00
Christoph Oelckers ac4074a69a - allow sprites and particles simultaneously for puffs. 2017-02-27 19:51:37 +01:00
Christoph Oelckers 321c846d01 - added StealthAlpha actor property for defining a minimum visibility value of a stealth monster. 2017-02-27 19:46:27 +01:00
Christoph Oelckers f82ab889b2 - added ACS strarg function which can convert a string into a string argument for ACS specials. 2017-02-27 18:44:58 +01:00
Christoph Oelckers 4bcbd5c011 - clear WF_WEAPONBOBBING in P_FireWeapon, because otherwise the first frame of the fire animation will be drawn in the current bobbing position and not centered. 2017-02-27 18:38:01 +01:00
Rachael Alexanderson 869de7554f - fixed: Opening automap without 2D acceleration and rgb666 blending crashed due to bad color calculations. (Attempted to pass rgb888 values into rgb666 array) 2017-02-27 12:15:17 -05:00
Rachael Alexanderson e9364fccb8 - Fixed: voxels were not properly remapped after "restart" ccmd 2017-02-27 18:12:49 +01:00
Rachael Alexanderson 4a9845a6c0 - Fixed: voxels were not properly remapped after "restart" ccmd 2017-02-27 12:02:46 -05:00
Christoph Oelckers cc598dfdde - fixed: To get the final error handling from the serializer, Close must be called before the destructor gets invoked.
- added line feeds to all error messages in the serializer.
2017-02-27 15:16:03 +01:00
Christoph Oelckers 78538ed9ef - missed an else. 2017-02-27 14:53:39 +01:00
Rachael Alexanderson fa6a94f789 Merge https://github.com/coelckers/gzdoom 2017-02-27 08:22:53 -05:00
Rachael Alexanderson bd61e9f3f4 - Disabled dynlights during invulnerability/lightamp (or any FixedColormap or FixedLightLevel) 2017-02-27 08:20:26 -05:00
Christoph Oelckers f9f9f2d5fc - added selfdamagefactor actor property. 2017-02-27 11:22:51 +01:00
Christoph Oelckers e84a2899f9 - this needs one more check. 2017-02-27 10:52:29 +01:00
Christoph Oelckers 073e63ed04 - Added a check for all z-movement for floor huggers so that it doesn't skip all the height checks if +NODROPOFF is also given. 2017-02-27 10:50:21 +01:00
Christoph Oelckers 0c660ff29c - added an option to add elements to an existing options menu.
Note that for list menus this does not exist because they require complete setup to work as intended.
2017-02-27 10:37:47 +01:00
Rachael Alexanderson 2a847ca570 Merge https://github.com/coelckers/gzdoom 2017-02-27 01:06:00 -05:00
Christoph Oelckers 720e05d131 - fixed memory leak in DEM_NETEVENT.
- added handling for DEM_NETEVENT to SkipCommand.
- keep the data of DEM_NETEVENT at a fixed length to simplify handling.
2017-02-27 02:31:19 +01:00
Christoph Oelckers 3a5124e10e - fixed: TakeInventory needs to check for subclasses of PowerInfiniteAmmo. 2017-02-27 02:09:56 +01:00
Christoph Oelckers c7cf619ff4 - Caution: Wads.GetLumpName with a char pointer is stupid because it doesn't 0-terminate its return. 2017-02-27 01:58:21 +01:00
Christoph Oelckers 1e1194a669 - fixed: Dp mot strip the top level folder name in Zips if they only contain one entry or if the first entry isn't a directory. 2017-02-27 01:53:51 +01:00
Christoph Oelckers c8445703ac - added a workaround for the 'cannot split a seg' error in the node builder: In order to prevent all segs from ending up on the same side it will now force the bogus seg onto the other side of the node - regardless of whether this is correct or not, because the most important thing here is that the set of segs gets split to prevent the node builder from ending up in an endless recursion trying to split the same set of data and endlessly failing.
Note that this is not a fix, it's merely a countermeasure to avoid the crash in ZPack's E2M6 which this seems to achieve.
2017-02-27 01:41:27 +01:00
Christoph Oelckers 1ed2a0baf9 - fixed: The intermission screen did not show 'entering' for cluster-less maps. 2017-02-26 23:49:53 +01:00
Christoph Oelckers e4e023e59a - the UDMF health key for actors was not correctly implemented. This addresses the problem by adding a second one and documenting 'Health' as implemented.
- fixed: Several ZDoom-exclusive actor keys did not check the current namespace.
2017-02-26 23:21:56 +01:00
Christoph Oelckers 0514a997db - added a new argument to GlassBreak to allow it to spawn other types of debris than GlassJunk by passing a spawn ID. 2017-02-26 23:07:16 +01:00
Christoph Oelckers 8c30ca213d - allow loading of zips that have one root folder with all content contained within this folder. This top level's folder name will be stripped out from all file names, unless it is a special name that maps to a known namespace. 2017-02-26 22:55:36 +01:00
Christoph Oelckers f918a9d9a7 - added a BOUNCE_NotOnShootables flag that hopefully helps addressing the biggest glitch in the bouncing code. 2017-02-26 22:31:43 +01:00
Christoph Oelckers 80e9763d64 - added a NOMENU option for skills. 2017-02-26 22:10:35 +01:00
Christoph Oelckers 3d500f0495 - added default obituaries for damage types.
Note that this is only implemented for the new official way of doing this in MAPINFO, but not in DECORATE!
2017-02-26 21:36:06 +01:00
Christoph Oelckers f6dd99d3aa - added A_Morph function. 2017-02-26 21:20:47 +01:00
Christoph Oelckers 346ada76bc - allow blocking controller input in the menu. 2017-02-26 20:59:24 +01:00
Christoph Oelckers 8cac2d8c84 - added a NOATTACK sector flag which prevents monsters from going to their attack states if present. 2017-02-26 20:27:02 +01:00
Christoph Oelckers 9aff224891 - allow a link between the same sector's floor and ceiling. 2017-02-26 20:11:24 +01:00
Christoph Oelckers 0eebaf9f6b - allow nightmare respawn if the current state has the 'canraise' flag. 2017-02-26 20:06:16 +01:00
Christoph Oelckers 7a1f36bfb0 - added RF_DONTINTERPOLATE flag. 2017-02-26 20:01:39 +01:00
Rachael Alexanderson 8c46ab40b1 Merge https://github.com/coelckers/gzdoom 2017-02-26 13:42:12 -05:00
Christoph Oelckers 4d043f086e - missed a spot. 2017-02-26 19:41:39 +01:00
Rachael Alexanderson 7a5df2bc28 Merge commit 'b0eb19b' 2017-02-26 13:41:02 -05:00
Christoph Oelckers 7267e608cf - added kickback factor skill property. 2017-02-26 19:37:25 +01:00
Christoph Oelckers b0eb19bbc8 - added an option to define untranslated fonts through FONTDEFS. Note that due to how the fonts work they cannot be colorized AT ALL! 2017-02-26 19:29:27 +01:00
Christoph Oelckers 0cc46a2aaf - added a FORCEINFIGHTING flag. 2017-02-26 19:05:20 +01:00
Christoph Oelckers 92b916fd5d - fixed: ACS's SetMugshotState function was essentially broken in multiplayer because it contained no checks if the script's activator is connected to the current console player.
Ideally this should also be fixed for singleplayer but that would probably break half the mods using this function...
2017-02-26 18:49:40 +01:00
Christoph Oelckers fb3d4bd42a - added A_SetMugshotState. 2017-02-26 18:46:06 +01:00
Christoph Oelckers 5fe04dfd20 - added A_SprayDecal function. 2017-02-26 18:37:12 +01:00
Christoph Oelckers c4b546404a - added a 'nocheck' parameter to A_Raise* and Thing_Raise. 2017-02-26 17:50:48 +01:00
Christoph Oelckers 3f5ef48dac - allow setting a global dialogue lump through gameinfo. 2017-02-26 17:22:02 +01:00
Christoph Oelckers f31ddbc57c - allow specifying specials in ZSDF by name.
- allow specifying a decal ID by name in UDMF.
2017-02-26 17:05:04 +01:00
Christoph Oelckers ee6e427e78 - fixed: USDF did not allow specials > 255. 2017-02-26 16:54:09 +01:00
Christoph Oelckers d80dc098bd - added a RESETITEMS MAPINFO flag. 2017-02-26 16:48:24 +01:00
Christoph Oelckers e6b31dde27 - added some flexibility to some Skulltag powerups.
- handle these powerups by actual item checks instead of cheat flags. (The same should also be done for the Frightener and Buddha but those are a bit more complex because they are also real cheats.)
2017-02-26 16:23:22 +01:00
Christoph Oelckers 8b2a5c75a1 - added an old submission for PowerReflection, although it had to be seriously reworked and improved. 2017-02-26 15:47:37 +01:00