Commit graph

10223 commits

Author SHA1 Message Date
Magnus Norddahl
4bbf1ba11c Move visibility stuff into LightVisibility 2017-01-26 09:49:07 +01:00
Magnus Norddahl
933f2d116a Move DrewAVoxel to VisibleSpriteList 2017-01-26 08:39:44 +01:00
Magnus Norddahl
34f85569b4 Change RenderTranslucentPass to be a singleton 2017-01-26 08:36:28 +01:00
Magnus Norddahl
8b0304c1e3 Remove static from RenderFogBoundary 2017-01-26 08:24:44 +01:00
Magnus Norddahl
29dcea49d7 Move RenderDrawSegment to its own file 2017-01-26 08:13:39 +01:00
Magnus Norddahl
6899b351a2 Create class for draw segment list 2017-01-26 08:01:44 +01:00
Magnus Norddahl
2821c15795 Rename drawseg_t to DrawSegment 2017-01-26 07:03:27 +01:00
Magnus Norddahl
9d9395c855 Updated the copyright 2017-01-26 06:59:20 +01:00
Magnus Norddahl
9c4b11b671 Add OpenGL ES support to Linux target and enable it for ARM devices 2017-01-25 07:18:26 +01:00
Magnus Norddahl
348b73eb83 Fix gcc warning 2017-01-25 03:45:57 +01:00
Magnus Norddahl
eb2b5269f9 Fix linux compile errors 2017-01-25 03:28:11 +01:00
Rachael Alexanderson
a04699ec1c Merge https://github.com/coelckers/gzdoom 2017-01-24 18:15:39 -05:00
Rachael Alexanderson
c1ff1c6336 - Set banded light to "false" to not impact GZDoom defaults. 2017-01-24 22:24:53 +01:00
Rachael Alexanderson
9a777f719b - Added "gl_bandedswlight" to reduce the software light emulation gradient to 32 levels. 2017-01-24 22:24:53 +01:00
Rachael Alexanderson
84d2a89f49 Merge https://github.com/coelckers/gzdoom
# Conflicts:
#	wadsrc/static/language.enu
2017-01-24 12:03:57 -05:00
Rachael Alexanderson
eb3f83f908 - Since tonemap tweaks are on the menu now, make their changes affect instantly. 2017-01-24 17:57:03 +01:00
Rachael Alexanderson
494be00ce5 - Made default values for gl_paltonemap_powtable and gl_paltonemap_reverselookup more "id-like". 2017-01-24 17:57:03 +01:00
Rachael Alexanderson
6e47bf9bbc - Added gl_paltonemap_powtable and gl_paltonemap_reverselookup for tweaking palette tonemap generation. 2017-01-24 17:57:03 +01:00
Magnus Norddahl
934f6a88bb Fix compile error 2017-01-24 17:10:28 +01:00
Rachael Alexanderson
20a83f95b9 Merge https://github.com/coelckers/gzdoom 2017-01-24 08:39:22 -05:00
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
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
Christoph Oelckers
3f999a990c - removed a line of debug code that made GCC/Clang go nuclear. 2017-01-23 23:06:29 +01: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
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
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
alexey.lysiuk
f9ef935840 Fixed warning reported by GCC/Clang when optimization is enabled
src/scripting/codegeneration/codegen.cpp:4097:12: warning: variable 'cast' is used uninitialized whenever 'if' condition is false
2017-01-22 17:00:36 +02:00
alexey.lysiuk
935d49d75f Fixed returning of value from TakeInventory() function
Issuing take CCMD no longer causes assertion failure at src/scripting/vm/vmexec.h:662
assert(numret == C && "Number of parameters returned differs from what was expected by the caller")
2017-01-22 13:51:46 +02:00
alexey.lysiuk
03f9425eb1 Fixed missing xBRZ menu options on platforms without MMX support
xBRZ texture resize modes are no longer removed from menu for targets with HAVE_MMX undefined
2017-01-22 12:11:17 +02:00
alexey.lysiuk
33b69a27ae Restored HAVE_MMX definition in CMake 2017-01-22 11:14:48 +02:00
alexey.lysiuk
da4981ef91 Fixed invisible mouse cursor in SDL backend
See https://mantis.zdoom.org/view.php?id=71
2017-01-22 10:25:37 +02:00
Rachael Alexanderson
df35d53a57 Merge https://github.com/coelckers/gzdoom 2017-01-21 22:02:50 -05:00
Christoph Oelckers
d289c00ae3 - restored a line of code that got lost when fixing the parameter checks in CallStateChain. 2017-01-22 01:28:37 +01:00
Rachael Alexanderson
53acc28f26 Merge https://github.com/coelckers/gzdoom 2017-01-21 17:47:18 -05:00
Christoph Oelckers
ee40135d55 - removed the bogus SetPointer method from PClassPointer.
This was blocking proper bookkeeping of class pointer variables, in particular it rendered PointerSubstitution ineffective.
2017-01-21 23:26:58 +01:00
ZZYZX
659c11514b OpenGL: Added picnum override handling for actors 2017-01-21 23:04:45 +01:00
Christoph Oelckers
aaae52c60b - fixed: FResourceFile::OpenResourceFile did not close the opened file in case it contained invalid data. 2017-01-21 20:15:06 +01:00
alexey.lysiuk
2358b65921 Fixed compiler warning reported by GGC/Clang
No more 'warning: comparison of integers of different signs: int and unsigned long'
2017-01-21 14:47:10 +02:00
Christoph Oelckers
45d3b58cc6 - fixed redundant variable declaration shadowing an outer one. 2017-01-21 13:26:26 +01:00
Christoph Oelckers
2a6fafa15e - don't let P_DamageMobj return negative values.
This serves no purpose, there's not a single place in the code which checks for it, but if that negative values goes unchecked to functions that expect an actually meaningful value for damage inflicted, some bad results can happen. If no damage is inflicted, a proper 0 needs to be returned so that the value can actually be worked with. The return value was a ZDoom invention, it is completely unclear why -1 was chosen if some kind of protection rendered the damage ineffective.
2017-01-21 13:12:34 +01:00
Christoph Oelckers
4dc1d117f2 - fixed: Without letting CMake find OpenGL, under Windows the library must be added manually to the project or linker errors will happen. 2017-01-21 11:50:53 +01:00
Christoph Oelckers
cbdf9870ec - fix uninitialized variable. 2017-01-21 11:46:23 +01:00
Christoph Oelckers
19df603f92 - fixed: P_RailAttack did not make adjustments for the shooter's floorclip. 2017-01-21 10:55:57 +01:00
alexey.lysiuk
5158b1c337 Fixed undefined behavior of DropInventory()
See https://mantis.zdoom.org/view.php?id=93
2017-01-21 11:43:11 +02:00
ZZYZX
6f5fff00a0 Implemented static methods in String struct. Implemented String.Format and String.AppendFormat. Implemented native vararg methods for the future. 2017-01-21 10:32:26 +01:00
Rachael Alexanderson
07409f4997 - fixed compile error with status bar code in poly renderer. 2017-01-21 01:23:49 -05:00
Edoardo Prezioso
da3da61b67 - Make OpenGL library link fully dynamic on Unix.
Also, remove all the OpenGL CMake checks, because they're not needed anymore.
2017-01-20 23:21:37 -05:00
Rachael Alexanderson
410a1aa24c Merge https://github.com/coelckers/gzdoom 2017-01-20 20:56:02 -05:00
Christoph Oelckers
7e114c1127 - moved some more code out of the way. 2017-01-21 00:49:54 +01:00
Christoph Oelckers
274727e8ae - moved the draw functions which are exclusively used by the Strife status bar into strife_sbar.cpp to get them out of the way. They are not expected to survive anyway. 2017-01-21 00:41:59 +01:00
Christoph Oelckers
74f4171947 - removed several unused draw functions from DBaseStatusBar. 2017-01-21 00:29:19 +01:00
Christoph Oelckers
355570198d - moved statusbar code to a separate directory before starting work on it. 2017-01-20 22:59:31 +01:00
Christoph Oelckers
36e1d71f2b - fix spelling error. 2017-01-20 22:45:09 +01:00
Christoph Oelckers
23a7fd40aa - fixed: The script wrapper for AActor::TakeInventory erroneously called RemoveInventory, not TakeInventory. 2017-01-20 20:04:57 +01:00
Christoph Oelckers
7adc34932f - fixed: The state parameter for CallStateChain was checked for the wrong type. 2017-01-20 19:56:29 +01:00
Edoardo Prezioso
e993f9304b - Fixed GCC/Clang compile error. 2017-01-20 19:10:07 +01:00
Christoph Oelckers
4fa5055548 - fixed: With some functions moved to Weapon, Dehacked needs to check Weapon, not StateProvider to find its code pointers. 2017-01-20 17:23:13 +01:00
Christoph Oelckers
302cb41403 - fixed typo in MorphMonster definition. 2017-01-20 17:20:50 +01:00
Christoph Oelckers
314e49f791 - let A_SpawnProjectile, A_FireProjectile, A_SpawnItem(Ex) and A_ThrowGrenade return the spawned actors to the calling code.
- fixed the return type checks in CallStateChain. These made some bogus assumptions about what return prototypes to support and would have skipped any multi-return function whose first argument was actually usable.
2017-01-20 12:39:51 +01:00
Christoph Oelckers
f5421491ec - wrapped the entire DSBarInfo class in a container and completely decoupled it from DBaseStatusBar.
The idea is, when status bars are moved to ZScript that only this small wrapper class needs to be dealt with and the implementation can be left alone. SBARINFO is far too complex to be scriptified, but having it inherit directly from DBaseStatusBar and access its member variables severely limits the options of dealing with the status bar code. This way, it only accesses some globally visible functions in DBaseStatusBar and no variables.

- renamed the global ST_X and ST_Y variables because it is far too confusing and error-prone to have the same names inside and outside DBaseStatusBar.
2017-01-20 11:11:22 +01:00
Rachael Alexanderson
f3159af211 - fixed: Remove ccmd should check if an object is actually an inventory object before attempting to check its owner. (Ooops!) 2017-01-20 10:03:33 +01:00
Rachael Alexanderson
e52772745b Merge https://github.com/coelckers/gzdoom 2017-01-19 23:07:14 -05:00
Christoph Oelckers
9d828a7ca0 - marked all virtual overrides in DSBarInfo with the 'override' keyword so that I do not have to search for them again. 2017-01-20 01:42:21 +01:00
Christoph Oelckers
c880b26d98 - scriptified MorphProjectile and CustomSprite.
This should for now conclude actor class scriptification. The remaining ten classes with the exception of MorphedMonster are all too essential or too closely tied to engine feature so they should remain native.
2017-01-20 01:11:36 +01:00
Rachael Alexanderson
62fb5d87c8 - fixed: Remove ccmd should check if an object is actually an inventory object before attempting to check its owner. (Ooops!) 2017-01-19 18:48:21 -05:00
Magnus Norddahl
545ae678e8 Merge remote-tracking branch 'gzdoom/master' into qzdoom 2017-01-20 00:22:29 +01:00
Christoph Oelckers
3c30b59bab more inventory scriptification
* completely scriptified DehackedPickup and FakeInventory.
* scriptified all remaining virtual functions of Inventory, so that its inheritance is now 100% script-side.
* scriptified CallTryPickup and most of the code called by that.

- fixed: Passing local variables by reference did not work in the VM.
2017-01-19 23:42:12 +01:00
Rachael Alexanderson
7701a61830 Merge https://github.com/coelckers/gzdoom 2017-01-19 15:50:33 -05:00
Christoph Oelckers
1750ded7c4 - more exporting of AInventory. 2017-01-19 20:56:31 +01:00
Christoph Oelckers
7c6542e595 - partial scriptification of AInventory.
- scriptification of CustomInventory.
2017-01-19 19:14:22 +01:00
Rachael Alexanderson
8a198591f4 Merge https://github.com/coelckers/gzdoom 2017-01-19 11:58:53 -05:00
Christoph Oelckers
19b1c10ba8 - scriptified a large part of the weapon code. 2017-01-19 17:40:34 +01:00
Rachael Alexanderson
3b55406302 - fixed: Remove ccmd now no longer removes owned inventory objects (that's what the "take" ccmd is for) 2017-01-19 14:01:12 +01:00
Christoph Oelckers
6d3b26f94c - scriptified the WeaponGiver. 2017-01-19 14:00:00 +01:00