Commit graph

254 commits

Author SHA1 Message Date
Magnus Norddahl
7bb92812b8 - Move models into r_data 2017-11-25 13:19:00 +01:00
Christoph Oelckers
5a761dd3c3 - fixed alpha of palette index 0 for ice and alpha translations. 2017-07-01 16:19:41 +02:00
Christoph Oelckers
f909b82074 - fixed: Blood translations did not properly treat color 0 as transparent. 2017-06-20 09:10:19 +02:00
Christoph Oelckers
cf1d94c9bb - fixed blood translation's alpha so that CreateTexBuffer can assume that all palette entries in translations are correct. 2017-06-18 09:23:56 +02:00
Christoph Oelckers
1cb3514b05 - use 0 as the default for r_vanillatrans.
As nice as the automatic is, this will trigger far too many cases where it will disable translucency for mods that only change some texts. Dehacked is very often only used for non-actor related modifications.
If the automatic is supposed to be the default it needs to do a lot more thorough checks to avoid bug reports due to misunderstanding the feature.
2017-06-04 12:39:39 +02:00
Rachael Alexanderson
c18134dbd3 - r_vanillatrans: Cache the cache! Transform the function into a global variable and recheck at the start of D_Display 2017-06-04 12:30:35 +02:00
Rachael Alexanderson
4686ba78a0 - Add licenses to r_vanillatrans files 2017-06-04 12:30:35 +02:00
Rachael Alexanderson
68b6f922f7 - Added auto-detection scheme for r_vanillatrans
It now works the following way:
(0) - Force off (ZDoom defaults)
(1) - Force on (Doom defaults)
(2) - Auto off (Prefer ZDoom defaults - if DEHACKED is detected with no ZSCRIPT it will turn on) (default)
(3) - Auto on (Prefer Doom defaults - if DECORATE is detected with no ZSCRIPT it will turn off)
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
89b372cb01 - Changed MF7_SPRITEFLIP, MF8_ZDOOMTRANS to RenderFlags
- Added RF_ZDOOMADD
- renamed r_canontrans to r_vanillatrans
- this developer's insanity level has increased by 231%.
2017-06-04 12:30:35 +02:00
Rachael Alexanderson
01f88cfb16 - Added 'canonical transparency' cvar r_canontrans - this simply turns off transparency for Doom objects that were marked as transparent sometime in ZDoom's development cycle 2017-06-04 12:30:35 +02:00
Rachael Alexanderson
2acb485121 - Added +SPRITEFLIP which reverses a sprite's left-rightness. 2017-05-03 21:13:31 +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
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
d03c33f393 - added Translation.GetID. 2017-04-14 17:40:05 +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
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
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
Christoph Oelckers
b529b1e3a7 - removed several unneeded GL headers from the software renderer's sources.
- consolidated the code to calculate a sprite's display angle for all 3 renderers.

As it turned out, they all differed in their feature support because they had always been updated independently by different people.
2017-03-16 13:49:34 +01:00
Christoph Oelckers
3aa7687d91 - made 'nocoloredspritelighting' a global option and also implemented it in the software renderer. 2017-03-16 00:56:03 +01:00
Christoph Oelckers
921bc763fb - separated the software-renderer-specific parts of colormap processing from the common parts.
- moved testcolor and test fades into SWRenderer files.

These CCMDs work by hacking the default colormap and were never implemented for hardware rendering because they require many checks throughout the code.
2017-03-15 22:04:59 +01:00
Christoph Oelckers
cd015f9340 - make the colormap comparison against NormalLight inline because this is by far the most frequent case and any cycle being saved here counts. 2017-03-15 22:04:59 +01:00
Christoph Oelckers
9a24771a7d - refactored FDynamicColormap out of sector_t.
This has increasingly become an obstacle with the hardware renderer, so now the values are being stored as plain data in the sector, with the software renderer getting the actual color tables when needed. While this is a bit slower than storing the pregenerated colormap, in realistic situations the added time is mostly negligible in the microseconds range.
2017-03-15 22:04:59 +01:00
Magnus Norddahl
fea2361815 - fix broken voxel palette colors when using the game palette 2017-03-15 04:33:01 +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
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
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
a4710bcdb0 - did a bit of header cleanup to reduce the dependency on dobject.h. 2017-03-09 23:30:42 +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
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
Rachael Alexanderson
cc9a2e5121 Merge https://github.com/coelckers/gzdoom 2017-03-08 21:25:24 -05: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
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
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
Magnus Norddahl
42a7dbe33a Merge remote-tracking branch 'gzdoom/master' into qzdoom
# Conflicts:
#	src/v_video.cpp
2017-02-19 03:49:13 +01:00
alexey.lysiuk
0ffd475d8c Fixed compilation with GCC/Clang
src/r_data/sprites.cpp:805:79: error: cannot pass non-trivial object of type 'FString' to variadic function; expected type from format string was 'char *' [-Wnon-pod-varargs]
2017-02-18 10:34:27 +02:00
Rachael Alexanderson
65122ed19e Merge https://github.com/coelckers/gzdoom 2017-02-18 00:18:45 -05:00
Christoph Oelckers
97eed1e6df - scriptified UpdateSkins. 2017-02-17 22:12:56 +01:00
Christoph Oelckers
498da825a5 - made the Skins array scripting friendly and exported it. 2017-02-17 21:51:23 +01:00
Rachael Alexanderson
8c176575c8 Merge https://github.com/coelckers/gzdoom 2017-02-12 21:39:20 -05:00
Christoph Oelckers
2e9c1ec3f3 - fixed translation setup for player backdrop.
- fixed return value of GetAction method of menu controls.
2017-02-12 16:48:29 +01:00
Magnus Norddahl
5a85fabfa6 Add true color support to voxel renderer 2017-02-12 01:27:26 +01:00
Christoph Oelckers
947b625c50 - all menu items scriptified, but not yet active. 2017-02-11 16:11:48 +01:00
Rachael Alexanderson
5948c7b0da Merge https://github.com/coelckers/gzdoom 2017-02-08 18:42:24 -05:00
Christoph Oelckers
17a2666bd4 - moved DisplayName, the last remaining PlayerPawn meta property, to PClassActor so that PClassPlayerPawn could be removed.
Now all actors have the same metaclass and therefore it will always be the same size which will finally allow some needed changes to the type system which couldn't be done because it was occasionally necessary to replace tentatively created classes due to size mismatches.
2017-02-08 19:42:24 +01:00
Christoph Oelckers
2ca0e34785 - turned many of PClassPlayerPawn's strings into names and moved all scalar properties into APlayerPawn.
The goal is to get rid of PClassPlayerPawn and PClassInventory so that the old assumption that all actor class descriptors have the same size can be restored
This is important to remove some code that seriously blocks optimization of the type table because that can only be done if types do not need to be replaced.
2017-02-08 16:42:13 +01:00
Rachael Alexanderson
c76c65d3f7 Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/r_draw.cpp
2017-02-07 17:09:13 -05:00
Christoph Oelckers
4ca69f10c7 - removed a few unused definitions. 2017-02-07 10:55:59 +01:00
Rachael Alexanderson
59f32d497d Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/r_things.cpp
#	src/v_draw.cpp
2017-02-05 00:08:01 -05:00
Christoph Oelckers
470dc138c6 - got rid of all DTA_Translation uses. 2017-02-05 00:17:29 +01:00
Rachael Alexanderson
5cbe829c05 Merge https://github.com/coelckers/gzdoom 2017-01-27 11:33:05 -05:00
Christoph Oelckers
15b95cc023 - fixed: DECORATE was creating a new global constant namespace for each single included file, not just once per DECORATE lump. 2017-01-27 10:51:12 +01:00
Magnus Norddahl
53a79ca215 Merge remote-tracking branch 'gzdoom/master' into qzdoom
# Conflicts:
#	src/r_things.cpp
2017-01-18 04:09:16 +01:00
Christoph Oelckers
75d3f42d4f - scriptified APowerup. 2017-01-17 17:34:07 +01:00
Magnus Norddahl
1d941c9839 Merge remote-tracking branch 'gzdoom/master' into qzdoom
# Conflicts:
#	src/r_plane.cpp
#	src/win32/zdoom.rc
2017-01-13 13:21:10 +01:00
Christoph Oelckers
7b7623d2c4 - split DObject::Destroy into the main method, a native OnDestroy and a scripted OnDestroy method and made the main method non-virtual
This was done to ensure it can be properly overridden in scripts without causing problems when called during engine shutdown for the type and symbol objects the VM needs to work and to have the scripted version always run first.
Since the scripted OnDestroy method never calls the native version - the native one is run after the scripted one - this can be simply skipped over during shutdown.
2017-01-12 22:49:18 +01:00
Rachael Alexanderson
07f22a090c Merge https://github.com/coelckers/gzdoom 2016-12-28 21:16:14 -05:00
Christoph Oelckers
d748b6ad70 - added explicit fog density as a sector property, accessible through UDMF and ACS.
- allow changing sector glow information through ACS.
2016-12-29 01:12:17 +01:00
Magnus Norddahl
e91c5ac54d Merge branch 'master' into OverlayExtension10 2016-12-27 04:32:13 +01:00
Major Cooke
ff3487d389 Merge branch 'OverlayAlpha' into OverlayExtension9
# Conflicts:
#	src/p_pspr.cpp
#	src/r_draw.cpp
#	wadsrc/static/actors/actor.txt
#	wadsrc/static/actors/constants.txt
2016-12-26 14:37:22 -06:00
Christoph Oelckers
71fd949f26 Merge branch 'master' of https://github.com/rheit/zdoom 2016-12-11 14:45:42 +01:00
Rachael Alexanderson
c48b528824 Merge https://github.com/rheit/zdoom 2016-12-10 08:04:51 -05:00
Edoardo Prezioso
d92a814e8c - Fixed wrong argument format in voxeldef parser code.
It got revealed by the GCCPRINTF format addition to FScanner::ScriptMessage.
2016-12-10 14:02:12 +01:00
Christoph Oelckers
c61f30a627 - got rid of clearbuf.
This was used in only 4 places, 3 of which could easily be replaced with a memset, and the fourth, in the Strife status bar, suffering from a pointless performance optimization, rendering the code unreadable - the code spent here per frame is utterly insignificant so clarity should win here.

(cherry picked from commit 12a99c3f3c)
2016-12-09 08:13:08 -05:00
Christoph Oelckers
b709db3fd3 Merge branch 'master' of https://github.com/rheit/zdoom 2016-12-09 13:32:05 +01:00
Christoph Oelckers
12a99c3f3c - got rid of clearbuf.
This was used in only 4 places, 3 of which could easily be replaced with a memset, and the fourth, in the Strife status bar, suffering from a pointless performance optimization, rendering the code unreadable - the code spent here per frame is utterly insignificant so clarity should win here.
2016-12-09 12:48:10 +01:00
Rachael Alexanderson
c109ebf7cb Merge branch 'master' of https://github.com/coelckers/gzdoom 2016-12-09 03:00:02 -05:00
Christoph Oelckers
8a6d3b8e7b - sprites.cpp 2016-12-08 21:05:53 +01:00
Christoph Oelckers
3fbe41957d - removed GZDoom call. 2016-12-08 21:05:31 +01:00
Christoph Oelckers
6c628c9584 - changed sprite setup to work without global work variables. 2016-12-08 19:27:49 +01:00
Rachael Alexanderson
a78b713f4b Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/v_video.cpp
2016-12-06 18:19:08 -05:00
Christoph Oelckers
c927aca2a0 Merge branch 'zscript' of https://github.com/rheit/zdoom into gz-zscript
# Conflicts:
#	wadsrc/static/zscript.txt
2016-11-30 18:46:23 +01:00
Christoph Oelckers
8dba322775 - scriptified Heretic's Skull Rod.
- Took the opportunity and fixed the logic for the Skull Rod's rain spawner. The old code which was part of the 3D floor submission was unable to work with portals at all. The new approach no longer tries to hide the dead projectile in the ceiling, it leaves it where it is and changes a few flags, so that its z-position can be used as reference to get the actual ceiling. This works for line portals, but for sector portals still requires some changes to sector_t::NextHighestCeilingAt to work, but at least this can be made to work unlike the old code.
- added names for the player-related translations to A_SetTranslation.
- fixed: Failure to resolve a function argument was checked for, too late.
- made the parameter for A_SetTranslation a name instead of a string, because it is more efficient. We do not need full strings here.
2016-11-25 16:05:03 +01:00
Christoph Oelckers
66d28a24b8 - disabled the scripted virtual function module after finding out that it only works if each single class that may serve as a parent for scripting is explicitly declared.
Needless to say, this is simply too volatile and would require constant active maintenance, not to mention a huge amount of work up front to get going.
It also hid a nasty problem with the Destroy method. Due to the way the garbage collector works, Destroy cannot be exposed to scripts as-is. It may be called from scripts but it may not be overridden from scripts because the garbage collector can call this function after all data needed for calling a scripted override has already been destroyed because if that data is also being collected there is no guarantee that proper order of destruction is observed. So for now Destroy is just a normal native method to scripted classes
2016-11-25 00:25:26 +01:00
Christoph Oelckers
6e223ebc21 Merge branch 'zscript' of https://github.com/rheit/zdoom into gz-zscript
# Conflicts:
#	src/CMakeLists.txt
#	wadsrc/static/actors/doom/doomarmor.txt
#	wadsrc/static/decorate.txt
2016-11-15 11:36:59 +01:00
Leonard2
7dbc4710f1 Add the new argument to all uses of the implement macro 2016-11-09 17:45:55 +01:00
Leonard2
bb2d61de50 Replaced the many implement macros with a single one that takes arguments instead 2016-11-09 17:45:53 +01:00
Leonard2
0b3585c83f Separate the pointer list from the implement macro 2016-11-09 17:45:52 +01:00
Christoph Oelckers
10203afa41 Merge branch 'master' of https://github.com/rheit/zdoom 2016-10-23 18:50:59 +02:00
Rachael Alexanderson
9ee34254c8 - fixed: Crashing when using the "restart" ccmd 2016-10-21 19:26:05 -04:00
raa-eruanna
ec9dd3f5af - Fixed compiler errors with r_fullbrightignoresectorcolor merge 2016-10-21 07:53:32 -04:00
raa-eruanna
1ae478aacd Merge commit '8678baf6f589a68635939a1063a28231a0aa01a1'
# Conflicts:
#	src/r_data/colormaps.cpp
#	src/r_main.cpp
#	src/r_segs.cpp
#	src/r_things.cpp
#	wadsrc/static/language.enu
#	wadsrc/static/menudef.txt
2016-10-21 07:42:28 -04:00
raa-eruanna
8678baf6f5 - Fullbright fixes 2016-10-21 07:32:18 -04:00
raa-eruanna
c76431414a - Implemented r_fullbrightignoresectorcolor from QZDoom 2016-10-21 07:06:24 -04:00
raa-eruanna
b327a3312e - Fully Implemented GZDoom fullbright emulation 2016-10-21 06:08:25 -04:00
Christoph Oelckers
b03489a43c Merge branch 'master' of https://github.com/rheit/zdoom 2016-10-16 08:51:13 +02:00
raa-eruanna
cfb985ceb3 Merge http://github.com/rheit/zdoom 2016-10-15 07:58:16 -04:00
Christoph Oelckers
162da2fcaf - allow to specify "none" to set an actor's translation to the identity table. 2016-10-15 10:51:48 +02:00
Major Cooke
d597af1494 - Fixed a few corner cases where forcing alpha wouldn't work.
- On the other hand, soultrans, fuzzy and stencil (as is, not including the mixing styles like stenciladd) are no longer accounted for by FORCEALPHA.
2016-10-03 13:14:48 -05:00
raa-eruanna
267b131c03 Merge http://github.com/rheit/zdoom 2016-10-02 23:10:28 -04:00
Christoph Oelckers
2da18bfa56 Merge branch 'master' of https://github.com/rheit/zdoom 2016-10-03 00:56:55 +02:00
Christoph Oelckers
a505e91032 - added TRNSLATE lump for defining global translations which are accessible by name.
This is only the definition part, manipulation functions for ACS and DECORATE still to do.
2016-10-02 13:35:25 +02:00
Magnus Norddahl
5ef46d1730 Merge remote-tracking branch 'gzdoom/master' into qzdoom 2016-09-24 09:37:18 +02:00
Christoph Oelckers
6bfbe30b99 Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	src/CMakeLists.txt
#	src/g_level.cpp
#	src/p_saveg.cpp
#	src/r_defs.h
#	src/version.h

(note that this commit will not compile!)
2016-09-24 00:40:15 +02:00
Christoph Oelckers
cad2be46ac - fixed several Destroy methods which blanketly assumed that the object's pointers were valid to use without checks.
This is not the case if deserialization prematurely aborts. The entire object may be invalid if something in the deserializer I_Error's out.
2016-09-23 08:49:30 +02:00
Christoph Oelckers
f93e4813d1 - removed farchive.cpp and .h 2016-09-22 00:48:22 +02:00
Christoph Oelckers
970c168b13 - re-added serialization of treanslations.
- removed more dead code.
2016-09-20 19:45:32 +02:00