Commit graph

37 commits

Author SHA1 Message Date
Christoph Oelckers
78fa0a6f95 - added option to print a map author's name on the summary screen
For now only with font-printed map names. Allowing this with titlepatches will require more work and an option to disable.

# Conflicts:
#	src/g_level.cpp
#	src/gamedata/g_mapinfo.h
#	src/gi.cpp
#	wadsrc/static/zscript/ui/statscreen/statscreen.zs
2019-08-06 18:46:23 +02:00
Christoph Oelckers
389c27c920 - fixed: 'level.frozen' still needs to be writable and have an effect.
# Conflicts:
#	src/gamedata/g_mapinfo.h
#	src/scripting/vmthunks.cpp

# Conflicts:
#	src/g_levellocals.h
2019-04-28 19:12:39 +02:00
Christoph Oelckers
074ee3238b - sanitized the 'frozen level' code.
This had two different flags that were checked totally inconsistently, and one was not even saved.
Moved everything into a few subfunctions so that these checks do not have to be scattered all over the code.

# Conflicts:
#	src/actorinlines.h
#	src/decallib.cpp
#	src/g_levellocals.h
#	src/hwrenderer/scene/hw_sprites.cpp
#	src/p_mobj.cpp
#	src/p_saveg.cpp
#	src/p_user.cpp
#	src/polyrenderer/scene/poly_particle.cpp
#	src/scripting/vmthunks.cpp
#	src/swrenderer/things/r_particle.cpp
#	wadsrc/static/zscript/actors/player/player.zs
#	wadsrc/static/zscript/base.zs

# Conflicts:
#	src/g_levellocals.h
#	src/hwrenderer/scene/hw_sprites.cpp
#	wadsrc/static/zscript/base.txt
2019-04-28 19:10:52 +02:00
drfrag
3e7e174d36 - Copied global compatibility flags to FLevelLocals. 2019-04-28 11:46:23 +02:00
Christoph Oelckers
f261ec7d53 - rewrote dynamic lights to not use actors for the internal representation and made DynamicLight a purely scripted class.
This should be less of a drag on the playsim than having each light a separate actor. A quick check with ZDCMP2 showed that the light processing time was reduced to 1/3rd from 0.5 ms to 0.17 ms per tic.
It's also one native actor class less.

# Conflicts:
#	src/g_shared/a_dynlight.cpp
#	src/g_shared/a_dynlight.h
#	src/hwrenderer/dynlights/hw_dynlightdata.cpp
#	src/hwrenderer/dynlights/hw_dynlightdata.h
#	src/hwrenderer/scene/hw_renderhacks.cpp
#	src/namedef.h
#	src/scripting/thingdef_data.cpp
#	src/swrenderer/line/r_walldraw.cpp

# Conflicts:
#	src/d_main.cpp
#	src/g_levellocals.h
#	src/g_shared/a_dynlight.cpp
#	src/g_shared/a_dynlight.h
#	src/gl/dynlights/gl_dynlight.h
#	src/gl/dynlights/gl_dynlight1.cpp
#	src/gl/scene/gl_spritelight.cpp
#	src/gl/scene/gl_walls.cpp
#	src/hwrenderer/dynlights/hw_shadowmap.cpp
#	src/hwrenderer/dynlights/hw_shadowmap.h
#	src/hwrenderer/scene/hw_flats.cpp
#	src/p_setup.cpp
2019-04-26 00:19:03 +02:00
Christoph Oelckers
cd8791d68c - fixed sprite sorting in the hardware renderer.
This did no longer sort sprites in the same position reliably since the feature to render sprites which only partially are inside a sector was added.
With this, sprites in the same position are no longer guaranteed to be added to the render list in sequence.
Fixed by adding an 'order' field to AActor which gets incremented with each spawned actor and reset when a new level is started.

The software renderer will also need a variation of this fix but its data no longer has access to the defining actor when being sorted, so a bit more work is needed here.

# Conflicts:
#	src/hwrenderer/scene/hw_drawlist.cpp
#	src/hwrenderer/scene/hw_sprites.cpp
2019-04-18 18:53:10 +02:00
Christoph Oelckers
d80d4bb228 - moved P_OpenMapData and related content out of p_setup.cpp.
# Conflicts:
#	src/g_levellocals.h

# Conflicts:
#	src/g_levellocals.h
2019-04-18 14:52:24 +02:00
Player701
e5fa48ae79 - Added a flag to make bouncing objects disappear when hitting sky surfaces 2019-04-16 17:28:33 +02:00
Christoph Oelckers
d123230fb1 - scriptified APlayerPawn::Die and fixed a few things I encountered while doing it. 2019-04-15 21:58:56 +02:00
Christoph Oelckers
95767fb63a - fixed some issues with the bodyque and moved this variable into FLevelLocals
* it was never saved in savegames, leaving the state of dead bodies undefined
* it shouldn't be subjected to pointer substitution because all it contains is old dead bodies, not live ones.

# Conflicts:
#	src/r_data/r_translate.cpp
2019-04-15 16:08:18 +02:00
ZZYZX
82a2bf3ac5 Single commit - destructible geometry feature
# Conflicts:
#	src/p_setup.cpp
2018-11-01 21:02:25 +01:00
alexey.lysiuk
807695783f - fixed portal restoration on revisiting level in hub
Added function to FLevelLocals to test if map is being reentered

https://forum.zdoom.org/viewtopic.php?t=60455
(cherry picked from commit 29d2e77840)
2018-06-11 12:25:30 +02:00
Christoph Oelckers
e5aca6dfa4 - some Transfer_Heights related optimizations.
* only call hw_CheckViewArea if the result is not known yet.
* check the map up front if it even contains heightsecs. This allows to shortcut the above check entirely for maps without sector transfers and will allow further optimizations.

(cherry picked from commit 3c49804c6c)

# Conflicts:
#	src/gl/scene/gl_bsp.cpp
#	src/gl/scene/gl_fakeflat.cpp
#	src/hwrenderer/scene/hw_fakeflat.h
2018-05-10 18:37:20 +02:00
Christoph Oelckers
da74b9df95 - serialize the temporary music volume that can be set through ACS. 2018-03-24 13:07:18 +01:00
alexey.lysiuk
996bddd602 Exposed pixel stretch to ZScript as member variable instead of function
https://forum.zdoom.org/viewtopic.php?t=58539
2017-12-29 09:42:03 +02:00
Major Cooke
1e7df5505e Added GetPixelStretch to LevelLocals struct. 2017-12-27 17:50:39 -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
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
Robert Cochran
077de36139 Fix method member being a qualified name
This breaks the Linux build with GCC. This is non-standard behavior, but
apparently Visual Studio allows it.
2017-03-18 22:44:21 +01:00
Christoph Oelckers
2c7ceaf96a - fixed the check for one-subsector BSPs. 2017-03-18 22:44:03 +01:00
Christoph Oelckers
a2f2be17ef - status screen fully scriptified but not active yet. 2017-03-18 19:35:26 +01:00
Christoph Oelckers
33d36157c8 - moved the blockmap into a substructure of FLevelLocals.
This part can certainly improved a lot but the most important thing, grouping all those global variables into one place, is done.
2017-03-17 14:24:21 +01:00
Christoph Oelckers
f864a09faa - moved more varialbles into FLevelLocals. 2017-03-17 12:49:43 +01:00
Christoph Oelckers
ea1d6634f7 - moved the Zones array into FLevelLocals.
- replaced TStaticArray with regular TArrays.

They had incomplete implementations preventing proper cleanup of the level loading code. It makes more sense to add the missing methods to the regular TArray and use that.
This also makes some changes to how the game nodes are used to avoid creating a copy: If the head node's pointer is stored in a separate variable, no code needs to check which of the two arrays gets used.
2017-03-17 12:11:37 +01:00
Christoph Oelckers
fea4079b7c - moved nodes into FLevelLocals. 2017-03-17 01:42:37 +01:00
Christoph Oelckers
f201dab534 - moved the subsectors into FLevelLocals. 2017-03-17 00:22:52 +01:00
Christoph Oelckers
59b684bdbc - moved the segs array into FLevelLocals. 2017-03-16 21:34:04 +01:00
Christoph Oelckers
44a087554f - moved the OpenGL fog properties to FLevelLocals to simplify their handling.
- added access to the glow properties for ZSCript and ACS.
2017-03-14 13:54:24 +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
8ab562ef13 - the fourth. 2017-03-08 18:55:54 +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
2440951811 -scriptified the ReadThis screen. 2017-02-19 00:08:30 +01:00
Christoph Oelckers
1d2ae53ecb Revert "- made r_fullbrightignoresectorcolor a MAPINFO option, so far only working on the software renderer. GL still needs a few changes to handle it correctly."
This reverts commit dd03bb1fcb.

Turns out that making this work in GL will create a complete mess so better remove the option as it would only cause problems.
2017-01-28 18:26:52 +01:00
Christoph Oelckers
dd03bb1fcb - made r_fullbrightignoresectorcolor a MAPINFO option, so far only working on the software renderer. GL still needs a few changes to handle it correctly. 2017-01-28 12:20:18 +01:00
Christoph Oelckers
a9ef73528d - removed all skybox class types from code in preparation for exporting these classes.
- moved SectorPortal struct to FLevelLocals and exported it.
2017-01-14 16:05:40 +01:00
Christoph Oelckers
12037fdc95 - made the vertexes array VM friendly. 2017-01-09 00:46:16 +01:00
Christoph Oelckers
cd7986b1b1 - refactored global sides array to be more VM friendly.
- moved FLevelLocals to its own header to resolve some circular include conflicts.
2017-01-08 18:46:17 +01:00