Christoph Oelckers
3c30b59bab
more inventory scriptification
...
* completely scriptified DehackedPickup and FakeInventory.
* scriptified all remaining virtual functions of Inventory, so that its inheritance is now 100% script-side.
* scriptified CallTryPickup and most of the code called by that.
- fixed: Passing local variables by reference did not work in the VM.
2017-01-19 23:42:12 +01:00
Christoph Oelckers
19b1c10ba8
- scriptified a large part of the weapon code.
2017-01-19 17:40:34 +01:00
Christoph Oelckers
87b9b6111d
- scriptified the BeginPlay methods of the VavoomLight classes.
...
- moved m_Radius back to arg[3] and arg[4], so that scripts have access to light sizes again.
2017-01-18 19:10:25 +01:00
Christoph Oelckers
f759b6757a
- scriptified the teleport fog.
2017-01-13 23:17:04 +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
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
Christoph Oelckers
44ad55602d
- got rid of uint32(-1) casts.
2017-01-06 11:43:27 +01:00
alexey.lysiuk
9ed2da176e
Fixed signed/unsigned mismatch in comparisons
...
No more 'comparison of integers of different signs' warnings reported by GCC/Clang
2017-01-06 10:40:51 +01:00
Christoph Oelckers
7c3c886a90
- use the attenuated light definitions from QZDoom.
...
- apply them also to Freedoom.
- to compensate for the increase in light size required for attenuated lights to look correct, when running in legacy mode, they to be reduced in size to 2/3 of their defined size because the textured lighting method does not support real attenuation.
- removed the ancient size limit of 255 for light sizes which comes from a time when args were bytes.
2017-01-02 13:17:03 +01:00
Christoph Oelckers
6ab8e90911
- parse GLDEFS and its game-specific variants in lump order instead of both names sequentially.
2017-01-02 00:28:30 +01:00
Christoph Oelckers
02c3b3613f
- added UDMF properties to set glows per sector.
...
- for explicitly defined glows, use the one for the current animation frame, if an animated texture is active. For default glows it will still use the base texture's to avoid inconsistencies.
2016-12-28 21:35:42 +01:00
Edoardo Prezioso
3f7c057f92
- Fixed heap use after free issue with lights.
2016-12-26 18:23:17 +01:00
Christoph Oelckers
78737f9bc7
- fixed: The cycler for a pulse light needs to be reinitialized when new light properties get applied.
...
- do not clamp the cycler's output to a byte.
2016-12-23 15:25:39 +01:00
Christoph Oelckers
3558b2234c
- fixed: The dynamic light setup for walls did not portal-translate the light's coordinate.
...
- changed ADynamicLight::CollectWithinRadius to work iteratively to avoid the high stack overhead of 64 bit code.
2016-12-08 12:50:45 +01:00
Christoph Oelckers
1e950d75bd
- made dynamic light attenuation completely opt-in. This can be done either by setting a MAPINFO option for lights that do not automatically specify it and with a light property. The light property will always take precedence, if set.
2016-12-07 23:17:18 +01:00
Christoph Oelckers
c3fb43db3a
Merge branch 'gz-zscript'
2016-12-06 22:47:37 +01:00
Christoph Oelckers
c115c0a5b2
- fixed: Random flicker lights must set up their size on the first tic they are run. If not they will keep the radius of the previous effect which may be too large.
2016-12-06 18:35:34 +01:00
Christoph Oelckers
5dd63a86cf
- removed excess arguments for IMPLEMENT_CLASS.
2016-12-03 18:59:28 +01:00
Christoph Oelckers
3a2d0e3486
- copied all necessary adjustments from the test branch in the QZDoom repo.
2016-11-15 11:49:27 +01:00
Christoph Oelckers
bea625a42c
- added an ATTENUATE flag to dynamic lights, this is set by default for attached lights. For placed lights this is off, because it'd interfere with many existing maps that depend on unattenuated lights.
2016-10-23 20:42:48 +02:00
Christoph Oelckers
59576e6d23
- use the newly added OF_Transient flag to avoid writing out the owned dynamic lights to savegames instead of destroying and recreating them each time.
2016-10-16 09:12:43 +02:00
Christoph Oelckers
7ab7fc9a57
- seems I missed this part...
2016-10-03 16:21:50 +02:00
Christoph Oelckers
8907a8bfe8
- fixed incorrect function name in sprites drawer.
...
- fixed duplicate property key in ADynamicLight serializer. Radius was already claimed by AActor so this needs a different name.
2016-09-24 12:09:53 +02:00
Christoph Oelckers
ee2766d00b
- made adjustments for new savegame code.
2016-09-24 01:47:44 +02:00
Christoph Oelckers
8b6e09ca09
- changed the license of the OpenGL renderer to LGPL v3.
...
This was done to clean up the license and to ensure that any commercial fork of the engine has to obey the far stricter requirements concerning source distribution. The old license was compatible with GPLv2 whereas combining GPLv2 and LGPLv3 force a license upgrade to GPLv3. The license of code that originates from ZDoomGL has not been changed.
2016-09-14 20:01:13 +02:00
Christoph Oelckers
8b01a88b76
- removed gl_lights_size and gl_lights_intensity.
...
Both of these were inherited from ZDoomGL and in terms of light design in maps it makes absolutely no sense to have them user configurable. They should have been removed 11 years ago.
2016-09-04 12:45:09 +02:00
Christoph Oelckers
e7856ce1e3
- removed unused forceadditive parameter from gl_GetLight.
...
- restricted gl_lights_additive to legacy code and removed menu entry for this.
For modern hardware this setting is completely pointless, it offers no advantage and degrades visual quality. Its only reason for existence was that drawing additive lights with textures is a lot faster, and that's all it's being used for now.
2016-09-04 12:35:26 +02:00
Christoph Oelckers
63ad7d99d1
- fixed: The dynamic light buffer's behavior needs to obey the gl.lightmethod variable, and not depend on presence of persistently mapped buffers.
...
Since there is a command line switch to revert to the lower behavior it can well be that they do not match.
2016-08-04 12:55:21 +02:00
Christoph Oelckers
b90173ed21
- fixed: ADynamicLight::visibletoplayer was not initialized for placed lights when restoring a savegame.
2016-05-08 09:34:22 +02:00
Christoph Oelckers
ab8a647433
- fixed the disabled visibility rules check for dynamic lights by doing the actual check in the light's Tick() method and letting the renderer only use the result.
2016-05-04 11:33:18 +02:00
Christoph Oelckers
d4806f82ca
- reinstated some texturing-based dynamic light code. Not active yet and not tested yet.
2016-04-28 00:58:44 +02:00
Christoph Oelckers
6e1b21d513
- added back sprite splitting for low end, plus some dynamic light code.
2016-04-26 21:31:24 +02:00
Christoph Oelckers
1f32f5a258
- some minor fixing and cleanup on gL portal code.
2016-04-20 11:39:41 +02:00
Christoph Oelckers
faeb0303fe
- renamed ADynamicLight's intensity properties to radius, to have their name match their meaning.
2016-04-17 13:53:29 +02:00
Christoph Oelckers
a411b93e1d
- fixed: The dynamic pulse light should always use its maximum size for linking into the sector lists, just like the other types with changing size do.
...
These limking operations are not cheap so it's preferable to have them affect a bit more geometry than running the linking code each tic.
2016-04-12 16:01:08 +02:00
Christoph Oelckers
56f8974b66
- removed debug code.
2016-04-11 19:59:57 +02:00
Christoph Oelckers
273c1ea510
- fixed PointOnSide caclulation for dynamic lights.
2016-04-11 19:59:39 +02:00
Christoph Oelckers
25d7eaed0a
- fixed parentheses in ADynamicLight::DistToSeg.
...
- floatifed OpenGL sector grouping.
- optimized light node collection. It should not create light nodes for out of range segs.
2016-04-08 12:38:09 +02:00
Christoph Oelckers
58eb64a7e0
- fixed a few fixed/float parameter mixups.
2016-04-03 12:54:47 +02:00
Christoph Oelckers
a27181cb0b
- partial adjustments.
...
No point changing all the viewx/y/z stuff when that is about to get floatified next.
2016-03-31 21:42:27 +02:00
Christoph Oelckers
cf44d2e37a
- adjustments.
2016-03-30 20:01:44 +02:00
Christoph Oelckers
cadd8f2d4a
- made adjustments for changes to linedef delta.
2016-03-29 16:31:58 +02:00
Christoph Oelckers
a87c292f10
- adjustments to GL code for texture scale and vertex coordinate access.
2016-03-29 11:26:33 +02:00
Christoph Oelckers
b958a5d748
- adjustments in GL code.
2016-03-25 15:14:09 +01:00
Christoph Oelckers
379d5bc0c5
- fixed some issues with dynamic lights caused by the floatification changes
2016-03-24 13:38:37 +01:00
Christoph Oelckers
b54b34a512
- adjustments for floating point changes.
2016-03-21 02:57:02 +01:00
Christoph Oelckers
95d36670cf
- that portal check was not correct.
2016-03-10 15:15:37 +01:00
Christoph Oelckers
365c192a1d
- added portal support for dynamic lights.
...
This requires fixed offsets so it only works with linked portals.
2016-03-08 21:22:12 +01:00
Christoph Oelckers
bd9907f20f
- missing #includes in GL code.
2016-02-16 22:06:26 +01:00
Christoph Oelckers
dda73b531c
Merge branch 'master' of https://github.com/rheit/zdoom
...
# Conflicts:
# src/CMakeLists.txt
# src/p_setup.cpp
# src/r_defs.h
# src/version.h
This only updates to a compileable state. The new portals are not yet functional in the hardware renderer because they require some refactoring in the data management first.
2016-02-05 12:31:41 +01:00