Commit graph

12173 commits

Author SHA1 Message Date
Christoph Oelckers
02f678dccc - there seem to be ACS compilers which let 'delay' pass inside a function. Since this is an unsupported feature which brings the ACS VM into an unstable state it has to be handled with a hard abort to avoid crashes. 2017-01-24 11:59:59 +01:00
Christoph Oelckers
e3c36998b6 - delete all compile-time symbols for scripting after finishing compiling data.
Even the bare-bones gzdoom.pk3 gets rid of over 2000 symbols this way that otherwise would need to be tracked by the garbage collector.
2017-01-24 11:57:42 +01:00
ZZYZX
8c36a2a3df Merge remote-tracking branch 'gz/master' into thereisnospoon 2017-01-24 11:05:14 +02:00
Christoph Oelckers
c12dfd7e4d - fixed: only explicit class type casts must obey strict namespace rules, i.e. only '(class<type>)(variable_to_cast)'
The general rule is as follows: A class name as a string will always be looked up fully, even if the class name gets shadows by another variable because strings are not identifiers.
It is only class names as identifiers that must obey the rule that if it is not known yet or hidden by something else that it may not be found to ensure that the older variable does not take over the name if it gets reused.
2017-01-24 10:04:46 +01:00
Magnus Norddahl
86d9594d6e Convert r_walldraw to a class 2017-01-24 08:41:35 +01:00
Magnus Norddahl
b256f6ed89 Make wallsetup globals local to where they are used 2017-01-24 07:06:47 +01:00
Magnus Norddahl
ac74a7a1e0 Refactor wall setup into ProjectedWallLine and ProjectWallTexcoords 2017-01-24 06:50:17 +01:00
Magnus Norddahl
12271cbfb5 Remove the 1000 portal segment limit and make WallPortals private to RenderPortal 2017-01-24 05:31:39 +01:00
Magnus Norddahl
946ab93ff6 Remove unused friend declaration 2017-01-24 05:00:11 +01:00
Magnus Norddahl
f94cced13d Move ColormapLight to r_light 2017-01-24 04:24:04 +01:00
Magnus Norddahl
ca8f71b561 Remove the need for RenderPlayerSprites::SetupSpriteScale 2017-01-24 04:19:43 +01:00
Magnus Norddahl
ba6094be2e Detach player sprites from VisibleSprite 2017-01-24 04:15:54 +01:00
Rachael Alexanderson
3ea27cd996 Merge https://github.com/coelckers/gzdoom 2017-01-23 22:12:55 -05:00
Magnus Norddahl
07acd9375b The memset antipattern cannot be used on classes with a virtual table 2017-01-24 02:28:32 +01:00
Magnus Norddahl
55d9392fb8 Add fallback code to Linux target so if OpenGL is either unavailable or can't be used it falls back to the old software SDL FB 2017-01-24 01:43:45 +01:00
Christoph Oelckers
17ed23bfcc - don't read the full height of a player from the defaults, because that cannot be changed by A_SetHeight.
Instead a new member, FullHeight is used for this now.
2017-01-24 00:12:06 +01:00
ZZYZX
3e093a20ff First take at serialization 2017-01-24 00:17:12 +02:00
Christoph Oelckers
3a0aaa62e7 Merge branch 'master' of https://github.com/coelckers/gzdoom
# Conflicts:
#	src/scripting/zscript/zcc_compile.cpp
2017-01-23 23:08:39 +01:00
Christoph Oelckers
3f999a990c - removed a line of debug code that made GCC/Clang go nuclear. 2017-01-23 23:06:29 +01:00
ZZYZX
23c9386add Removed RenderCamera, RenderBeforeThing, RenderAfterThing. Serialization preparations. 2017-01-23 23:05:51 +02:00
alexey.lysiuk
6586877ac5 Merge branch 'master' of https://github.com/coelckers/gzdoom into master 2017-01-23 22:48:16 +02:00
alexey.lysiuk
799f6c6e26 Fixed compilation error with GCC/Clang
src/scripting/zscript/zcc_compile.cpp:1039:11: error: no viable conversion from 'FName' to 'FString'
2017-01-23 22:20:07 +02:00
ZZYZX
278741efa9 Merge branch 'thereisnospoon' of github.com:jewalky/gzdoom into thereisnospoon 2017-01-23 20:57:12 +02:00
ZZYZX
efb1e5d33a Implemented global EventHandlers in MAPINFO 2017-01-23 20:48:57 +02:00
ZZYZX
ba4a74265c Fixed static handlers being OF_Fixed: only global (non-map) static handlers should be fixed. 2017-01-23 20:48:57 +02:00
ZZYZX
76b99da4b3 Added EventHandlers in Map section of MAPINFO 2017-01-23 20:48:57 +02:00
ZZYZX
890166a732 Hopefully I'm using OF_Fixed correctly 2017-01-23 20:48:57 +02:00
ZZYZX
35ec14f465 Made the EventHandler class tree a bit more branchy. Now disallowing creation of Static* via EventHandler.Create. 2017-01-23 20:48:57 +02:00
ZZYZX
a226337185 More portal fixing in software renderer 2017-01-23 20:48:57 +02:00
ZZYZX
ac19af7514 Fixed RenderCamera event in software renderer 2017-01-23 20:48:57 +02:00
ZZYZX
302af61686 Added per-thing render hooks 2017-01-23 20:48:57 +02:00
ZZYZX
5bfd484ae2 Generalized event handler definition; removed excessive VM calls when we don't have override defined. 2017-01-23 20:48:57 +02:00
ZZYZX
2aadd1e13c Forgot to add events.txt 2017-01-23 20:48:57 +02:00
ZZYZX
ca0d92a454 Added EventHandler.CreateOnce and EventHandler.Find to refer to handlers after they are created 2017-01-23 20:48:57 +02:00
ZZYZX
ce616f9c06 Added: prototype event system 2017-01-23 20:48:57 +02:00
Christoph Oelckers
b3aa7c61a9 - fixed: Class and struct name lookup was not context aware.
If a later module reused an existing name for a different class or struct type, this new name would completely shadow the old one, even in the base files.
Changed it so that each compilation unit (i.e. each ZScript and DECORATE lump) get their own symbol table and can only see the symbol tables that got defined in lower numbered resource files so that later definitions do not pollute the available list of symbols when running the compiler backend and code generator - which happens after everything has been parsed.

Another effect of this is that a mod that reuses the name of an internal global constant will only see its own constant, again reducing the risk of potential errors in case the internal definitions add some new values.

Global constants are still discouraged from being used because what this does not and can not handle is the case that a mod defines a global constant with the same name as a class variable. In such a case the class variable will always take precedence for code inside that class.

Note that the internal struct String had to be renamed for this because the stricter checks did not let the type String pass on the left side of a '.' anymore.

- made PEnum inherit from PInt and not from PNamedType.

The old inheritance broke nearly every check for integer compatibility in the compiler, so this hopefully leads to a working enum implementation.
2017-01-23 19:10:28 +01:00
alexey.lysiuk
db4c5e090d Fixed incorrect armor given by cheats
See https://mantis.zdoom.org/view.php?id=106
2017-01-23 13:18:30 +02:00
alexey.lysiuk
d0565cafbd Fixed compilation error with GCC/Clang
src/scripting/zscript/zcc_compile.h:95:10: error: extra qualification ‘ZCCCompiler::’ on member ‘StringConstFromNode’ [-fpermissive]
2017-01-23 11:19:26 +02:00
Rachael Alexanderson
03226e5a0a Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	src/r_things.cpp
2017-01-23 00:17:25 -05:00
Christoph Oelckers
5a4a5a17db - added core lump checks for ZScript.
- load internal shaders only from file 0. This does not contain aborts, like most of the other checks,but it will now refuse to load any core shader file from anything but gzdoom.pk3.
2017-01-23 01:56:15 +01:00
Christoph Oelckers
517733a04e Merge branch 'clangfix' of https://github.com/edward-san/zdoom
# Conflicts:
#	src/scripting/zscript/zcc_compile.h
2017-01-23 01:39:31 +01:00
Christoph Oelckers
f720073b31 - removed all code that was only there to implement the broken Simplifier that just got removed. 2017-01-23 01:37:43 +01:00
Christoph Oelckers
68c3f42a53 - no more Simplify for global constants as well. 2017-01-23 01:10:40 +01:00
Edoardo Prezioso
4694f9b201 - Fixed GCC/Clang 'extra qualification' error. 2017-01-23 00:22:25 +01:00
Edoardo Prezioso
092b2d6ea0 - Fixed Clang compile error [-Wnon-pod-varargs]. 2017-01-23 00:11:42 +01:00
Christoph Oelckers
061ba48dc1 - no more simplify in state parameters.
- resolving constants with the backend requires a few more error checks.
2017-01-22 23:53:50 +01:00
Christoph Oelckers
2880f56080 - also switched scripted properties away from Simplify. 2017-01-22 23:00:41 +01:00
Christoph Oelckers
4c93e2baa3 - use the expression evaluation capabilities of the compiler backend to resolve constants in actor defaults.
This is the first step to get rid of Simplify and all the baggage it depends on.
2017-01-22 22:19:32 +01:00
Christoph Oelckers
f9f5e45824 - memset the entire vissprite structure when drawing a psprite because this does not initialize all fields. 2017-01-22 20:12:44 +01:00
Christoph Oelckers
f15b051327 - use std::unique_ptr to manage the resource file for loading a savegame because the try/catch handler to ensure its deletion was causing some problems. 2017-01-22 20:06:11 +01:00