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