Commit Graph

10386 Commits

Author SHA1 Message Date
alexey.lysiuk e138a3ffbc Fixed infinite recursion with self-referencing multipatch textures
See http://forum.zdoom.org/viewtopic.php?t=54355
2016-11-23 14:33:31 +01:00
Christoph Oelckers 5b059971f0 - fixed: P_SpawnMapThing forced gravity instead of disabling it when being given Gravity = 0 from UDMF. 2016-11-23 14:32:18 +01:00
Christoph Oelckers 6ae266c76e - fixed: The check for identical floor planes on an opening should never allow it to be narrowed down.
This can cause problems in rare situations where a sloped plane is checked outside its sector boundaries.
2016-11-23 14:27:08 +01:00
Edoardo Prezioso 0489b6e7c5 - Fixed missing newlines to the conversation error message. 2016-11-23 10:19:52 +01:00
Christoph Oelckers 649c96261a - clarified error messages for bogus conversation scripts. 2016-11-23 10:13:50 +01:00
Rachael Alexanderson 78db0a0d06 Merge branch 'master' of https://github.com/rheit/zdoom 2016-11-23 01:43:12 -05:00
Braden Obrzut 789315bb4a - Fixed build with MinGW-w64 (TDM-GCC 5.1). Note that the resulting binary will crash under -O3 until the alignment violation is taken care of in FRemapTable::Alloc.
- It appears that CMake added native support for building rc files with MinGW at some point so removed manual rc compiling code.
2016-11-22 22:41:32 -05:00
Christoph Oelckers 0c95568d98 - exported native fields of several more classes. 2016-11-23 01:31:48 +01:00
Magnus Norddahl ff738de279 Bgra support 2016-11-23 01:01:28 +01:00
Magnus Norddahl f313bfd2cc Merge branch 'gl_swframebuffer' into qzdoom 2016-11-23 00:56:39 +01:00
Magnus Norddahl 7beac65471 Add Linux support for GLSWFrameBuffer 2016-11-23 00:55:07 +01:00
Christoph Oelckers 46757ff8bf - exported the native fields of FState and FLevelLocals as well. 2016-11-23 00:35:06 +01:00
Christoph Oelckers 099b9970ef - added proper definitions for all exported native fields.
- synthesize native fields for all declared flags, not just for AActor.
2016-11-22 23:43:32 +01:00
Edoardo Prezioso e1c4e4939a - Fixed the order of the MS sections. 2016-11-22 21:20:42 +01:00
Edoardo Prezioso e2167c661c - Fixed GCC/Clang compile errors. 2016-11-22 21:16:13 +01:00
Christoph Oelckers 980c986305 - allow defining native fields through scripts. Internally this only requires exporting the address, but not the entire field.
- added new VARF_Transient flag so that the decision whether to serialize a field does not depend solely on its native status. It may actually make a lot of sense to use the auto-serializer for native fields, too, as this would eliminate a lot of maintenance code.
- defined (u)int8/16 as aliases to the byte and short types (Can't we not just get rid of this naming convention already...?)
- exporting the fields of Actor revealed a few name clashes between them and some global types, so Actor.Sector was renamed to CurSector and Actor.Inventory was renamed to Actor.Inv.
2016-11-22 19:20:31 +01:00
Christoph Oelckers ab5c11064a - added a few missing tildes. 2016-11-22 13:03:46 +01:00
Christoph Oelckers 03a02a2036 - updated copyrights in a few files. 2016-11-22 12:28:11 +01:00
Christoph Oelckers bbb0778fd4 - scriptified Chicken and Pig - not tested yet, because other things have priority. 2016-11-22 12:21:55 +01:00
Magnus Norddahl dacb985878 Fix texture mapping bug 2016-11-22 01:59:28 +01:00
Christoph Oelckers 3db712cd73 - fixed: Switch statement without a default jumped to the first first case label instead.
- removed placeholder code from scripted Marine.
2016-11-21 22:20:25 +01:00
Christoph Oelckers 135cfcf016 - implemented State as an actual native struct, so that its fields can be accessed from scripts.
- refactored state bitfield members into a flag word because the address of a bitfield cannot be taken, making such variables inaccessible to scripts.
- actually use PNativeStruct for representing native structs defined in a script.
2016-11-21 21:34:34 +01:00
Magnus Norddahl 7af504df58 Draw 3d floor sides 2016-11-21 20:50:54 +01:00
Christoph Oelckers ff3baac8a7 - made PStatePointer a real pointer pointing to a native struct named 'state', because that's what it really is and what it needs to be if we want to use a state as more than an opaque identifier in the VM 2016-11-21 19:36:14 +01:00
Christoph Oelckers 6cc00e79a6 - made all internal struct types NativeStructs so that all variables of their types are made references. 2016-11-21 19:20:27 +01:00
Christoph Oelckers 360436c201 - scriptified the scripted marines.
- fixed symbol name generation for native functions.
- moved PrintableName to VMFunction so that native functions also have this information.
2016-11-21 19:09:58 +01:00
Magnus Norddahl ddb0161f9c Sub pinkie crashes the pal drawer :( 2016-11-21 15:40:42 +01:00
Magnus Norddahl 0108ff89d7 Bug fixes 2016-11-21 15:20:07 +01:00
Magnus Norddahl fabac78ea8 Add poly renderer to the menus 2016-11-21 15:19:24 +01:00
Christoph Oelckers 97763b5a2b - added scriptable virtual overrides for PostBeginPlay, Tick, BeginPlay, Activate and Deactivate. 2016-11-21 14:59:17 +01:00
Christoph Oelckers 7d99552903 - added two new integral types SpriteID and TextureID, both are needed to allow proper serialization as they require something different to be written out than a regular integer. 2016-11-21 13:45:33 +01:00
Christoph Oelckers 7c122d03e9 - renamed all instances of 'float' parameters to 'double', so that the Float32 type can be made usable for structs. 2016-11-21 13:04:27 +01:00
Christoph Oelckers de2eb18727 - added per-channel access for color variables. However, since they are locally stored in registers, it required a minor bit of fudging for this case.
- make sure that a PFunction's implementation is always initialized before starting the code generator.
2016-11-21 12:38:39 +01:00
Christoph Oelckers 393bcf9e91 - extended ExpEmit::RegNum to 16 bits so that it can hold larger values for constant registers. 2016-11-21 10:50:09 +01:00
Christoph Oelckers 188c0ee932 - removed the REGT_NIL check from the PARAM_EXISTS macro, because with the implemented handling of named arguments it isn't possible that REGT_NIL can end up in the parameters without a programming error.. 2016-11-21 10:28:06 +01:00
Magnus Norddahl 5e9c9c825d Add stencil blend mode as apparently the shaded mode uses indices whiles stencil uses mask/alpha.. 2016-11-21 05:52:02 +01:00
Magnus Norddahl e7d64a380a Fix AABB culling bug 2016-11-21 05:09:53 +01:00
Kyle Evans 3270b20045 Remove non-existant source file 2016-11-20 21:33:23 -06:00
Magnus Norddahl 2ba2dc7611 Change shaded blend mode use srcalpha and destalpha.
Fix blending error in add/sub/revsub
2016-11-21 03:49:55 +01:00
Magnus Norddahl 144c7f4139 Flip sub and revsub TC drawers in the old renderer 2016-11-21 01:56:54 +01:00
Magnus Norddahl 29005b5ce6 Compile fix for older versions of LLVM 2016-11-21 01:40:08 +01:00
Christoph Oelckers e7f6bae83e - implemented named arguments.
- fixed flag CVAR access. As it turned out, OP_LBIT is a bit messy to set up properly when accessing integers that may or may not be big endian, so it now uses a shift and bit masking to do its work.
- used the SpawnPlayerMissile call in A_FireBFG to test named arguments.
2016-11-21 01:32:01 +01:00
Rachael Alexanderson dadee080e4 - Implemented Wall blend modes
- fixed: set color for "shaded" modes - though it's still not yet properly implemented.
2016-11-20 18:36:26 -05:00
Christoph Oelckers 7d8143224e - restored two accidentally deleted VM instructions. 2016-11-21 00:33:55 +01:00
Christoph Oelckers 0cbd260f96 - replaced all calls to GetCVar with direct CVar accesses. 2016-11-20 23:39:37 +01:00
Christoph Oelckers 8f722a3633 - fixed: FxCVar must free its address register. 2016-11-20 23:26:32 +01:00
Rachael Alexanderson 4ed548a189 - Implemented some sprite blend modes. 2016-11-20 17:07:58 -05:00
Christoph Oelckers e93961da96 - removed all constant versions of vector instructions. The vector code does not use compound constants so there's no need to have instructions for them.
- fixed: The code generator had no good safeguards for exceeding the maximum amount of registers.

All there was was a handful of pitiful asserts which in production code do nothing at all but generate broken output.
Even worse, the VM was hardwired to at most 255 constants per type per function by storing the constant count in a byte! This has been extended to 65535, but since many instructions only have a byte available for the constant index, a workaround had to be added to do a two-instruction setup if larger indices are needed.
2016-11-20 23:00:05 +01:00
Christoph Oelckers 1c2c26eb08 - implemented direct CVar access. 2016-11-20 20:24:39 +01:00
Christoph Oelckers 159f09105e - used static constant arrays to shorten some code. 2016-11-20 18:34:27 +01:00