Commit graph

379 commits

Author SHA1 Message Date
Christoph Oelckers
9bdb0f2e49 - renamed the flag bits for sector_t::MoreFlags, so that they are easier to distinguish from sector_t::Flags.
- precalculate if a sector's floor and ceiling plane overlap. This avoids rechecking this for each single call of hw_FakeFlat.
- vertices must be marked dirty every time they change after map setup. That means that ChangePlaneTexZ must do this as well, because it cannot rely on interpolation taking care of it.
- Having a 'dirty' argument for SetPlaneTexZ's ZScript version makes no sense. If the value changes from the script side the vertices must always be marked to be recalculated.
2018-05-01 11:29:29 +02:00
Christoph Oelckers
f49c6cbde2 - use sector_t::GetHeightSec consistently and optimize it.
This was all over the place, with half of it using the function and half doing incomplete checks on the underlying variables.
Also did some optimization on the IGNOREHEIGHTSEC flag: Putting it on the destination sector instead of the model sector makes the check even simpler and allows to precalculate the effect of 3D floors on the heightsec, which previously had to be run on every call and made the function too complex for inlining.
2018-05-01 09:47:09 +02:00
Christoph Oelckers
bc8f47444f - texture precaching also moved to hwrenderer/. 2018-04-25 00:07:46 +02:00
alexey.lysiuk
2ae8d39441 Removed all superfluous #include's
Automatically optimized by CLion IDE with manual corrections
2018-04-24 14:30:35 +03:00
alexey.lysiuk
4ea16acef5 Fixed broken portals after loading saved game
Portals disabled initially and activated by scripting must be fully restored after loading of saved game

https://forum.zdoom.org/viewtopic.php?t=59999
2018-04-15 10:52:02 +02:00
Christoph Oelckers
71a6cc4625 Merge branch '2D_Refactor' 2018-04-13 17:52:58 +02:00
Christoph Oelckers
9daad477c3 - some improvements to compatibility scripts:
* use names, not strings, to allow use of switch/case.
* avoid creating the checksum a second time per level.
* do an early-out check for maps that do not have scripted compatibility.
2018-04-09 22:09:28 +02:00
Christoph Oelckers
df4f435952 - merged vid_renderer, swtruecolor and r_polyrender into one CVAR to reduce menu clutter.
- with renderers freely switchable, some shortcuts in the 3D floor code had to be removed, because now the hardware renderer can get FF_THISINSIDE-flagged 3D floors.
- changed handling of attenuated lights in the legacy renderer to be adjusted when being rendered instead of when being spawned. For the software renderer the light needs to retain its original values.
2018-04-07 23:30:28 +02:00
Christoph Oelckers
d474b849a5 - removed the remaining calls from the FRenderer interface from the main game code.
This does not work with a setup where the same backend is driving both renderers.
Most of this is now routed through 'screen', and the decision between renderers has to be made inside the actual render functions.
The software renderer is still driven by a thin opaque interface to keep it mostly an isolated module.
2018-04-04 00:21:25 +02:00
Christoph Oelckers
fcc33f0a09 - moved around more stuff from the FRenderer interface. 2018-04-03 22:50:47 +02:00
Christoph Oelckers
91813ec43d - moved part of the fade init for LEVEL_HASFADETABLE to the common colormap initialization to have all of it in one place.
Otherwise this is easily overlooked when changing things later and potentially causing problems.
2018-04-03 20:55:36 +02:00
Christoph Oelckers
8080e039e0 - moved most of gl_setup.cpp to r_data as this is only some data setup in the main map data structures.
- made currentmapsections array something nicer to look at and made it a member of the scene drawer class.
2018-04-02 09:27:40 +02:00
Christoph Oelckers
d84554f093 - deleting some unused stuff 2018-04-02 00:28:25 +02:00
Christoph Oelckers
64b504ee7f - fixed last commit. This was missing an init call for the portal data. 2018-04-02 00:14:53 +02:00
Christoph Oelckers
248a29bf06 - resorted portal render data.
Compiles but does not work...
2018-04-01 22:26:57 +02:00
Christoph Oelckers
65e7b6dfaa - moved the code in gl_data.cpp to better fitting places
* the MAPINFO options now get handled in g_mapinfo.cpp and g_level.cpp, just like the rest of them as members of level_info_t and FLevelLocals.
* RecalcVertexHeights has been made a member of vertex_t and been moved to p_sectors.cpp.
* the dumpgeometry CCMD has been moved to p_setup.cpp
2018-04-01 18:45:27 +02:00
Christoph Oelckers
5bdea6278c - removed RequireGLNodes from FRenderer interface.
It returned true for both renderers anyway.
2018-03-31 00:33:09 +02:00
Christoph Oelckers
e89a598b31 - renamed FTexture's UseType flags and gave them a dedicated type.
This was done mainly to reduce the amount of occurences of the word FTexture but it immediately helped detect two small and mostly harmless bugs that were found due to the stricter type checks.
2018-03-25 20:26:16 +02:00
Christoph Oelckers
da74b9df95 - serialize the temporary music volume that can be set through ACS. 2018-03-24 13:07:18 +01:00
Jason Francis
bd7791ad9c Allow setting string user variables in ACS 2018-03-24 10:20:39 +01:00
Jason Francis
4494b18e8a Enable string & float user_ properties in UDMF things 2018-03-24 10:20:39 +01:00
Christoph Oelckers
011bf9d9aa - another one... 2018-03-11 22:44:05 +01:00
Christoph Oelckers
b939836846 - renamed FileRdr back to FileReader. 2018-03-11 19:29:37 +01:00
Christoph Oelckers
0be1ed252b - rewrote the operator>> methods of FileReader as normal functions for clarity. 2018-03-11 18:20:49 +01:00
Christoph Oelckers
8bbfd39f42 - fixed some remaining issues:
* initial positioning in a subsection of a file failed. This mainly affected music playback.
* made the FileRdr constructor which takes a FileReaderInterface private so that everything that needs it must be explicitly declared as friend.
* removed a few redundant construction initializers for FileRdrs.
* loading compressed nodes needs to check the validity of its reader.
* use GetLength to detemine the size of a Zip file instead of doing another seek to the end.
* removed duplicate Length variables.
2018-03-11 13:26:30 +01:00
Christoph Oelckers
b14ee50d0d - transition to new FileReader interface complete, but untested. 2018-03-11 12:33:46 +01:00
Christoph Oelckers
247785bca2 - converted map loader to FileRdr and took the opportunity to clean up its interface. 2018-03-10 21:48:33 +01:00
Christoph Oelckers
5fa63c396d - sound code and most of texture code converted to FileRdr.
This allowed to remove a lot of bad pointer voodoo in the music loader, because the new class does not allow duplication of the reader object
2018-03-10 18:45:11 +01:00
Rachael Alexanderson
420602e154 - check for deathmatch starts before forcing an unfriendly player to use them. 2018-02-20 05:35:40 -05:00
Rachael Alexanderson
ee9736fbb3 - print out FriendlySeeBlocks on 'info' ccmd
- not setting FriendlySeeBlocks on UDMF now causes the actor to use its ZScript default
2018-01-09 15:48:19 -05:00
Rachael Alexanderson
9c189e5d4b - expose a monster's 'friendlyseeblocks' to UDMF 2018-01-09 15:30:45 -05:00
Rachael Alexanderson
9fd78e90ad - export 'GetChecksum' as part of FLevelLocals in ZScript 2018-01-06 19:59:49 -05:00
alexey.lysiuk
a11e9ca4dc Apply compatibility flags to all map format
UDMF maps were no affected by settings in compatibility.txt
2017-12-24 10:33:29 +02:00
Rachael Alexanderson
a3a350e6e8 - fixed: make level.ShaderStartTime use the same values as what screen->FrameTime normally gets. 2017-12-07 16:31:27 -05:00
Rachael Alexanderson
909daadd75 - update more millisecond-storing data structures to u/int64_t to fix possible rollover bugs 2017-11-15 20:33:08 -05:00
Rachael Alexanderson
ab32cb4c88 - track level start time for the shader system, reset the shaders. 2017-11-15 11:06:21 -05:00
Christoph Oelckers
0323f54384 - rename I_FPSTime function.
- now that the frame buffer stores its render time, the 'ms' return from I_GetTimeFrac is not needed anymore, we may just as well use the globally stored value instead.

The only feature this value was ever used for was texture warping.
2017-11-13 00:54:32 +01:00
Christoph Oelckers
6bd76d6b5a - fixed compilation in debug mode.
- moved timer definitions into their own header/source files. d_main is not the right place for this.
- removed some leftover cruft from the old timer code.
2017-11-12 09:06:40 +01:00
Magnus Norddahl
307d8931d8 - Switch to C++11 steady clock
- Move the C++11 implementation to d_main
- Remove the platform specific timer implementations
2017-11-12 03:12:22 +01:00
Rachael Alexanderson
fa3846ccc6 Merge https://github.com/coelckers/gzdoom 2017-05-05 00:36:22 -04: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
5d11c9962b Merge commit '8db239d' 2017-04-18 11:33:52 -04: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
Rachael Alexanderson
93564078fe Merge https://github.com/coelckers/gzdoom 2017-04-14 01:05:26 -04: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
Rachael Alexanderson
a15031706d Merge https://github.com/coelckers/gzdoom 2017-04-12 20:33:38 -04: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
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
Rachael Alexanderson
959fb2577b - Unfriendly players now spawn at deathmatch starts. 2017-03-24 14:59:25 -04:00
Christoph Oelckers
2c7ceaf96a - fixed the check for one-subsector BSPs. 2017-03-18 22:44:03 +01:00