Commit Graph

10087 Commits

Author SHA1 Message Date
Christoph Oelckers c52bc06e9b - use a memory arena to allocate msecnodes.
These are rather small and extremely frequently allocated, so they are prime candidates for memory arena, because it not only avoids fragmentation and internal overhead due to mass allocation of small memory blocks but it also makes it a lot faster to free the memory when finishing a level.
2017-01-06 13:09:58 +01:00
Christoph Oelckers ed25cf61c5 - moved the msecnode code to its own file.
Note that this originates from Boom so it needs to keep the Doom license.
2017-01-06 12:54:01 +01:00
Christoph Oelckers b11c8fef57 - renamed a few variables for clarity. 2017-01-06 11:56:17 +01:00
Christoph Oelckers 44ad55602d - got rid of uint32(-1) casts. 2017-01-06 11:43:27 +01:00
alexey.lysiuk b297047060 Removed useless integer type size expansion
Fixed Apple's Clang warnings:
absolute value function 'abs' given an argument of type 'long long' but has parameter of type 'int' which may cause truncation of value
2017-01-06 10:40:51 +01:00
alexey.lysiuk 1a0d8dffd9 Fixed harmless initialization order mismatch
No more 'field ... will be initialized after field ...' warnings reported by GCC/Clang
2017-01-06 10:40:51 +01:00
alexey.lysiuk 0e9f52f9e5 Added virtual destructor to FPresentShaderBase class
No more 'delete called on non-final class that has virtual functions but non-virtual destructor' warnings reported by GCC/Clang
2017-01-06 10:40:51 +01:00
alexey.lysiuk d77718d422 Fixed harmless uninitialized variables warnings
No more 'variable  is used uninitialized whenever switch default is taken' warnings reported by GCC/Clang
2017-01-06 10:40:51 +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 e0540c6b37 - fixed uninitialized variable warning in codegen.cpp 2017-01-06 10:33:58 +01:00
Christoph Oelckers fcb1c1edc4 - only print GL extensions to the log, but not to the console.
The list has become so long by now that it's more of a distraction than help. Besides, searching on-screen for specific extensions is futile anyway.
2017-01-05 12:01:00 +01:00
Christoph Oelckers c87836c3f3 - fixed check for Mesa driver. 2017-01-05 11:51:15 +01:00
Christoph Oelckers b74c374a66 - fixed: The CheckReturn check for FxSwitchStatement was not strict enough.
It may only return true if there is no default case because without that any non-matching value will go past the statement.
2017-01-05 11:39:29 +01:00
Christoph Oelckers e13627e9d8 - fixed: portal offsets at frame start were not applied to ViewActorPos. 2017-01-05 11:28:08 +01:00
Christoph Oelckers 3b7eb849a7 - fixed: The default minimum and maximum distances for A_Teleport were swapped. 2017-01-04 23:56:41 +01:00
Rachael Alexanderson 0a581754bf - Made WadSmoosh detection a lot stricter. 2017-01-04 20:48:52 +01:00
Rachael Alexanderson 8651cbc75a - Wildweasel pointed out that WadSmoosh generates a "SMOOSHED" lump. http://forum.zdoom.org/viewtopic.php?p=967226#p967226 2017-01-04 20:48:52 +01:00
Rachael Alexanderson 4fe3f7611c - Made WadSmoosh detection more flexible (since it doesn't necessarily require MAP01 to be present). 2017-01-04 20:48:52 +01:00
Rachael Alexanderson eb7f1b87e5 - Added Wadsmoosh detection. 2017-01-04 20:48:52 +01:00
Christoph Oelckers 4be9222646 - fixed: Dehacked must flag all states it touched for use in weapons. 2017-01-04 11:13:19 +01:00
Christoph Oelckers b132782c49 - scriptified PowerBuddha and PowerFrightener. 2017-01-03 21:03:05 +01:00
Christoph Oelckers 15f30886cd - scriptified the TimeFreezer powerup. 2017-01-03 20:06:20 +01:00
Christoph Oelckers 7fd35069d5 - completed attenuation for Heretic. A few items were intentionally left unattenuated. 2017-01-03 18:31:01 +01:00
Christoph Oelckers 6c8d1d3508 - fixed a few Freedoom light definitions. 2017-01-03 17:16:33 +01:00
Christoph Oelckers 341d9abdd0 - fixed: 'out' parameters must always allocate an address register, regardless of type. 2017-01-03 16:00:25 +01:00
Christoph Oelckers 96623b3052 - disabled OpenGL 3.0 on the Open Source Mesa driver for Linux because it appears to be broken. 2017-01-03 12:01:03 +01:00
alexey.lysiuk 2dec45ca39 Fixed compilation with GCC/Clang
Fixes #175
2017-01-03 09:45:53 +02:00
Christoph Oelckers 0dca13b49e - added attenuation to ca. 40% of Heretic's light definitions. 2017-01-03 01:04:37 +01:00
Christoph Oelckers bf09a89b5d - fixed typo in A_BrainSpit. 2017-01-02 23:26:19 +01:00
Christoph Oelckers 1261046f1a - fixed: The check for explicitly not splitting wall polygons at seg vertices was inverted. 2017-01-02 23:21:28 +01:00
Christoph Oelckers e7cd5ec2bb - fixed: The conditional operator could clobber a local variable if it was the result of the true expression. 2017-01-02 22:26:36 +01:00
Christoph Oelckers 1a16f664e4 - added a TStaticArray class that allows safe access to resizable static data (like the sectors, linedefs, etc.) for the VM.
- used this to replace the line list in Sector because that gets already used and implemented proper bounds checks for this type of array.
2017-01-02 21:40:52 +01:00
Christoph Oelckers b31b6589e7 - fixed: PPointer was unable to handle pointers to class types for savegames. 2017-01-02 13:37:09 +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 9948189193 - scriptified PowerProtection and PowerDamage.
- made ModifyDamage calls iterative instead of recursive. With going through the VM they'd be too costly otherwise.
- small optimization: Detect empty VM functions right when entering the VM and shortcut them. This is to reduce the overhead of virtual placeholders, which in a few cases (e.g. CanCollideWith and ModifyDamage) can be called quite frequently.
2017-01-01 23:11:48 +01:00
Christoph Oelckers 1d3afce59b - let SBARINFO treat 'null' as 'untranslated'. Strictly speaking this wasn't a bug but apparently some people tend to use 'null' as a general placeholder for 'nothing', even where not intended. 2017-01-01 22:52:11 +01:00
Christoph Oelckers 5de3d662cb - re-added the glow properties for UDMF which somehow got lost. 2017-01-01 19:36:51 +01:00
Christoph Oelckers 66cc68606f - scriptified the methods of APowerMorph.
- made some changes to PowerMorph to better deal with recursive calls from UndoPlayerMorph. The flag hackery was only needed because the 'alternative' pointers were cleared far too late.
2017-01-01 19:23:43 +01:00
Christoph Oelckers 2d2963ead4 - fixed: The StripRight fix left some code from a previous fix in that no longer applies. 2017-01-01 16:55:45 +01:00
Christoph Oelckers 80effbb547 - fixed: A_M_Refire's 'ignoremissile' parameter lost its default value. 2017-01-01 15:41:40 +01:00
Christoph Oelckers 5d9cea9e0e - fixed: FString::StripRight's space checking counter was broken and would cause deletion of the last valid character in the string. 2017-01-01 14:44:16 +01:00
Christoph Oelckers 356c5f2e08 - removed the ZScript warning. 2017-01-01 12:29:03 +01:00
Christoph Oelckers d5233c2bd2 - do the same for brightmaps, Doom's original ones also don't really match with Freedoom. 2017-01-01 12:19:15 +01:00
Christoph Oelckers 61a9a308e2 - forgot the filter directory. 2017-01-01 11:58:40 +01:00
Christoph Oelckers 3b30b4d979 - use filter directories for light definitions so that they do not get used for unwanted IWADs using the same game type.
- fixed light definitions for Freedoom to match the graphics.
2017-01-01 11:57:07 +01:00
Edoardo Prezioso 9575715b1e - Added support to GCC/Clang sanitizers. 2017-01-01 00:17:42 +01:00
Christoph Oelckers e4c63563e3 - fixed: The 3D floor light splitting code for sprites did not copy the sector's fog density.
- fixed: fog calculations for fuzz effects were wrong.
2017-01-01 00:16:53 +01:00
Edoardo Prezioso 6b943043d1 - Update the list of dummy actor flags from Zandronum. 2016-12-31 23:02:01 +01:00
Christoph Oelckers 28d79cc2b0 - added some profiling code to the VM. 2016-12-31 17:59:48 +01:00