Commit Graph

15311 Commits

Author SHA1 Message Date
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 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
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
alexey.lysiuk d3461be40c - made 'return void' case a compilation error 2018-11-01 11:18:22 +01:00
Christoph Oelckers b79622bcba - added far stronger restrictions for when the Boom-Texture-Y-offset compatibility flag may trigger.
This had absolutely no sanity checks and unconditionally picked the source texture if one existed.
It should only be done for wall textures, only for those defined in TEXTUREx and only for those where the scale is identical with the underlying texture.
2018-11-01 10:51:57 +01:00
Christoph Oelckers c5153ca095 - fixed: Do not pass Sysex messages to Windows's GS Wavetable synth.
This will totally refuse to play a MIDI if that happens.
Duke Nukem's Alienz.mid, which did not play before works after this change.
2018-11-01 10:22:21 +01:00
Christoph Oelckers f7ce4dd2da - added fake vid_renderer CVAR so that mods that checked for it to determine the renderer will get 1 returned instead of 0.
The majority of mods which did such a thing checked for the hardware renderer so this should be the default.
2018-11-01 09:43:11 +01:00
Christoph Oelckers 9df7ce1f9a - fixed: P_DamageMobj should clear reactiontime only for non-players.
For players this variable has an entirely different meaning which does not agree with being modified here.
2018-11-01 09:27:38 +01:00
Christoph Oelckers aa69d63a65 - made DBrokenLines serializable. 2018-11-01 09:02:20 +01:00
Christoph Oelckers 23aff98e90 - fixed handling of wrapped midtextures to be actually useful when used in sky sectors. 2018-11-01 08:02:11 +01:00
ZippeyKeys12 77c5c1eb19 Export AllClasses 2018-11-01 00:20:46 +01:00
Vitaly Novichkov 8450dc5fdb Update GME up to 0.6.2 version 2018-11-01 00:15:41 +01:00
Cacodemon345 eaaf0cb8f6 Fix bounce state not entering when hit from top. 2018-11-01 00:11:57 +01:00
Jonathan Russell f39a389e99 - changed the way alpha works on DrawLine and DrawThickLine so they're consistent 2018-11-01 00:10:47 +01:00
Major Cooke 6a8b0df4ba Added VelIntercept.
- Uses the same code as Thing_ProjectileIntercept to aim and move the projectile.
  - targ: The actor the caller will aim at.
  - speed: Used for calculating the new angle/pitch and adjusts the speed accordingly. Default is -1 (current speed).
  - aimpitch: If true, aims the pitch in the travelling direction. Default is true.
  - oldvel: If true, does not replace the velocity with the specified speed. Default is false.

- Split the code from Thing_ProjectileIntercept and have that function call VelIntercept.
2018-11-01 00:10:08 +01:00
ZZYZX 849d110f10 Fixed sector floor/ceiling actions not triggering in P_XYMovement 2018-11-01 00:05:43 +01:00
Christoph Oelckers a388b6c8ab - added missing nullptr check. 2018-10-31 23:23:02 +01:00
ZZYZX a6cdcab128 Implemented loading/saving of line/sector health and health groups in savegames 2018-10-31 22:14:40 +01:00
Tommy Nguyen 40c56bad09 - fix _mm_pause() compiler error and zero initialize atomics 2018-10-31 22:35:56 +02:00
Christoph Oelckers 98b8a2b1f4 - missed one place where FBrokenLines was used. 2018-10-31 20:36:23 +01:00
Christoph Oelckers 4343d0b9c5 - fixed: An exception inside DestroyAllThinkers could send the engine into an endless loop of failed destructions. 2018-10-31 20:07:24 +01:00
Christoph Oelckers 0d54d335c4 - use a saner data structure to store the BrokenLines.
Calling the old method with a pointer to an array of unspecified length 'dirty' would be an understatement.
Now it uses a TArray to store the single elements
2018-10-31 19:13:54 +01:00
ZZYZX b911bbc424 Single commit - destructible geometry feature 2018-10-31 17:22:09 +01:00
Christoph Oelckers a33cc13054 - make GCC happy... :( 2018-10-31 17:20:04 +01:00
Player701 3e609f2b87 - Introduced an enum named EventHandlerType and changed the bool argument in E_NewGame to this type. 2018-10-31 17:19:21 +01:00
player701 04ae32f6f9 - Static NewGame events now fire before loading a map, and normal NewGame events fire after registering per-map handlers and before all other events.
- Static event handlers now unregister after per-map handlers.
- All event handlers now unregister in reverse order.
2018-10-31 17:19:21 +01:00
Christoph Oelckers 2dec7bb1e5 - added a non-multithreaded option for the renderer and fixed a few places where the wrong sector was used
The render_sector is only relevant for flats, but never for walls or sprites!
2018-10-31 17:13:22 +01:00
Christoph Oelckers 91df3f8c73 - added option to disable alpha testing for user shaders. 2018-10-31 15:56:20 +01:00
Christoph Oelckers 40da1dbfbc - removed bad 'return' in C_MidPrint definition. 2018-10-31 13:13:32 +01:00
Christoph Oelckers 37166b5faf - fixed missing binding of the light buffer.
I thought this wasn't needed but apparently the buffer refactoring caused this not to be done automatically anymore.
Best have it once at the start of each frame where the cost is negligible.
2018-10-31 12:48:09 +01:00
Christoph Oelckers 41fd34e424 - use standard sprite lighting for voxels.
Per-pixel lighting requires normals which voxels do not have.
2018-10-31 12:28:10 +01:00
Christoph Oelckers 3a6f186aa0 - removed memcpy workarounds from GLWall, GLFlat and GLSprite after making sure that all 3 are trivially copyable. 2018-10-31 11:51:52 +01:00
Christoph Oelckers fdf324cce5 - fixed error message for old OpenGL versions. There was still a mention of "with framebuffer support" which is core in 3.3. 2018-10-31 10:50:45 +01:00
Christoph Oelckers 533ded8d1e Merge branch 'master' into mt 2018-10-31 10:20:29 +01:00
Christoph Oelckers 790b121195 - added a bit of profiling code to the multithreaded parts of the renderer. 2018-10-31 10:20:06 +01:00
Christoph Oelckers 01a0af8ad1 - simplified the render job interface.
Since the job nodes were already taken from a static array, the added linked list isn't really needed. All we need is a read and a write pointer into the array, This can even be done without a spinlock as long as we assume that the list never overflows.
2018-10-31 09:49:07 +01:00