Christoph Oelckers
71d1138376
- refactored the global lines array into a more VM friendly form, moved it to FLevelLocals and exported it to ZScript.
...
- disabled the Build map loader after finding out that it has been completely broken and nonfunctional for a long time. Since this has no real value it will probably removed entirely in an upcoming commit.
2017-01-08 14:39:16 +01:00
Christoph Oelckers
5ee52f159e
- refactored the level backup data needed by the serializer into p_saveg.h.
2017-01-08 12:11:31 +01:00
Christoph Oelckers
5ec786eef7
- removed the 'dumpmap' CCMD because it was mostly broken anyway and would require a complete rewrite in UDMF to get back on track.
2017-01-08 11:52:35 +01:00
Christoph Oelckers
d2a51a57e1
- added new Stairs_BuildUpDoomCrush special from Eternity and used it to fix the bad implementation to make Doom's turbo stairs crush. This also removes the crushing from Generic_Stairs entirely, just like it was in Boom.
2017-01-08 01:15:45 +01:00
Christoph Oelckers
3beed216dd
- exported all relevant functions from sector_t.
...
Please note that currently most of these have little use, they are for future feature support.
2017-01-08 00:50:40 +01:00
Christoph Oelckers
82adc5bf1e
- exported secplane_t to scripting.
2017-01-07 21:29:43 +01:00
Christoph Oelckers
91981e25a8
- moved all 'sectorptr - &level.sectors[0]' constructs into a subfunction.
2017-01-07 20:02:25 +01:00
Christoph Oelckers
c02281a439
- refactored the global sectors array into a more VM friendly type and moved it into FLevelLocals.
2017-01-07 19:32:24 +01:00
Christoph Oelckers
d381fb5e3f
- fixed: A_SetInventory must check for voodoo dolls and delegate the action to the real player because it will always break the real player's inventory if done so.
2017-01-07 15:44:39 +01:00
Christoph Oelckers
581cd27818
- floatified the translucency values in particle_t to elimintate the gross inaccuracies with fadeout time.
...
- widened ttl variable in particle_t to short to allow longer living particles than 6 seconds.
- reordered fields in particle_t to reduce struct size a bit.
2017-01-07 15:44:39 +01:00
Christoph Oelckers
42b1432b64
- fixed: initialization of local vector variables did not properly allocate registers if the initializer was a subelement of another local vector variable.
2017-01-07 15:44:38 +01:00
Christoph Oelckers
acf66d9f8f
- fixed some edge cases with visible player sprites through non-static line portals. This required reinstating some code which I thought was no longer needed.
2017-01-07 15:44:38 +01:00
Christoph Oelckers
62ea83a35a
- let the prediction code handle all 4 threaded lists an actor gets linked into.
...
This is mostly a straight refactoring of the existing code to work independently of specific member variables in the involved classes, using a bit of template magic to avoid redundancy and moving the work code into subfunctions.
It still needs some testing to see if it a) helps fix the crash issues and b) doesn't break anything-
2017-01-06 15:06:17 +01:00
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
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
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
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
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
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