Commit Graph

15344 Commits

Author SHA1 Message Date
Christoph Oelckers 4d06c17a44 - a few more buffers converted. 2018-11-10 14:18:34 +01:00
Christoph Oelckers 6894912f44 - use TArray for most buffers in p_glnodes.cpp. 2018-11-10 14:15:39 +01:00
Christoph Oelckers 3448749de6 - replaced a few temporary allocations with TArray and added a few convenience loader functions for this.
Amazingly with today's optimizers this creates code which is just as good as doing it all manually with the added benefit of being safer.
2018-11-10 11:56:18 +01:00
Christoph Oelckers 602ea8f723 - made some minor changes to TArray after finding out that "new int()" is not the same as "new int".
With parentheses this initializes to 0 which created needless initialization code in a few places.
2018-11-10 10:43:35 +01:00
Christoph Oelckers cfe51f0c30 - hole filling subsectors must also be explicitly triangulated for the automap because they may be non-convex. 2018-11-10 08:04:03 +01:00
Christoph Oelckers 0caabbe355 - clear spechit before leaving P_CheckPosition.
Otherwise this may contain residual data from the last call.
One can only hope that this doesn't cause other side effects - this entire code is one horrendous mess of bad ideas.
2018-11-09 19:06:54 +01:00
Christoph Oelckers f6af50fc74 - restored portal code that shouldn't have been deleted. 2018-11-08 20:39:44 +01:00
Major Cooke cdd60b1431 Changed IsPointInMap to use P_PointOnDivlineSide. 2018-11-08 14:50:04 +01:00
alexey.lysiuk ed72843dec - fixed undefined behavior when grouping sections
The current group should not be accessed by reference because its container can be reallocated during iteration

https://forum.zdoom.org/viewtopic.php?t=62487
2018-11-07 23:04:42 +02:00
Major Cooke 9ff7f338fd Added IsPointInMap(Vector3 p).
- Checks if a point is inside the map geometry or not.
2018-11-07 15:16:45 -05:00
Christoph Oelckers 4eecaada67 - added copyright header to p_destructible.cpp 2018-11-07 19:27:35 +01:00
Christoph Oelckers bfffe6df3e - fixed typo with RNG name. 2018-11-07 19:20:42 +01:00
Christoph Oelckers 9661c3b53c - moved hw_Sections to r_data, because this is an essential component of the dynamic light system now so it is needed for all renderers. 2018-11-07 00:53:44 +01:00
Christoph Oelckers bad2a7c49b - silenced debug message in standard mode. 2018-11-07 00:43:11 +01:00
ZZYZX a276ebfb08 Exported destructible geometry to ZScript 2018-11-07 00:12:37 +01:00
ZZYZX ed3355acc6 Explode bouncing projectiles if hit damageable geometry 2018-11-07 00:12:37 +01:00
ZZYZX d85e5afdfb Destructible geometry - minor fixes and 3D floor support 2018-11-07 00:12:37 +01:00
Christoph Oelckers 752a64c840 - fixed typo in sight checking code. 2018-11-07 00:12:03 +01:00
Christoph Oelckers c28f001cb2 Merge branch 'sections' 2018-11-06 23:50:16 +01:00
Christoph Oelckers f2e593f8bf - disabled the hack for fixing the original design of the portal in KDiZD's Z1M1.
This portal got fixed in a later re-release of KDiZD and no other portal needs this runtime fix to my knowledge.
The main problem here is that this runtime fix requires some manipulation of the render data that does not work anymore.

Should other maps need this fix as well they are probably best served with a compatibility entry.
2018-11-06 21:41:16 +01:00
Christoph Oelckers 085bf0d33f - fixed Transfer_Heights and 3D floors. 2018-11-06 20:53:45 +01:00
Christoph Oelckers ddc75f7ba5 - made the common render hacks functional again as separate render items. 2018-11-06 20:31:44 +01:00
Christoph Oelckers a6e77ae094 Refactored the render hack storage so that it can be decoupled from the regular GLFlat render items.
Having these in there makes it impossible to change render techniques so these are better done as separate items.
2018-11-06 18:20:59 +01:00
Christoph Oelckers aee47d23bd - fixed validcount for real and added a side check for intra-section sides to light code. 2018-11-06 11:53:03 +01:00
Christoph Oelckers df52a71475 - fixed validcount. 2018-11-06 01:01:59 +01:00
Christoph Oelckers 87973ff504 - added handling for intra-sector lines to lighting code. 2018-11-06 00:47:43 +01:00
Christoph Oelckers ba66c0c889 - changed dynamic light traversal to use sections instead of the subsectors.
This is mostly complete, except for handling intra-section sidedefs.
2018-11-06 00:13:23 +01:00
Christoph Oelckers 9ddca3c3a9 - removed the subsector light lists as a preparation step to move over the light traversal code to use sections instead of subsectors. 2018-11-05 22:35:24 +01:00
Christoph Oelckers 375dd7e28f - the sections are now being used as the smallest element to draw flat planes.
This also removes one piece of code that was used to cope with the missing clip planes on old ATI cards, so support for those will most likely have to be dropped in the near future.
2018-11-05 22:14:18 +01:00
Christoph Oelckers 50bd9c3594 - flatvertex generation is working again. 2018-11-05 21:29:57 +01:00
Christoph Oelckers 625eb1e76a - FVertexBuilder's output looks correct now. 2018-11-05 21:11:54 +01:00
Christoph Oelckers 950ed07ae6 WIP 2018-11-05 15:30:50 +01:00
Christoph Oelckers d7db00d92e - sector rendering refactoring for sections - work in progress. 2018-11-05 01:01:48 +01:00
Christoph Oelckers 0deb388a75 - automatically create sections and store them with the level data.
- added subsector indexing to sections.

This is needed for finding a section from a point.
2018-11-04 22:19:11 +01:00
Christoph Oelckers 705c87c6cc - fixed bad case in #include. 2018-11-04 21:33:35 +01:00
Christoph Oelckers c847180bdc - reinstated the sector light clamping threshold from before version 3.3.
It turned out that without the clamping the feature does not work well, thanks to a poorly chosen scale of the original arguments.
2018-11-04 20:57:18 +01:00
Christoph Oelckers 49bfdbef9f - create an intermediate structure between sectors and subsectors.
A section is a continuous part of a sector or in some case of several nearby continuous parts. For sectors with far away parts multiple sections will be created, especially when they lie in disjoint parts of the map.
This is mainly supposed to cut down on time for linking dynamic lights. Since they need to traverse subsectors to find all touching sidedefs a more coarse data structure that only contains the info needed for this is more suitable. In particular, this does not contain any intra-sector lines, i.e. those with both sides in the same sector.
2018-11-04 20:10:51 +01:00
Player701 9b7114a96d - undid the save version bump 2018-11-04 19:58:57 +01:00
Player701 56f76a141e - Added a function to get the actor's age in ticks. 2018-11-04 19:58:57 +01:00
Player701 a6dbfcf9c2 - Added a new field to the Actor class which stores the amount of ticks passed since the game started on the moment the actor was spawned.
- Added a function to the Actor class to get its spawn time relative to the current level.
- Added spawn time information to the output of the "info" console command.
2018-11-04 19:58:57 +01:00
Cacodemon345 b1d35eb0b3 Extend SKYEXPLODE flag for LineAttack 2018-11-03 15:24:30 +01:00
alexey.lysiuk ce8c529422 - use Xcode 10.1 for Travis CI builds 2018-11-03 13:11:59 +02:00
alexey.lysiuk 53bf598aee - restored screen clear in Cocoa backend when setting video mode
This still doesn't work well in windowed mode
In fullscreen the effect is quite noticeable thought
2018-11-03 13:09:30 +02:00
Christoph Oelckers 1ccbbcb81d - added a method to FileReader to read the contents into an array and used it on the MIDI sources for testing. 2018-11-02 10:20:12 +01:00
Christoph Oelckers c07aeb7498 - use a single TArray to allocate the memory for the lump manager's hash lists. 2018-11-02 09:51:44 +01:00
alexey.lysiuk 8597c9e326 - added warning for constant conditional expression
ZScript code like `if (x = 0) // ...` no longer causes assertion failure in Debug but produces a warning regadless of configuration

https://forum.zdoom.org/viewtopic.php?t=62422
2018-11-01 16:05:27 +02:00
alexey.lysiuk d99aeb0895 - fixed potential crash when drawing status bar log
src/g_statusbar/shared_sbar.cpp:1133:34: warning: comparison of integers of different signs: 'unsigned int' and 'int'
[-Wsign-compare]
2018-11-01 13:37:11 +02:00
alexey.lysiuk b5853b4d8e - prevented GME compilation warning spam with Clang 2018-11-01 13:34:47 +02:00
alexey.lysiuk 504a7f00b6 - fixed two potentially dangerous compilation warnings
src/hwrenderer/dynlights/hw_lightbuffer.h:51:29: warning: comparison between signed and unsigned integer expressions
[-Wsign-compare]
src/hwrenderer/scene/hw_renderstate.h:196:44: warning: operation on '((FRenderState*)this)->FRenderState::mVertexOffsets[0]' may
be undefined [-Wsequence-point]
2018-11-01 12:51:22 +02:00
Christoph Oelckers b9f2cce8de - versioned the return mismatch check to demote it to a warning for older versions than 3.7. 2018-11-01 11:30:53 +01:00