Commit graph

11716 commits

Author SHA1 Message Date
Christoph Oelckers
acec2e5b07 Merge branch 'master' of https://github.com/rheit/zdoom into zscript 2016-10-11 00:57:31 +02:00
Christoph Oelckers
3b19887637 - implemented the Defaults property initializer.
This uses the same property and flag tables as DECORATE with a few changes:

 * it sets the parse mode to strict, so that several DECORATE warnings are now errors.
 * trying to change a deprecated flag will print a warning.
 * setting of editor numbers, spawn and conversation ID id not possible. Use MAPINFO to do this.
 * all subclass flags must use the qualified name now (e.g. +ALWAYSPICKUP will print an error.)
 * the scriptable Damage property is not yet implemented. This will require a special case with a differently named property in the processing function because in the AST it is no longer possible to distinguish between a damage value and a constant damage function.
2016-10-11 00:56:47 +02:00
Christoph Oelckers
084bf8c576 - fixed: VisibleAngle and VisiblePitch actor properties require both parameters to be present, but the second one was set to optional. 2016-10-11 00:23:50 +02:00
Magnus Norddahl
682b040b97 OpenGL based software renderer hardware accel now works for most things 2016-10-11 00:03:46 +02:00
Magnus Norddahl
f4308b3184 Add glsl shader version of the d3d9 shaders and get enough of it working for it to boot without errors 2016-10-10 21:03:55 +02:00
Major Cooke
b6b122b1e6 Added ability to change overlay alphas independently and renderstyles.
- A_OverlayRenderStyle(int layer, int style) - Sets the renderstyle of a layer to one of the STYLE_ types.
- A_OverlayAlpha(int layer, float alphaset) - Sets the alpha of a layer.
- OverlayAlpha(int layer) - Non-action function retrieves the alpha of a layer.

New overlay flags:

- PSPF_ALPHA/STYLE - enables individual alpha and render styles on the layers set with them.
- PSPF_FORCE(ALPHA/STYLE) - Forces the overlay's alpha to be rendered with its own amount instead of multiplying. This does not count towards fuzzy, transsouls, or stencil (use stenciladd, etc. for stencil).
- PSPF_FLIP - Flips the X of the layer over, drawing it in reverse.
2016-10-10 10:11:32 -05:00
Christoph Oelckers
2b9af0176c - changed grammar for a class's default block to look and act like DECORATE, so that it can hook into the same property dispatcher.
This had been defined as a regular compound statement but in the context this will be used in, that makes very little sense, because all it can do is set some constant values.
The most important thing here is that it doesn't provide an unnecessary learning curve to its users and doing it this way will not only ensure that but also avoid redundant documentation.
To allow initialization of other user-defined properties it will require some extensions but that's a job for later and can just as easily be done in the current framework, rather than throwing everything out and start from zero.
2016-10-10 16:53:24 +02:00
raa-eruanna
2a7b902a0a Merge http://github.com/coelckers/gzdoom
# Conflicts:
#	src/gl/renderer/gl_renderer.cpp
2016-10-10 10:39:07 -04:00
Christoph Oelckers
14a6e7989b Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	wadsrc/static/menudef.txt
2016-10-10 11:38:08 +02:00
Major Cooke
31ca5a1900 Added OverlayX/Y(int layer)
- Retrieves the X/Y positions of an overlay.
- A_OverlayFlags and A_OverlayOffset now interpret a layer of 0 to mean 'use this calling layer'.
2016-10-10 10:48:50 +02:00
alexey.lysiuk
a771a3edd4 Fixed potential crash caused by A_Warp()
ACSF_Warp case was refactored to express its intention clearly
http://forum.zdoom.org/viewtopic.php?f=2&t=53734
2016-10-10 10:47:43 +02:00
Magnus Norddahl
40df46f94e Implement OpenGL versions of GPU objects 2016-10-10 07:39:02 +02:00
raa-eruanna
1fab0cc514 - Added: PlayerPawn property "Player.ViewBob" which acts as a MoveBob/StillBob multiplier. 2016-10-10 01:35:47 -04:00
Christoph Oelckers
e84d6a06d8 - changed PClass:AddField so that it doesn't create defaults if none are present. The ZScript compiler will not create any defaults until after all fields have been added and this function created bad data if it was run on a class without defaults.
- added checks for duplicate field names.
- moved the tree node symbol tables out of PSymbolTreeNode to the worker data. That symbol is a bad location because it restricts the usefulness of the symbol class which is also needed for variables which use different AST structs.
- fixed some memory management issues with the work classes for the compiler that became apparent after moving the symbol tables in there. In several places these were copied around, possibly losing data.
2016-10-10 01:18:47 +02:00
Christoph Oelckers
4ecd7dd13a - a bit of cleanup. 2016-10-09 22:01:23 +02:00
Christoph Oelckers
ad43f2bc7e - parse the list of class/struct fields and add the PField entries to their type.
- fixed a few issues with trying to access a class's Type before it got initialized.
2016-10-09 21:54:23 +02:00
Christopher Bruns
779e6acb7b Create "final" two non-VR 3D modes: Column-interleaved and checkerboard. 2016-10-09 13:05:50 -04:00
Magnus Norddahl
5f0088ab8b Created new OpenGL framebuffer using the software renderer's hardware acceleration 2016-10-09 12:50:57 +02:00
Christoph Oelckers
49f18c0a19 - renamed the symbol tables holding the tree nodes so that the code becomes clearer to read. Necessary because the unclear naming caused:
- fixed: The tree nodes for classes and struct members were stored in the global tree nodes table.
- sort variable declarations into their own list for processing.
2016-10-09 09:09:17 +02:00
Magnus Norddahl
94d8e10f96 Merge branch 'ssao' into qzdoom 2016-10-09 06:27:42 +02:00
Magnus Norddahl
1b7c42f45f Multisampling ssao bug fixes and split linear depth to its own buffer 2016-10-09 06:17:48 +02:00
Christoph Oelckers
6bad4809c1 - uncommendted constants.txt after finishing work on the constants creation code. 2016-10-08 22:20:38 +02:00
Christoph Oelckers
efcd5a8683 - forgot to delete these lines. 2016-10-08 22:18:51 +02:00
Christoph Oelckers
08f313d011 - implemented complete resolving of constants - both global and class-local.
This uses a different algorithm as the old implementation - instead of recursively resolving unknown symbols it will first collect all constants from all scopes and then process them in one operation, doing multiple passes over the list until no more constants can be resolved anymore.
2016-10-08 22:16:10 +02:00
Christoph Oelckers
5bb6bb31ca - added ProcessStruct, analogous to ProcessClass.
Now everything should be in place to resolve all constants - inside and outside classes or structs.
2016-10-08 15:39:54 +02:00
Christoph Oelckers
d139ee9f68 - give the 'default' block its own node type in the AST.
- group a class's body the same way as the global AST. Only partially implemented so far so that constants can be processed.
2016-10-08 15:27:20 +02:00
alexey.lysiuk
9a72ef1bf1 Added detection of current macOS version 2016-10-08 15:47:16 +03:00
Christoph Oelckers
82ac2081b6 - create struct types.
- fixed class creation. There was an infinite loop and some missing checks for native classes.
- do not write the compiler's symbols to the same symbol table as the output. The output must go to GlobalSymbols but the internal symbols must go to a namespace specific table that can be discarded after compilation.
2016-10-08 13:34:37 +02:00
Christoph Oelckers
b71e8d09ed - create class types from the AST.
This is the first thing the compiler has to do to get access to the class's symbol table. Of course at this point the final size of a class is not known yet so these are currently all treated as tentative.
2016-10-08 11:54:33 +02:00
Magnus Norddahl
fc07a25306 Add aliasing meta data to loads and stores 2016-10-08 09:29:26 +02:00
Christoph Oelckers
fff428c71d - added copyright headers to scripting files. 2016-10-08 08:35:16 +02:00
Magnus Norddahl
0b0ee2e3c2 Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2016-10-08 06:50:42 +02:00
Magnus Norddahl
b3be0d22cc Unroll loops by 8 and enable some additional passes 2016-10-08 06:50:33 +02:00
raa-eruanna
f5681cf42f Merge http://github.com/rheit/zdoom 2016-10-08 00:31:54 -04:00
Magnus Norddahl
606b7f5a00 Run module level LLVM optimization passes before calling finalizeObject 2016-10-08 04:59:24 +02:00
Christoph Oelckers
994bb4fc7a - started to make ZScript parser work on real-life data. It will now read a lump named ZSCRIPT which is a list of filenames to be compiled.
- place generated symbols into GlobalSymbols instead of a scratch table that will be discarded right away.
- allow the state object to change source file scanners (I hope this works, but the old implementation was unable to do more than one with with a parse state so I had to change it.)
- It can now parse constants.txt and insert everything in it into the global symbol table and make subsequent DECORATE compile properly.
2016-10-08 01:05:27 +02:00
Christoph Oelckers
04d4bda262 - converted all constants to enums and gave the enums names. 2016-10-07 18:09:28 +02:00
Christoph Oelckers
6487681736 - started porting constants.txt 2016-10-07 17:49:00 +02:00
Christoph Oelckers
d819aafcf3 - changed handling of duplicate classes in DECORATE.
Instead of replacing the original, the second class will get renamed now, using the originating file as an identifier. In the vast majority of cases this should do exactly what is needed: Create an unconflicting second class that can coexist with the original. Unless the class is used by name this should eliminate all problems with this, but so far I haven't seen anything that used them by name.

This is choosing the lesser of two evils. While some mod out there may get broken, the old setup meant that the first class of a given name could not be written out to a savegame because it was not retrievable when loading it back.
2016-10-07 15:28:25 +02:00
raa-eruanna
a2551ce95e Merge http://github.com/rheit/zdoom 2016-10-07 08:30:25 -04:00
Christoph Oelckers
06ca41f8b5 - do not declare PNamedType::Outer as DObject.
Ultimately we may have to get a fully qualified name out of this, so Outer should be a type that can handle this feature. The new class for this is currently used as base for PType and PSymbol so that PNamedType inherits from it and maybe later a namespace symbol can, too.
2016-10-07 13:59:29 +02:00
Magnus Norddahl
b30a3552d1 Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2016-10-07 12:45:29 +02:00
Magnus Norddahl
aae4571c95 Changed column drawers to use true color textures 2016-10-07 12:45:21 +02:00
Christoph Oelckers
ee66d22034 Revert "- added an option to disable the pickup screen flash."
This reverts commit 2d320a2e86.

The feature has been superseded by pickup_fade_scalar and is no longer needed.
2016-10-07 08:46:06 +02:00
raa-eruanna
a4ccbddfd6 - Menudef: Split Truecolor options into their own menu. 2016-10-07 02:38:08 -04:00
Magnus Norddahl
6512068005 Remove unused queue_wallcommand 2016-10-07 07:03:13 +02:00
Magnus Norddahl
78415461b9 Removed old SSE macros and drawers 2016-10-07 06:56:20 +02:00
Magnus Norddahl
5a0f67308f Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2016-10-07 06:40:39 +02:00
Magnus Norddahl
8c259f50b1 Add codegen for rt column drawers 2016-10-07 06:40:29 +02:00
raa-eruanna
1742a3a807 Merge http://github.com/rheit/zdoom 2016-10-07 00:37:09 -04:00