Commit Graph

10441 Commits

Author SHA1 Message Date
Magnus Norddahl 5de8112578 Add support for capping sky with a solid color 2016-10-19 23:52:09 +02:00
Magnus Norddahl 4ccb69fa61 Palette version of sky drawers 2016-10-19 23:21:09 +02:00
Christoph Oelckers 2d85efce2a - added processing of compound statements to the compiler. This means that anonymous functions without control statements are generating code now.
- added local variable declarations to the code generator. This is not tested yet, that will come with the next commit.
2016-10-19 19:05:48 +02:00
Magnus Norddahl d5865a46a0 Move triangle drawer into a command and change the sky code to use it if r_cubesky is enabled 2016-10-19 17:44:50 +02:00
Christoph Oelckers 8a6230d64a - Renamed FxSequence to FxCompoundStatement.
- fixed: The state parser was unable to accept empty anonymous functions, which should be treated as if there is none at all.
2016-10-19 16:15:02 +02:00
Magnus Norddahl ea72152c31 Add doom style column clipping to triangle drawer 2016-10-19 15:43:10 +02:00
Christoph Oelckers 458c68775f - fixed handling of loop statements.
All break and continue statements were collected in one list, and each loop statement taking hold of that entire list, including the breaks and continues from previous outer loops.
Changed it so that loop statements contain the jump addresses themselves and set a pointer in FCompileContext, so that the jump point can be set directly in the loop statement - and an error printed if there is none in the resolving stage, not the emitting one.
Consolidated the identical backpatching code of the three loop statement nodes into a subfunction.
2016-10-19 14:36:54 +02:00
Magnus Norddahl 6a7bb43ce1 Fix clipping bug 2016-10-19 14:32:28 +02:00
Christoph Oelckers cfbcfc440d - 'fixed' local variable declrations to work like C, not like some Lua-inspired nightmare. Also added proper initialization syntax for arrays. 2016-10-19 13:07:44 +02:00
Christoph Oelckers 33567741f5 - fixed: The parser was not generating a compound statement node for anonymous action functions. 2016-10-19 10:38:25 +02:00
Magnus Norddahl ef70ba0985 More triangle rendering 2016-10-19 03:49:42 +02:00
Christoph Oelckers 665d752686 - added 'null' token to the ZScript parser which is needed for null pointers.
- removed function declaration parser from DECORATE because it is not needed anymore.
- fixed: comparison operators could not handle names.
2016-10-19 00:35:34 +02:00
raa-eruanna 68efdf5cef - Fixed: Added linker flags for Linux to prevent crashes using LLVM. Using fix found by dpJudas. 2016-10-18 18:21:22 -04:00
Christoph Oelckers f6b3cdc23d - converted the Chex Quest actors, completing the DECORATE conversion. 2016-10-18 23:22:41 +02:00
Christoph Oelckers 5643831ccc - converted all Strife actors. 2016-10-18 23:05:58 +02:00
raa-eruanna 226287875b Creating 0.2pre tag 2016-10-18 14:07:44 -04:00
Magnus Norddahl 694cae054c Add some experimental draw triangle code 2016-10-18 18:23:56 +02:00
Christoph Oelckers 1bdc1ccb6c - converted the remaining Hexen actors. 2016-10-18 18:11:13 +02:00
raa-eruanna 79b14bbc08 - Updated version.h for beta tag 2016-10-18 11:38:35 -04:00
raa-eruanna 7df28f14a3 Merge http://github.com/rheit/zdoom 2016-10-18 11:34:12 -04:00
Christoph Oelckers 2c1d9a7a96 - another bunch of Hexen actors converted. 2016-10-18 15:15:06 +02:00
Christoph Oelckers bef71f29e2 - make generation of the AST dump a command line parameter instead of having it depend on running a debug build.
- disable generation of the parser's trace file in debug builds.

This increases parsing time by a factor of 15 and is only needed when debugging a problem in the grammar.
2016-10-18 10:17:09 +02:00
Christoph Oelckers 61cc7dbb29 - another batch of Hexen items converted.
- fixed parsing of named damage types and pain chances.
2016-10-18 10:09:02 +02:00
Marisa Heit 1652c02a08 Add unsigned division opcodes to the VM 2016-10-17 22:37:49 -05:00
Marisa Heit d2a9f7ac6f Fix Raise definition for DoomImp 2016-10-17 21:45:06 -05:00
Magnus Norddahl 49b4860426 Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2016-10-18 01:16:45 +02:00
Magnus Norddahl df3f5ae882 Use OpenGL to allocate the canvas buffer to avoid a costly memcpy 2016-10-18 01:16:36 +02:00
Christoph Oelckers 646f9b21c7 Merge branch 'master' of https://github.com/rheit/zdoom into zscript
# Conflicts:
#	src/scripting/codegeneration/codegen.cpp
2016-10-18 00:55:56 +02:00
Christoph Oelckers 4aecc4f565 - more Hexen conversions. 2016-10-18 00:49:13 +02:00
Christoph Oelckers d66631478a - converted some Hexen stuff. 2016-10-17 23:27:34 +02:00
raa-eruanna f32a2547bc - Fixed LLVM compile for LLVM 3.8 (Ubuntu) 2016-10-17 16:05:14 -04:00
Christoph Oelckers 1c21dbc44c - handle trinary conditional statement. 2016-10-17 21:43:14 +02:00
Christoph Oelckers a6a0c4b93c - handle all unary operators.
- handle all binary operators which are already implemented in the code generator.
- implemented sizeof/alignof operators in code generator.
- rewrote RequestAddress so that its return value is not the writability of an address but the mere existence. Also changed it to not output errors itself because those cannot be dealt with by the calling function.
2016-10-17 20:33:35 +02:00
Christoph Oelckers 23a2a19a78 - added handling for shift and bit operators.
- added the '>>>' (unsigned shift) operator. Although, with unsigned numbers available, this is technically not really needed, DECORATE supports this so ZScript should, too, if only for the benefit of making conversion tools easier to handle.
2016-10-17 15:52:29 +02:00
Christoph Oelckers 938ab4ca70 - implemented '**' (power) operator. To ensure reliability, acustom 'pow' function will be used to calculate it.
- fixed: FxBinary::ResolveLR' check for numeric operations was incomplete. Like far too many other places it just assumed that everything with ValueType->GetRegType() == REGT_INT is a numeric type, but for names this is not the case.
2016-10-17 15:17:48 +02:00
raa-eruanna cd21d017fb Merge remote-tracking branch 'remotes/origin/decorate-viewbob' 2016-10-17 09:04:37 -04:00
Christoph Oelckers d0a8960f61 - added genuine PEX_GT, PEX_GTEQ and PEX_NEQ operations to the parser.
These were previously faked with the inverse plus a boolean not. Although this works, it either leads to sub-optimal code generation or some fudging to avoid the inefficient handling.
Just adding proper handling to the parser seems the easiest and most straightforward way to get around this. The code generator already can deal with these operations properly so there's no good reason to do it differently.
2016-10-17 14:38:51 +02:00
Christoph Oelckers 552f094ec1 - converted the rest of Heretic's actors.
- fixed: Boolean constants were not properly handled.
2016-10-17 12:58:23 +02:00
Magnus Norddahl af937366d1 Added DetectRangeError function 2016-10-17 12:36:01 +02:00
Magnus Norddahl c9a9e93c66 Fix warning C4805: '!=': unsafe mix of type 'bool' and type 'int' in operation 2016-10-17 11:54:03 +02:00
Christoph Oelckers c13916ea18 - converted more Heretic actors. 2016-10-17 10:07:12 +02:00
raa-eruanna 931d241056 - Change "vid_used3d" to true by default, in Windows. 2016-10-17 01:13:58 -04:00
raa-eruanna 4ec2db43a4 Merge http://github.com/rheit/zdoom 2016-10-17 01:13:16 -04:00
Braden Obrzut b4bdb8fa7d - Fixed: Assertion failure if a save was loaded without starting a new game (due to uninitialized RNG). 2016-10-17 00:22:06 -04:00
Braden Obrzut 741c9edf42 - Clear out GCC 6.2 warnings (interestingly they now check for misleading indentation which found a good case in fragglescript/t_func.cpp even though I believe it was harmless) 2016-10-17 00:19:08 -04:00
Magnus Norddahl f8f710d9e2 Fix linker errors on Windows 2016-10-17 01:17:48 +02:00
Christoph Oelckers c623539d2d Merge branch 'master' of https://github.com/rheit/zdoom into zscript 2016-10-17 00:33:28 +02:00
Christoph Oelckers 76f1b9d3f8 - converted the raven actors. 2016-10-17 00:21:52 +02:00
Magnus Norddahl c706d5465a Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2016-10-17 00:20:31 +02:00
Magnus Norddahl d654301bc2 macOS compile fixes and support for slightly older versions of LLVM (to allow Mac users to brew install llvm) 2016-10-17 00:19:07 +02:00