Magnus Norddahl
80a5f81f9a
Fix typo affecting walls on sloped floors
2016-11-23 23:29:53 +01:00
Christoph Oelckers
8a7671ad8b
- exported all member fields from the morph items.
...
- renamed APowerMorph::Player to avoid accidental confusion with AActor::player, which in scripting is the same due to case insensitvity.
- renamed save key for above variable.
2016-11-23 23:28:03 +01:00
Magnus Norddahl
8bd92a2c48
Fix interpolation bug in the affine texturing block
2016-11-23 22:55:24 +01:00
Christoph Oelckers
7527141ad4
- fixed: The morph actors stored their required classes as names, not as class pointers.
...
This prevented any kind of error check on them.
Unfortunately, due to backwards compatibility needs, on DECORATE the missing class may not be fatal so a workaround had to be added to clear those bogus pointers later if they are discovered to be broken.
For ZScript, though, this will result in a compile error, which was the intention behind this change.
2016-11-23 22:34:17 +01:00
Christoph Oelckers
5e67cf79d3
- scriptified the Ironlich.
2016-11-23 21:26:59 +01:00
Magnus Norddahl
91d180bec6
Fix render to texture
2016-11-23 21:10:19 +01:00
Christoph Oelckers
1a20a5b999
- scriptified A_PainShootSkull which was the last remaining bit in g_doom, so this directory is gone now.
2016-11-23 19:47:09 +01:00
Christoph Oelckers
f8c6adb7eb
- completely redid how A_PainShootSkull checks the legality of the LS spawn.
...
It turned out that the Boom method does not work well with portals and fixing it while keeping it doesn't look feasible - the entire approach was bad from the start.
Instead, let's use the same approach as P_XYMovement: Spawn the Lost Soul at the center of the PE, and then use multiple P_TryMoves to get it to its intended location.
This will check all blocking lines, just like Boom did, but it will also properly handle z-positioning and portal transitions.
2016-11-23 18:54:16 +01:00
Christoph Oelckers
7325e3f0f8
- exported all member fields that make sense. Entirely private ones or classes that are not supposed to be extended were left out.
2016-11-23 17:34:36 +01:00
Rachael Alexanderson
2e7c512891
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-23 11:09:46 -05:00
Christoph Oelckers
d1f5d916c2
Merge branch 'master' into zscript
2016-11-23 14:39:14 +01:00
Christoph Oelckers
9bd19c2d2e
- ensure that the MAPINFO parser never mixes HexenHack parsing with the new format.
2016-11-23 14:38:45 +01:00
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
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
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
5951a9449c
- added static constant arrays. At the moment they can only be defined inside functions due to lack of dedicated storage inside classes for static data.
...
- added new VM instructions to access the constant tables with a variable index.
- refactored VMFunctionBuilder's constant tables so that they are not limited to one entry per value. While this works fine for single values, it makes it impossible to store constant arrays in here.
2016-11-20 18:00:37 +01:00
Magnus Norddahl
ebd810d843
Fix decal vertical position being wrong
2016-11-20 16:43:13 +01:00
Magnus Norddahl
bd9ec843dd
Add palette version of the blend modes
2016-11-20 16:42:53 +01:00
Christoph Oelckers
bb25c5faaa
- scriptified the remaining Doom weapon code.
...
- implemented method calls from struct instances.
- optimized disassembly of VM call instructions to print the function's name at the end where it is more visible and does not need to be truncated. Also use the printable name for script functions here.
2016-11-20 12:27:26 +01:00
Christoph Oelckers
ab6b2f369e
- fixed: For varargs, not only the type but also the flag of the last specified argument need to be stored for later parameters.
2016-11-20 09:47:46 +01:00
Magnus Norddahl
6761e8639a
Add palette support
2016-11-20 04:06:21 +01:00
Magnus Norddahl
7ac0cace7d
Stop copying the matrix and remove r_triangle
2016-11-20 02:07:55 +01:00
Magnus Norddahl
f8efe394cc
Remove unused code
2016-11-20 01:51:08 +01:00
Magnus Norddahl
845bf93c95
Change triangle full block to use vectored load and store
2016-11-20 01:29:19 +01:00
Christoph Oelckers
3c726aa570
- scriptified A_FirePlasma.
2016-11-20 01:18:21 +01:00
Christoph Oelckers
fdab994fcb
- scriptified the Rocket launcher.
2016-11-20 01:11:01 +01:00
Christoph Oelckers
814493b68d
- scriptified the Super Shotgun.
2016-11-20 00:45:06 +01:00
Christoph Oelckers
af34d82888
- scriptified A_Saw.
...
- implemented multiple-return-value assignment. Due to some grammar conflicts the originally intended Lua-inspired syntax of 'a, b = Function()' could not be done, so it's '[a, b] = Function()'
2016-11-20 00:25:38 +01:00
Rachael Alexanderson
fc011e42dd
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-19 12:46:01 -05:00
Christoph Oelckers
74c5659fc5
- explicitly call Destroy in PClass::StaticShutdown because some class type objects were no longer automatically collected.
2016-11-19 18:09:34 +01:00
Christoph Oelckers
7595343aaa
- fixed: Completely empty if statements left the code generator in a broken state.
2016-11-19 18:02:07 +01:00
Magnus Norddahl
b4eb49678a
Cache the optimized bitcode (note: this adds LLVMBitWriter as a dependency)
2016-11-19 17:14:37 +01:00
alexey.lysiuk
c28bcca3f3
Print unknown if release information is unavailable on macOS
...
At least 10.4 Tiger doesn't support required sysctl name
2016-11-19 16:42:16 +01:00
alexey.lysiuk
60ac12be0a
Fixed compilation warnings in Cocoa backend
2016-11-19 16:42:16 +01:00
alexey.lysiuk
3b240b73e9
Fixed endianness issue with saved games
...
See http://forum.zdoom.org/viewtopic.php?t=54272
2016-11-19 16:42:16 +01:00
Christoph Oelckers
0b70df88d8
- scriptified A_FireShotgun and A_FireChaingun.
2016-11-19 16:39:45 +01:00
Magnus Norddahl
d197ebca78
Remove redundant line
2016-11-19 14:07:39 +01:00
Christoph Oelckers
d50da34664
- scriptified the pistol to test if struct member functions work.
...
- made APlayerPawn::PlayAttacking(2) virtual script functions so that mods have better control over player animations. Note that these have no native base so they skip the templated interface for managing virtual functions.
2016-11-19 13:56:29 +01:00
Magnus Norddahl
114fda1ed5
Added missing TranslateAlphaBlend and created a helper function for specifying the translation
2016-11-19 13:32:57 +01:00
Christoph Oelckers
de8cacc465
- for struct member calls an address request is needed.
2016-11-19 12:41:00 +01:00
Magnus Norddahl
17ed585c1f
Fix vsync not working
2016-11-19 12:30:58 +01:00
Christoph Oelckers
25e285b65d
- fixed bad conversion from FString to const char * in state label type cast.
2016-11-19 12:25:53 +01:00
Christoph Oelckers
9fab8380ff
- fixed: FxVMFunctionCall::GetDirectFunction did not check if the function could be called with no arguments.
2016-11-19 12:22:58 +01:00
Christoph Oelckers
f11f020b6c
- allow functions in structs. This is needed for several internal data types like players, sectors, lines, etc.
...
- added a new type 'NativeStruct'. This will be used for types that cannot be instantiated, and is also needed to cleanly handle many internal types that only can exist as reference.
2016-11-19 12:12:29 +01:00
Christoph Oelckers
df4e9324c9
- added terminators to all flag lists.
2016-11-19 09:24:54 +01:00
Christoph Oelckers
10bc01c000
- fixed yet another place where VS did not warn about improper use of NULL.
2016-11-19 09:10:31 +01:00
Magnus Norddahl
272fe7f754
Added blending modes to triangle codegen
2016-11-19 02:53:32 +01:00
Christoph Oelckers
3ce699bf9b
- implemented pass-by-reference arguments - so far only for memory based variables.
...
- changed Dehacked weapon function lookup to check the symbol table instead of directly referencing the VM functions. Once scriptified these pointers will no longer be available.
- removed all special ATAGs from the VM. While well intentioned any pointer tagged with them is basically unusable because it'd trigger asserts all over the place.
- scriptified A_Punch for testing pass-by-reference parameters and stack variables.
2016-11-19 01:23:56 +01:00
Christoph Oelckers
7ff5069617
- added all missing things to enable the scriptified version of A_BrainSpit.
...
This uses a global function, this has been placed into DObject for now because the scripting interface does not allow non-class-owned functions yet.
2016-11-18 22:12:53 +01:00
Christoph Oelckers
aa32d8970b
- scriptified a_hereticmisc.cpp.
2016-11-18 21:34:06 +01:00
Christoph Oelckers
34c949f84b
- implemented the string concatenation operator '..'. This is capable of stringifying all of the common types for output.
...
- gave OP_CONCAT some sane semantics. The way this was defined, by specifying the source operands as a range of registers instead of a pair like everything else made it completely useless for the task at hand.
- changed formatting for floats to %.5f which for normal output in a game makes more sense. For special cases there should be a special formatting function for ints and floats that can do more specialized conversions.
2016-11-18 17:44:25 +01:00
Christoph Oelckers
24481781b4
- added missing unsigned casts to the VM.
...
- make the pointer to string cast a bit more useful by using the actual object's type rather than 'Object' which can be a great asset when debugging.
- fixed a few bad asserts.
2016-11-18 14:50:21 +01:00
Magnus Norddahl
5d6ceb868e
Move viewport stuff to its own function
2016-11-18 14:40:53 +01:00
Christoph Oelckers
f71aad4cdd
- cleanup of the remaining FxBinary operators.
...
- changed FxCompareEq with strings and other types that can be cast to from a string always convert the string to the other type before comparing.
2016-11-18 14:19:55 +01:00
Christoph Oelckers
d9953eb3bd
- cleaned up FxCompareRel::Resolve. Also added unsigned integer support to it and FxMulDiv (these, aside from the float cast, are the only two operations where this is important.)
2016-11-18 12:23:58 +01:00
Christoph Oelckers
b6801d526b
- same as last commit for FxMulDiv and FxPow.
...
- some streamlining of FxAddSub.
2016-11-18 11:53:18 +01:00
Christoph Oelckers
a00181c899
- started refactoring binary operators by starting to movw the relevant parts or ResolveLR into the respective Resolve methods. FxAddSub complete.
...
This one-size-fits all function has become too unwieldy with all its special cases and makes improvements harder than necessary.
2016-11-18 11:28:15 +01:00
Magnus Norddahl
dbb6c7ca27
Add support for specifying a viewport out of screen bounds and fixed statusbar by doing just that!
2016-11-18 01:58:39 +01:00
Christoph Oelckers
8650d6806e
- script export of player_t.
...
- replaced __alignof with the standard alignof equivalent.
2016-11-18 00:42:04 +01:00
Rachael Alexanderson
bac3ae3bf8
Merge branch 'master' of https://github.com/coelckers/gzdoom
2016-11-17 17:37:11 -05:00
Christoph Oelckers
b3b5cb2fa4
- fixed: Lines with both sides in the same sector but an active portal may not be discarded early.
2016-11-17 23:13:17 +01:00
Rachael Alexanderson
aa08285676
- Moved scaling before rotation again - this time, using a formula provided by Graf, the rendering pitch is now dynamically scaled based on the aspect ratio, causing pitch aiming to once again be correct.
2016-11-17 16:44:55 -05:00
Christoph Oelckers
6461f5995b
- fixed: Script defined pointers were not added to the FlatPointers array.
2016-11-17 22:21:08 +01:00
Magnus Norddahl
6be80efa51
Moved scale back to be after pitch - otherwise the the bullets don't end up where you point
2016-11-17 21:19:50 +01:00
Magnus Norddahl
eac9367ace
Fix perspective when status bar is visible
2016-11-17 21:07:00 +01:00
Christoph Oelckers
e4dfb13d25
- fixed: OP_LO was missing a read barrier.
2016-11-17 20:41:59 +01:00
Christoph Oelckers
3bcd85eb8a
added class pointer casts. Due to grammar problems the type has to be put into parentheses to get the class token out of the global parsing namespace:
...
class<Actor> myclass = (class<Actor>)(GetClass());
2016-11-17 20:31:53 +01:00
Rachael Alexanderson
7447c49dc5
- Added pixelratio support for the softpoly renderer.
2016-11-17 13:50:35 -05:00
Christoph Oelckers
022228d8a9
- fixed code generation of class type cast for local variables.
2016-11-17 19:30:30 +01:00
Christoph Oelckers
8205e6cf08
- optimize access to array members with constant index. Like with struct members this can be combined with the outer index/address.
...
- fixed register allocation with array indices and stack variables.
2016-11-17 18:06:56 +01:00
Christoph Oelckers
2cc48ec378
- implemented code generation for stack variables.
...
- fixed code generation for using local variables as array index. This must use a different register for the array element offset because the original register may not be overwritten.
2016-11-17 16:44:41 +01:00
Magnus Norddahl
b02e3d9514
Add shaded blend mode for the decals
2016-11-17 14:28:14 +01:00
Christoph Oelckers
d86f03e2e0
- reverted most of the last commit after realizing that trying to manage constructing/destructing per variable is not going to work because it'd require some extensive exception management in the compiled VM code.
...
- instead add a list of SpecialInits to VMScriptFunction so this can be done transparently when setting up and popping the stack frame. The only drawback is that this requires permanent allocation of stack objects for the entire lifetime of a function but this is a relatively small tradeoff for significantly reduced maintenance work throughout.
- removed most #include "vm.h", because nearly all files already pull this in through dobject.h.
2016-11-17 13:10:19 +01:00
Christoph Oelckers
30e6e8e25f
- added bookkeeping info to types for allowing data on the stack that requires construction and destruction.
...
- removed unused PVector type.
2016-11-17 11:16:00 +01:00
Magnus Norddahl
511eb59479
Add particle drawing
2016-11-17 01:29:08 +01:00
Magnus Norddahl
266924600a
Missing include guard
2016-11-17 01:28:51 +01:00
Christoph Oelckers
21a1d5ffc8
- scriptified Hexen's Wraith and parts of the Spike.
2016-11-17 00:44:43 +01:00
Magnus Norddahl
ff2ab61abc
Added decals
2016-11-16 23:34:05 +01:00
Magnus Norddahl
59f7dedfb4
Added wall sprite support. Unfortunately it would seem that a bullet hole is not a wall sprite..
2016-11-16 22:31:49 +01:00
Christoph Oelckers
df43ee96ce
- fixed a lost '='.
...
- scriptified A_TimeBomb.
2016-11-16 21:12:16 +01:00
Christoph Oelckers
7a29e6cfdc
- scriptified Hexen's fog.
2016-11-16 20:00:25 +01:00
Magnus Norddahl
ae889acaea
active_con_scale should respect uiscale
2016-11-16 19:49:46 +01:00
Christoph Oelckers
063e94971d
- removed incorrect _DEF.
2016-11-16 19:47:07 +01:00
Major Cooke
af3bda3f2a
Removed _DEF.
2016-11-16 19:47:06 +01:00
Major Cooke
60d93008ba
Exported TryMove.
2016-11-16 19:47:06 +01:00
Magnus Norddahl
712e032573
Remove swrenderer2
2016-11-16 19:44:11 +01:00
Christoph Oelckers
76a74e0364
- scriptified Hexen's Dragon.
...
- fixed several places in the code generator that did not consider locked registers for local variables: array indices, abs and floating point builtin functions.
- added some debug aids to the bounds opcode. Just triggering an exception here which loses all relevant info is perfectly useless in a debug situation.
2016-11-16 19:18:21 +01:00
Magnus Norddahl
f457f0340c
Add 3D floor planes
2016-11-16 11:18:40 +01:00
Rachael Alexanderson
71b4f57058
Merge commit 'refs/pull/122/head' of https://github.com/coelckers/gzdoom
...
# Conflicts:
# src/posix/cocoa/i_video.mm
# src/posix/sdl/hardware.cpp
# src/win32/hardware.cpp
2016-11-16 01:03:32 -05:00
Rachael Alexanderson
813030efef
- Fully implemented CVAR_OVERRIDEGET for vid_renderer from the ZDoom code submission.
2016-11-15 20:03:50 -05:00
Rachael Alexanderson
9b9ed64360
- Implemented sv_overridegetcvar: This will override the return value for GetCVar checks for certain CVars marked with the CVAR_OVERRIDEGET flag. Instead of returning their true value, they only return defaults instead.
...
- Implemented dummy CVar vid_renderer with a default value of 1. This allows mods not designed for the software renderer to run if sv_overridegetcvar is turned on.
2016-11-15 20:01:36 -05:00
Christoph Oelckers
633da6e5d8
- scriptified two of the Acolyte's functions.
...
- added a DActorIterator class.
- fixed: It was not possible to have functions of the same name in two different classes because the name they were searched for was not qualified by the class. Changed so that the class name is included now, but to avoid renaming several hundreds of functions all at once, if the search fails, it will repeat with 'Actor' as class name.
This commit contains preparations for scriptifying Hexen's Dragon, but that doesn't work yet so it's not included.
2016-11-16 01:36:21 +01:00
Magnus Norddahl
449d4963ae
Mapping error workaround
2016-11-16 01:13:29 +01:00
Magnus Norddahl
a092a03c6d
Some basic fixed light support
2016-11-15 23:30:42 +01:00
Magnus Norddahl
1b3d50951a
Fix sky floodfill bug
2016-11-15 22:48:44 +01:00
Christoph Oelckers
a2e17c0ab5
- implemented usage restrictions for action functions.
2016-11-15 21:38:12 +01:00
Magnus Norddahl
a90a22e056
Fix segment culling bug
2016-11-15 19:27:21 +01:00
Major Cooke
f2ec266eec
Fixed: Actors with NOINTERACTION shouldn't waste time continuously applying NOBLOCKMAP if it has it already and not moving.
2016-11-15 11:38:03 -06:00
Magnus Norddahl
cfc977f9e6
Fix texture coordinate
2016-11-15 18:14:18 +01:00
Christoph Oelckers
4cc7d95ba5
- fixed: A_ZoomFactor and A_SetCrosshair need to be declared 'action'.
2016-11-15 16:05:42 +01:00
Christoph Oelckers
e559109419
- made the floating point truncation warning a debug message because I can see this becoming more a hassle than an asset.
2016-11-15 16:01:08 +01:00
Christoph Oelckers
b0a0056097
Merge branch 'zscript' into gz-zscript
2016-11-15 15:35:35 +01:00
Christoph Oelckers
77a99890cf
- relaxed the message for incompatible class types in DECORATE to a warning. Like finding no class at all here, this initially fell under a situation that was not discoverable and there's mods that break by making it a fatal error.
2016-11-15 15:34:25 +01:00
Christoph Oelckers
97e643c7e1
- fixed: DECORATE tried to resolved null states again, causing a type conflict.
2016-11-15 15:34:25 +01:00
Christoph Oelckers
d4d6b739e0
- fixed: FxUnaryNotBoolean is not necessarily TypeBoolean, it can be altered by a type cast so the asserts had to be adjusted to cover that case.
2016-11-15 15:34:25 +01:00
Magnus Norddahl
ee15856786
Deep water support
2016-11-15 15:15:26 +01:00
Magnus Norddahl
3b397183ac
Clamp segment range
2016-11-15 15:15:01 +01:00
Christoph Oelckers
06cdcf1338
Merge branch 'zscript' of https://github.com/rheit/zdoom into gz-zscript
2016-11-15 13:40:18 +01:00
Christoph Oelckers
a63c749f04
- moved A_Light to Actor after finding some mods which used it badly. Besides, it should be fine to use this from PlayerPawns as well.
2016-11-15 13:39:41 +01:00
Magnus Norddahl
5f1b822523
Mark rendered lines in the automap
2016-11-15 13:30:30 +01:00
Magnus Norddahl
f143b9b7b0
Fix midtexture repeat and yoffset bug
2016-11-15 12:31:57 +01:00
Christoph Oelckers
3a2d0e3486
- copied all necessary adjustments from the test branch in the QZDoom repo.
2016-11-15 11:49:27 +01:00
Christoph Oelckers
6e223ebc21
Merge branch 'zscript' of https://github.com/rheit/zdoom into gz-zscript
...
# Conflicts:
# src/CMakeLists.txt
# wadsrc/static/actors/doom/doomarmor.txt
# wadsrc/static/decorate.txt
2016-11-15 11:36:59 +01:00
Christoph Oelckers
196986ae6b
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-15 11:25:42 +01:00
Christoph Oelckers
96d093d01f
- added compile time checks for bad state links and state label references.
...
- preserve a state's source line information for the postprocessing phase so that the checker can output more useful information.
- added missing check for weapon psprites to DPSprite::SetState.
2016-11-15 11:21:08 +01:00
Christoph Oelckers
647e1399f1
- added runtime checks for the state usage flags.
2016-11-15 00:18:57 +01:00
Christoph Oelckers
4f998fa879
- finished the state usage parser.
...
- added state usage specifiers to Actor and Inventory. The states in these classes must be set to full access so that any existing mod can link to them.
2016-11-14 23:24:10 +01:00
Magnus Norddahl
e5f8af2216
Fix sky flood fill for E1M8 and Map11
2016-11-14 23:22:38 +01:00
Christoph Oelckers
c797319314
- fixed parser for state block options.
...
- fixed incorrect flags for weapons.
2016-11-14 20:00:01 +01:00
Christoph Oelckers
7bcd83f0c1
- parser for states flags.
2016-11-14 19:35:29 +01:00
Christoph Oelckers
384f4fe7ce
- added a 'DefaultStateUsage' property so that this setting can be properly set up for the classes that can inject states into other actors.
2016-11-14 18:31:12 +01:00
Christoph Oelckers
199e2e2f9c
- fixed CheckRange return value.
...
- removed the error message for multiple state blocks in DECORATE.
- added some constants for state types.
2016-11-14 17:50:09 +01:00
Rachael Alexanderson
62adb64a95
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-14 10:28:52 -05:00
Christoph Oelckers
0111ec451a
Revert "Fixed: A_SetInventory with an amount of 0 was not truly eliminating the actor."
...
This reverts commit 02435b46a0
.
2016-11-14 15:52:49 +01:00
Christoph Oelckers
ba62a86c80
- fixed: A_SetInventory still had default initializers.
2016-11-14 15:48:34 +01:00
Christoph Oelckers
85ff172ee3
Merge remote-tracking branch 'remotes/origin/master' into zscript
2016-11-14 15:03:14 +01:00
Christoph Oelckers
56a3dcfe80
- moved the 'brainexplode' state to the rocket, which is the actor which actually uses it.
...
This appears to be the only case where an actor was set to a state owned by a completely unrelated actor which would present some problems with state owner checking in AActor::SetState, so let's better get rid of it ASAP.
I believe the only reason this wasn't changed when all actors were exported 8 years ago was that old binary DEHSUPP lump.
2016-11-14 15:02:44 +01:00
Magnus Norddahl
3673338644
Split r_poly into multiple files handling each aspect of rendering a scene
2016-11-14 14:19:48 +01:00
Christoph Oelckers
ac86a535e7
- fixed: State labels were resolved in the calling function's context instead of the called function one's.
...
This could cause problems with functions that take states as parameters but use them to set them internally instead of passing them through the A_Jump interface back to the caller, like A_Chase or A_LookEx.
This required some quite significant refactoring because the entire state resolution logic had been baked into the compiler which turned out to be a major maintenance problem.
Fixed this by adding a new builtin type 'statelabel'. This is an opaque identifier representing a state, with the actual data either directly encoded into the number for single label state or an index into a state information table.
The state resolution is now the task of the called function as it should always have remained. Note, that this required giving back the 'action' qualifier to most state jumping functions.
- refactored most A_Jump checkers to a two stage setup with a pure checker that returns a boolean and a scripted A_Jump wrapper, for some simpler checks the checker function was entirely omitted and calculated inline in the A_Jump function. It is strongly recommended to use the boolean checkers unless using an inline function invocation in a state as they lead to vastly clearer code and offer more flexibility.
- let Min() and Max() use the OP_MIN and OP_MAX opcodes. Although these were present, these function were implemented using some grossly inefficient branching tests.
- the DECORATE 'state' cast kludge will now actually call ResolveState because a state label is not a state and needs conversion.
2016-11-14 14:12:27 +01:00
Christoph Oelckers
109558d74d
- added unsigned char casts to all isspace calls in zstring.cpp
...
isspace takes a signed integer as parameter which triggers an assert on any non-ASCII character taken from a signed char array.
2016-11-14 13:14:07 +01:00
Major Cooke
02435b46a0
Fixed: A_SetInventory with an amount of 0 was not truly eliminating the actor.
2016-11-13 19:27:59 -06:00
Rachael Alexanderson
23384a913c
Merge pull request #2 from edward-san/qz_clang_fix
...
- Fixed Clang on Linux compilation.
2016-11-13 12:49:14 -05:00
Magnus Norddahl
c06798bca1
Adjust texture coordinates
2016-11-13 17:58:03 +01:00
Edoardo Prezioso
1442f7fb7b
- Fixed Clang on Linux compilation.
2016-11-13 16:53:18 +01:00
Magnus Norddahl
acb2e821f0
Evict floats from the block code (too bad it didn't make any difference to the speed)
2016-11-13 16:36:47 +01:00
Magnus Norddahl
f25579849a
Minor variable optimization
2016-11-13 15:43:54 +01:00
Magnus Norddahl
411eb57952
Fix rendering of masked walls
2016-11-13 15:16:55 +01:00
Christoph Oelckers
1e6a632774
- copy the Unsafe flag to the actual function. This must have gotten lost during the merge between my own code and Leonard2's fix.
...
Now even in DECORATE it is possible to report most cases in which user variables are accessed from non-item states as an error. This will report all states which can be traced by a direct link from a special state label. It will not find states that only get used via A_Jump etc.
2016-11-13 14:48:27 +01:00
Christoph Oelckers
a2f4cd7cda
- fixed: All functions that are callable from weapon states and not members of Actor need to be declared 'action'.
...
With the stricter type checks of the self pointer that were now implemented these all produced errors.
2016-11-13 14:20:30 +01:00
Rachael Alexanderson
470046ec5a
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-13 07:30:34 -05:00
Magnus Norddahl
c914a7a7fe
Cull walls
2016-11-13 13:24:36 +01:00
Christoph Oelckers
7d49a82963
removed some unneeded checks
...
- since we now look for fields in the base class first the restriction check is no longer needed as it was for a different mode of looking up the identifier.
- In DECORATE we do not need to bother with non-action functions. Non-action functions cannot be defined from DECORATE so there's no need to check if we are in one.
- make the warning for unsafe access a debug message because this can affect legitimate code.
2016-11-13 12:37:28 +01:00
Christoph Oelckers
f238f0ba5c
- try to preserve a bit more information about incorrect use of user variables to print more meaningful error messages. This is not complete yet and will need integration with the previous commit.
2016-11-13 12:02:41 +01:00
Magnus Norddahl
27eb8e36ae
Fix solid segment culling
2016-11-13 11:44:07 +01:00
Leonard2
ac0413838c
Fixed: A StateProvider actor could no longer use its own user variables
...
Refactored the FxIdentifier code a bit to avoid code duplication
2016-11-13 10:41:10 +01:00
Magnus Norddahl
af7a7ab7d7
Remove use of the llvm.round intrinsic as it apparently doesn't work in some environments
2016-11-13 08:57:29 +01:00
Braden Obrzut
472f35d2ce
- Fixed building with gtk2 headers.
2016-11-13 00:17:09 -05:00
Rachael Alexanderson
87e9ba0f05
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-12 22:31:05 -05:00
Braden Obrzut
9342898361
- Added support for GTK3 (thanks to "MineyMe" and edward-san)
...
- Replaced GTK/OS X (note different from Cocoa) clipboard code with SDL clipboard API.
- Removed requirement to link to GTK in order to compile with GTK support.
- GTK is no longer init'd if the GTK IWAD picker is not used.
- Our usage of GTK is such that the dynamic loader can work with both GTK2 and GTK3 depending on what's installed.
- Since we're accumulating a lot of library loaders I've built a generic interface as FModule which replaces TOptWin32Proc and the loaders in the OpenAL and Fluidsynth code.
2016-11-12 18:32:09 -05:00
Christoph Oelckers
49ef541513
- scriptified Hexen's Firedemon.
2016-11-12 19:16:47 +01:00
Christoph Oelckers
213b3f1fe4
- scriptified Hexen's Centaur.
2016-11-12 17:21:11 +01:00
alexey.lysiuk
b16e6725d7
Added missing #include to fix build with GCC/Clang
2016-11-12 18:09:05 +02:00
Christoph Oelckers
8f8017836f
- scriptified Hexen's Bishop.
2016-11-12 16:32:26 +01:00
Rachael Alexanderson
f284a24ed9
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-12 10:17:56 -05:00
Christoph Oelckers
c9ee17cdcd
Merge branch 'master' of https://github.com/rheit/zdoom into zscript
2016-11-12 15:36:59 +01:00
Christoph Oelckers
0c0cb6d69c
- fixed warnings.
2016-11-12 15:36:36 +01:00
Christoph Oelckers
a603af805c
- fixed identifier resolution in FxIdentifier for action functions with a different invoker than self.
...
- fixed creation of direct function invocations on a state line. In order to receive the implicit arguments this needs to be wrapped into a compound statement so that the local variable getter works.
2016-11-12 15:21:59 +01:00
Magnus Norddahl
402227d6b6
Add some intersection tests useful for culling
2016-11-12 14:55:14 +01:00
Christoph Oelckers
fe74a14431
- fixed: A_GiveInventory should not try to give stuff to an owned inventory item, because it doesn't own its Inventory pointer - it is used for the linked list of the owner's inventory.
2016-11-12 14:48:10 +01:00
Christoph Oelckers
32e0123e1b
- fixed: FResourceLump::LumpNameSetup passed negative numbers to FString::Truncate for extension-less lump names.
2016-11-12 14:01:34 +01:00
Magnus Norddahl
e3dc9c93b9
Use a simpler algorithm for the stencil buffer as the old one was too slow
2016-11-12 13:50:28 +01:00
Edoardo Prezioso
ffea457d81
- Fixed GCC/Clang warnings with serializer Unicode parser.
2016-11-12 13:35:10 +01:00
Christoph Oelckers
479b216c06
- fixed: ZScript did not properly fill in tentatively created classes from defaults processing.
...
The proper setup for such classes was only done in CreateDerivedClass, but not in FindClassTentative itself. This extends CreateDerivedClass to allow it to create a class without fully initializing it.
2016-11-12 13:09:19 +01:00
Edoardo Prezioso
104030697f
- Rename con_numnotify to con_notifylines.
...
Zandronum 1.1 added an option with the same purpose. Use it to avoid duplicates.
2016-11-12 11:08:33 +01:00
Edoardo Prezioso
f123da9385
- Fixed GCC warnings with new history code.
2016-11-12 11:07:39 +01:00
Magnus Norddahl
eb4021b997
Codegen for all triangle variants
2016-11-12 10:21:02 +01:00
Christoph Oelckers
e009cbec9e
- fixed: PClass::StaticShutdown did not remove the class pointers for VM base classes from their class registration entries.
2016-11-12 10:17:57 +01:00
Christoph Oelckers
30a2171080
- let "" be synonymous with 'none' in ZScript.
2016-11-12 10:06:26 +01:00
Christoph Oelckers
62a259bb36
Merge branch 'master' of https://github.com/rheit/zdoom into zscript
2016-11-12 09:46:09 +01:00
Christoph Oelckers
34fc6323a4
- scriptified Hexen's bats.
...
- removed AMinotaurFriend::IsOkayToAttack. The condition it checks (i.e. friendliness with player) is already covered by the base version of this function so this is quite redundant.
- removed a few 'virtual' qualifiers from functions that never get overridden.
2016-11-12 09:33:43 +01:00
Marisa Heit
c69394fa40
Add con_numnotify cvar to control number of lines of notification text
...
- If con_numnotify < 0, then there is no limit on the number of lines of
text.
- If con_numnotify == 0, then any text that would normally be shown in the
notification area is discarded.
- If con_numnotify > 0, then that is the maximum number of lines of
notification text to display.
2016-11-12 00:34:07 -06:00
Marisa Heit
1e497e0b3e
Fixed: FString::StripLeftRight() lost the right character when copying to a new buffer
...
- Also, some minor improvements to the strip functions to avoid doing
extra work.
2016-11-12 00:34:07 -06:00
Marisa Heit
513ad7f75f
Use FString to store console atexit commands
2016-11-12 00:34:07 -06:00
Marisa Heit
c5eb28d360
Fix console scrolling too far when page scrolling with scaled text
2016-11-12 00:34:07 -06:00
Marisa Heit
4dce07762b
Change con_scale behavior for value 0
...
- Do not use uiscale for con_scale default. A 40 column console when
everything is defaults is maddening. The default is now CleanXfac minus 1.
2016-11-12 00:34:07 -06:00
Marisa Heit
3926ca13b0
Fix console input not scrolling when you hit the side of the screen
...
- Also changed the console input buffer into a struct instead of a
frankenstein buffer.
2016-11-12 00:34:07 -06:00
Christoph Oelckers
5bc89e7efc
- added a VM handler for PostBeginPlay.
...
- made a few changes to let the templates compile again on Linux.
2016-11-12 00:57:21 +01:00
Magnus Norddahl
c852b6c5e9
Add codegen for one of the triangle variants
2016-11-12 00:50:21 +01:00
Christoph Oelckers
696af7d7e5
- Moved all virtual function related template code to its own file because it depends on includes that cannot be done in dobject.h.
2016-11-12 00:33:40 +01:00
Christoph Oelckers
14a9c13113
- scriptified Heretic's wizard.
2016-11-11 23:32:13 +01:00
Christoph Oelckers
a5f9eb5be1
- Scriptified Heretic's knight.
2016-11-11 22:14:29 +01:00
Christoph Oelckers
924096694e
- implemented super calls and proper dispatch of scripted virtual overrides for Destroy.
2016-11-11 21:52:08 +01:00
Magnus Norddahl
667f35bfce
Declare structs to LLVM
2016-11-11 20:12:09 +01:00
Christoph Oelckers
72e77a6c65
- implemented handling for virtual function.
...
Syntax-wise I chose to make it as strict as possible to reduce the chance of errors: Virtual base functions must be declared with the 'virtual' keyword, and overrides in child classes with the 'override' keyword. This way any mismatch in parameters that otherwise would cause silent failure will outright produce a compile error.
2016-11-11 20:05:07 +01:00
Magnus Norddahl
0938420871
Make triangle drawers compatible with LLVMDrawers
2016-11-11 19:54:27 +01:00
Magnus Norddahl
3cc5cec5a0
Hook up subsector gbuffer
2016-11-11 19:26:28 +01:00
Magnus Norddahl
5a9d4ee9d9
Simplify argument passing
2016-11-11 18:24:59 +01:00
Rachael Alexanderson
c6f7848a09
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-11 11:39:53 -05:00
Leonard2
a1aceaf04f
Fixed the remaining errors with GCC
2016-11-11 16:01:09 +01:00
Edoardo Prezioso
8d01ba7733
- Fixed Clang errors with delayed templates on.
2016-11-11 15:22:53 +01:00
Christoph Oelckers
5e8c8b80c9
- removed bogus token paste operator.
2016-11-11 14:51:36 +01:00
Christoph Oelckers
6529931281
fixed and completed the special field init code. Strings can now be used as class members, and so can structs which contain strings.
...
- made 'DamageMultiply' an actor property and moved the initialization of ConversationRoot to the property handler for the compiler to get this stuff out of the type classes.
- consolidate default initialization into one function which performs all the required setup. The original implementation did this when adding the fields but that cannot work because at that time no defaults have been created yet.
- fixed: When deriving a class the child class's defaults also must initialize the copied parent fields with special initialization. This part was completely missing.
- removed DECORATE code for parsing native classes because it's no longer needed.
2016-11-11 14:40:32 +01:00
nashmuhandes
970c750daa
Added OpenGL support to the underwater view blend scalar option.
2016-11-11 18:08:47 +08:00
Magnus Norddahl
6989b7037e
Fix stencil write bug
2016-11-11 10:25:40 +01:00
nashmuhandes
fd31c84745
Added a slider to control the intensity of underwater screen blending.
2016-11-11 17:18:39 +08:00
Magnus Norddahl
529a93b680
Sky rendering fixes
2016-11-11 10:15:27 +01:00
Christoph Oelckers
15ddf70f58
- typo
2016-11-11 09:27:52 +01:00
Christoph Oelckers
a60bdc2bfb
use a memory arena for allocating code generation nodes.
...
- Since the number of small allocations here is extremely high this will help a lot to prevent fragmentation and since most nodes are collected up front and this is done when no large resources are being loaded it won't cause heap spikes.
let Emit methods delete FxExpression arrays when they are done.
- For some reason the deletion process does not work 100%, there are always some nodes left behind and so far I haven't found them. This ensures that these arrays do not live any longer than needed.
2016-11-10 15:13:31 +01:00
Magnus Norddahl
373038231c
More stencil sky stuff
2016-11-10 13:58:03 +01:00
Christoph Oelckers
e0bd6a2c0a
- fixed a memory leak in the compiler.
...
- removed test Printfs.
2016-11-10 13:37:38 +01:00
Magnus Norddahl
049ceecca5
Toying with stencils
2016-11-10 10:44:35 +01:00
Magnus Norddahl
204d09efde
Add a stencil buffer
2016-11-10 08:08:37 +01:00
Magnus Norddahl
b94096ffe1
Crash fixes
2016-11-10 05:30:33 +01:00
Magnus Norddahl
6c52e1e52b
Draw sky in a very expensive way
2016-11-10 05:01:33 +01:00
Christoph Oelckers
5151547df0
- fixed: String comparisons with constants did not work.
2016-11-09 20:28:46 +01:00
Leonard2
fb2a843c03
Test on a few methods/classes
2016-11-09 17:45:56 +01:00
Leonard2
26dc0c6df2
TODO: Find a better place to insert the classes in the hierarchy
2016-11-09 17:45:55 +01:00
Leonard2
7dbc4710f1
Add the new argument to all uses of the implement macro
2016-11-09 17:45:55 +01:00
Leonard2
33e2c74642
Provide a way to expose a native class to zscript for virtual functions overriding
2016-11-09 17:45:54 +01:00
Leonard2
ad19e439a6
Implement a general and easy-to-use way of overriding native virtual functions
2016-11-09 17:45:53 +01:00
Leonard2
bb2d61de50
Replaced the many implement macros with a single one that takes arguments instead
2016-11-09 17:45:53 +01:00
Leonard2
0b3585c83f
Separate the pointer list from the implement macro
2016-11-09 17:45:52 +01:00
Magnus Norddahl
9820a6cb88
Request GL BSP instead of requiring automap texturing to be on
2016-11-09 12:07:07 +01:00
Magnus Norddahl
dc0e6d40a4
Distance sort sprites
2016-11-09 11:38:07 +01:00
Magnus Norddahl
cffdfdf7fd
Cull bsp using solid segments
2016-11-09 01:33:40 +01:00
Magnus Norddahl
95df9bf48e
Fix crash bug in 8 bit drawer
2016-11-09 00:35:41 +01:00
Magnus Norddahl
968150ceff
Seems there could be more than 6 vertices
2016-11-09 00:22:05 +01:00
Magnus Norddahl
7d3e8d1414
Fix triangle drawer clipping bug
2016-11-08 23:08:25 +01:00
Christoph Oelckers
701ffb868b
- fixed: The first argument of string-based ACS specials was missing a string to name cast.
2016-11-08 22:36:44 +01:00
Rachael Alexanderson
9413ea6edf
- Textured automap would crash due to an additional parameter in the software renderer to the FillSimplePoly function call, causing stack issues.
2016-11-08 15:35:51 -05:00
Rachael Alexanderson
d36993a03b
- Textured automap would crash due to an additional parameter in the software renderer to the FillSimplePoly function call, causing stack issues.
2016-11-08 15:05:23 -05:00
Magnus Norddahl
6ef8fe2da5
Add diminishing lighting
2016-11-08 18:08:13 +01:00
Magnus Norddahl
c1d496c17f
A little bit of SSE to speed it slightly more
2016-11-08 17:38:19 +01:00
Magnus Norddahl
466274d7f6
Remove floats from the inner block loop
2016-11-08 16:46:15 +01:00
Magnus Norddahl
28d1cdc1cc
Add TriUniforms and move light to it
2016-11-08 16:16:24 +01:00
Magnus Norddahl
6620d99fbb
Fix frame buffer bounds and access errors
2016-11-08 15:27:45 +01:00
Christoph Oelckers
5c7affd102
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-08 14:31:10 +01:00
Magnus Norddahl
cb4b74e0c3
Double render speed of triangle drawer in the poly version by removing sprite clip and assigning whole blocks to threads
2016-11-08 14:28:58 +01:00
Christoph Oelckers
7b7b66d8b7
- added a new variable flag that allows defining variables which can only be modified by internal script code but not by external mods. Currently this is used by the NoBlockmap and NoSector flags which need special handling for changing.
2016-11-08 11:12:56 +01:00
Rachael Alexanderson
dffba5267d
- Full freelook is now enabled if r_newrenderer is set to true.
2016-11-08 00:44:53 -05:00
Magnus Norddahl
2e2d6da00f
Only draw thing if its in the subsector
2016-11-08 05:48:45 +01:00
Magnus Norddahl
d0f0500f0d
Draw things
2016-11-08 05:17:29 +01:00
Magnus Norddahl
b9d6fc6856
Add some light and transparency
2016-11-08 02:48:14 +01:00
Christoph Oelckers
3661e479d9
- fixed: Runtime conversion of names to classes used the wrong argument to check the class type.
2016-11-07 23:29:54 +01:00
Christoph Oelckers
aac931192b
- fixed: Declaring a damage function must set regular damage to -1 to disable it.
2016-11-07 23:22:00 +01:00
Christoph Oelckers
cf9cdeb480
- scriptified the Revenant's code.
2016-11-07 23:16:25 +01:00
Christoph Oelckers
387287008c
- fixed: Clamp was initialized with incorrect values.
2016-11-07 14:57:59 +01:00
Christoph Oelckers
5e8c819a33
- fixed checks in Powerup.Type property to properly deal with the differences between DECORATE and ZScript.
...
- properly initialize Baggage everywhere it gets used.
- fixed a few items with incorrect Powerup.Type settings that got flagged by the above changes.
2016-11-07 11:53:49 +01:00
Christoph Oelckers
208fe28042
- properly clear all script compiler data for a restart.
2016-11-07 11:30:41 +01:00
Christoph Oelckers
dc055b74c1
- fixed the octal parser in strbin. Like its hex counterpart it needs to backtrack one character if it find the end of a sequence.
...
- since ZScript already receives filtered strings, the 'T' converter for the properties should not do it again.
2016-11-07 09:54:46 +01:00
Magnus Norddahl
237f54f4be
Toying with triangle drawer and GL BSP nodes
2016-11-07 09:25:12 +01:00
Magnus Norddahl
47cc110498
Add true color triangle drawer
2016-11-07 05:24:17 +01:00
Magnus Norddahl
4e717cd9ee
Merge remote-tracking branch 'origin/triangledrawer' into qzdoom
2016-11-07 04:30:28 +01:00
Magnus Norddahl
92be8f401c
Remove old triangle version
2016-11-07 04:27:55 +01:00
Magnus Norddahl
3ea9d7cf04
Move software renderer transform to TriMatrix
2016-11-07 03:34:59 +01:00
Rachael Alexanderson
8e7e1b48e9
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-06 19:54:08 -05:00
Christoph Oelckers
b206d19df4
- fixed: RegAvailability never set the number of allocated registers to more than 32.
...
- fixed register allocation in ?: operator which was quite broken.
2016-11-07 01:10:56 +01:00
Christoph Oelckers
7da4e0d03d
- removed a parsing hack for the old internal definitions.
...
- fixed: The state cast hack for DECORATE could not properly create state constants.
Instead they were passed to FxRuntimeStateIndex without resolving them to something constant. This adds proper handling of constant indices within that class.
2016-11-06 23:10:23 +01:00
Braden Obrzut
640bf2a6d4
- Fixed: SBarInfo didn't support animated images in some places.
2016-11-06 17:07:44 -05:00
Christoph Oelckers
779f9d7a72
Merge branch 'master' of https://github.com/rheit/zdoom into zscript
2016-11-06 15:13:44 +01:00
Rachael Alexanderson
9f9e4ea19d
- Added randi's "bottomclip" parameter to dpJudas's OpenGLSWFrameBuffer::FillSimplePoly implementation. The code refused to compile because of the new changes. Note that this is not tested on Linux or Mac, and will likely need changes there as well.
2016-11-06 08:58:06 -05:00
Major Cooke
2583da9680
Do not allow DMG_FORCED to bypass ultimate degreeslessness/buddha for players.
2016-11-06 07:44:30 -06:00
Christoph Oelckers
10ef430bae
Revert "Do not allow DMG_FORCED to penetrate player ultimate degreelessness/buddha."
...
This reverts commit 0130bde077
.
This wasn't supposed to get merged, so get rid of it again. The change in semantics here is not acceptable.
2016-11-06 14:18:13 +01:00
Christoph Oelckers
647fd53a15
- fixed: An 'if' statement with only one branch may never considered to be always returning.
2016-11-06 14:14:54 +01:00
Rachael Alexanderson
901727a7f8
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-06 08:11:04 -05:00
Christoph Oelckers
6414fd301b
- let's add a 'float' cast, too, just in case. It still will cast to double, because single precision floats only can exist as memory values.
2016-11-06 13:21:47 +01:00
Christoph Oelckers
398433b5e6
- fixed: Explicit casts to bool were missing.
2016-11-06 13:20:22 +01:00
Christoph Oelckers
2ac0046cda
- fixed and cleaned up state index jump handling
...
* use the function build list instead of the function to pass the info. The function is permanent so not the best place for compile-time info.
* pass along the current state index which is needed to calculate the target state.
2016-11-06 13:14:46 +01:00
Christoph Oelckers
c354000f1c
- block "" and 0 as valid state names in ZScript. There were common workarounds for the lack of a null pointer in DECORATE which no longer are supported as those and would produce errors now.
2016-11-06 12:00:16 +01:00
Magnus Norddahl
3a7532fd9b
Improve flat mipmap selection
2016-11-06 11:39:28 +01:00
Christoph Oelckers
062574b726
- fixed damage handling in A_BetaSkullAttack. For unknown reasons this completely bypassed the normal damage function semantics and even multiplied that with a random value.
...
- made some tests about calling script code from native functions.
* scriptified A_SkullAttack to have something to test
* changed the A_SkullAttack call in A_PainShootSkull.
* use a macro to declare the function pointer. Using local static variable init directly results in hideous code for the need of being thread-safe (which, even if the engine was made multithreaded is not needed here.)
* Importsnt node here: Apparently passing an actor pointer to the VMValue constructor results in the void * version being called, not the DObject * version.
2016-11-06 11:36:12 +01:00
Christoph Oelckers
dbde0971ef
- removed the second 'calculated' return value from the damage function call in GetMissileDamage as it is no longer needed or even code being generated for.
2016-11-06 10:28:01 +01:00
Christoph Oelckers
c3ae560289
- scriptified two more trivial functions.
2016-11-06 09:22:03 +01:00
Magnus Norddahl
aad2cde332
Oops, forced all sandy bridge CPUs to westmere instead of just Pentium G840
2016-11-06 07:37:18 +01:00
Magnus Norddahl
70d4097b34
Fix clamping bug when r_mipmap is off
2016-11-06 07:33:17 +01:00
Marisa Heit
55ee78fc0b
Add bottomclip parameter to FillSimplePoly() for the software implementation
...
- Polygons will be clipped to bottomclip. If this is zero or below, they
will be clipped to the bottom of the screen instead. This keeps the
polygons from overwriting the status bar border for sofware 2D. The
hardware version ignores it, since it always draws the status bar border
every frame.
2016-11-05 22:49:33 -05:00
Rachael Alexanderson
5e547e9455
Merge branch 'master' of https://github.com/rheit/zdoom
...
# Conflicts:
# src/r_segs.cpp
# src/v_draw.cpp
2016-11-05 23:38:50 -04:00
Marisa Heit
dbc54fbca0
Fix FillSimplePoly() for 1-pixel tall or wide textures
2016-11-05 22:30:16 -05:00
Marisa Heit
ae28c9b29c
Fix divide by 0 in new wallscan functions with 1-pixel tall textures
2016-11-05 22:09:38 -05:00
Major Cooke
0130bde077
Do not allow DMG_FORCED to penetrate player ultimate degreelessness/buddha.
2016-11-05 20:15:41 -05:00
Christoph Oelckers
c9a96ed0ae
- fixed: CALL_ACTION always set 3 args, even for normal methods. Also moved this to a sunfunction because the macro created a lot of code.
2016-11-06 01:34:54 +01:00
Christoph Oelckers
b59f4e950f
- fixed: The return prototyxpe may only be retrieved after the return state of the function has been checked. Also made this a real error message instead of an assert because it will inevitably result in a crash if the prototype cannot be generated, making diagnostics impossible.
2016-11-05 21:02:26 +01:00
Christoph Oelckers
0f9ebff3ee
- fixed: The return checking code must be inside the nullptr check for item.code.
2016-11-05 18:56:04 +01:00
Christoph Oelckers
0851d698de
- don't run constant state indices through the runtime checker.
2016-11-05 18:15:53 +01:00
Christoph Oelckers
1b77a8f491
- fixed: Tacking on a return statement should only be done if the function has branches that actually reach the end. Otherwise it may interfere with return type deduction.
...
- used the return check to optimize out unneeded jumps at the end of an if statement's first block.
2016-11-05 18:05:57 +01:00
Christoph Oelckers
98fa3d2d93
- added an accessor to the actor defaults. This might have been possible with less work using a function but that would have necessitated some type casts when using it on subclasses.
...
- scriptified A_BarrelDestroy to test the above.
2016-11-05 17:14:16 +01:00
Magnus Norddahl
d084f77546
Fix mipmap generation bug
...
Fix crash due to dc_source2 not always being set
Add r_lod_bias to control mipmap selection
Improve LOD calculations to take the U texture coordinate into account
2016-11-05 16:12:59 +01:00
Christoph Oelckers
24925c88a8
- added readonly pointers. They need to be defined with 'readonly<classtype>'. These are significantly different from declaring a field readonly in that they do not disallow modification of the variable itself but what it points to. For the actor defaults this is necessary to prevent accidental modification. A readonly pointer is actually a different type than a regular pointer.
...
- fixed code generation for dynamic cast. It was missing the jump instruction after the compare.
2016-11-05 13:51:46 +01:00
Magnus Norddahl
4b18530047
Add linear filtering to column drawers and fix offsetting bug with wall/span linear filters
2016-11-05 11:29:50 +01:00
Christoph Oelckers
ca878b5e6b
Merge branch 'master' of https://github.com/rheit/zdoom into zscript
2016-11-05 10:40:02 +01:00
Christoph Oelckers
9ab779fd61
Merge commit '60ae4a8568d9fc929c803036fa16fa0f9bfb68a2'
2016-11-05 10:39:13 +01:00
Christoph Oelckers
b890f2b608
- fixed retrieval of constant for state index.
2016-11-05 10:38:23 +01:00
Christoph Oelckers
272dff6b8f
Merge branch 'master' into zscript
2016-11-05 10:35:00 +01:00
Christoph Oelckers
76c34d7b2f
- block access to private and protected data for the external variabler getter functions.
...
- fixed: The state index comparison against 0 was broken.
- fixed: Resolving codegen nodes must set the strictness flag per function so that ZSCRIPT and DECORATE are done properly.
2016-11-05 09:50:53 +01:00
Rachael Alexanderson
2fe5cb4f77
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-04 23:53:05 -04:00
Magnus Norddahl
484e1b56be
Merge remote-tracking branch 'origin/new_wallscan' into qzdoom
2016-11-05 04:49:54 +01:00
Braden Obrzut
dd1f72bbf9
- Check the version of FMOD in CMake to produce an error on the condition that OpenAL is also enabled and the FMOD version is low enough to also export Xiph symbols.
2016-11-04 23:27:04 -04:00
Magnus Norddahl
60ae4a8568
Replace build wallscan with a rewritten version that tile and scale correctly
2016-11-05 04:02:30 +01:00
Christoph Oelckers
514bcfb128
Print a clearer error message if a function name is encountered without parentheses.
2016-11-05 01:24:52 +01:00
Christoph Oelckers
010fd038be
- scriptified A_KeenDie.
...
- added an 'exact' parameter to FThinkerIterator's Next function. This is mainly for scripting which allows to do a lot more checks natively when running the iterator while looking for one specific class.
2016-11-05 01:19:41 +01:00
Christoph Oelckers
b6633bc489
- fixed: The states parser tried to simplify the head node for random duration but it has to simplify the two value nodes separately.
...
- added jump by index to ZScript.
2016-11-05 00:39:00 +01:00
Christoph Oelckers
8ae7aae14a
- do not delete duplicate PFields - they are better be destroyed and left to the GC.
...
- removed two duplicate entries to the flag table.
2016-11-04 15:21:45 +01:00
Christoph Oelckers
407345668a
- fixed: ZCCCompiler tried to process replacements too early, it can only be done after all classes have been created.
2016-11-04 15:16:56 +01:00
Christoph Oelckers
faea61cf01
- fixed: Turbo messages were printed, even when no turbo mode was active.
2016-11-04 12:43:23 +01:00
Christoph Oelckers
540f20882e
- fixed: Degeneration should use the same base health value as all the rest of the engine.
...
- also replaced deh.MaxHealth in the bot code which was the only other remaining case where this was used as health limiter.
2016-11-04 11:32:57 +01:00
Christoph Oelckers
7755a3525a
- do not allow menu slider values very close to zero. They not only can produce a glitched number display but also some weird inconsistencies when operating a slider.
2016-11-04 11:17:22 +01:00
Christoph Oelckers
07c24c7e27
- use different names for different AST dumps.
2016-11-04 10:35:14 +01:00
Magnus Norddahl
4b4d7a0768
Add texturefrac bounds clamping to R_DrawMaskedColumn to avoid buffer overruns
2016-11-04 10:16:44 +01:00
Magnus Norddahl
b04118032e
Fix wrapping and scaling issue for the U texture coordinate for sprites
2016-11-04 10:15:57 +01:00
Christoph Oelckers
7068070c0d
- fixed: The identifier fallback which existed for all other basic types was missing for 'state'.
...
- added the option to put code right into the ZSCRIPT lump for smaller definitions where a file list would be too cumbersome.
2016-11-04 09:56:03 +01:00
Christoph Oelckers
157cfe3ab3
- fixed: The RNG was not initialized for script calls that did not explicitly specify an RNG by name.
2016-11-04 09:23:29 +01:00
Christoph Oelckers
d433fb76c9
- completed the list of AActor exported member variables, with the exception of a few things that cannot be done yet.
...
Note that AActor::Inventory needed to be renamed because defining this symbol within AActor would hide the global type of the same name!
2016-11-04 08:57:10 +01:00
Magnus Norddahl
12a1755edf
Move texture info to R_DrawMaskedColumn and add bounds checking
2016-11-04 01:39:53 +01:00
Christoph Oelckers
9563045305
- moved declaration of native fields into the respective class definitions.
...
This bypasses a declaration in the script in favor of a simpler implementation. In order to work it is always necessary to have an offset table to map the variables to, but doing it fully on the native side only requires adding the type to the declaration.
2016-11-04 00:19:36 +01:00
Christoph Oelckers
747b612860
Merge branch 'master' of https://github.com/rheit/zdoom
2016-11-03 19:42:03 +01:00
Christoph Oelckers
c9dad70408
- removed the GetConstantInt overloads since it appears they are not needed.
2016-11-03 16:46:55 +01:00
Christoph Oelckers
9188dc07a7
- removed excess parameter from A_FadeIn.
2016-11-03 14:38:18 +01:00
Christoph Oelckers
995f01f8aa
- removed obsolete code from a_bossbrain.cpp.
...
- fixed: divisions wasted one register for each operation due to a double allocation.
- changed math operations to use less registers. There was a well-intended change to allocate the destination first, but the better approach is to first allocate the operands and free then before allocating the destination register.
2016-11-03 14:23:29 +01:00
Christoph Oelckers
a45523fb63
- scriptified A_SpawnFly.
...
- added support for global variables to the code generator - not the compiler, though. For the handful of entries this is needed for it may just as well be done manually. So far FLevelLocals level is the only one being exported.
- fixed: The VM disassembler truncated 64 bit pointers to 15 digits because the output buffer was too small.
- resolve entire FxSequences instead of aborting on the first failed entry. This allows to output all errors at once.
2016-11-03 13:38:40 +01:00
Magnus Norddahl
90c8b3370a
Fix mipmap sampling bug
2016-11-03 12:51:07 +01:00
Magnus Norddahl
356830a8c8
Add CPU misdetection workaround for the Pentium G840 and a llvm_cpu CVAR that can force codegen to a specific CPU architecture
2016-11-03 12:02:07 +01:00
Christoph Oelckers
6aecb29995
- fixed: The VM function builder was set up with the wrong number of implicit arguments.
2016-11-02 16:05:57 +01:00
Christoph Oelckers
ff66dc3189
- flatten FxBinaryLogical chains into a single node for more efficient processing.
2016-11-02 15:46:15 +01:00
Christoph Oelckers
eca4fba0f6
- fixed a merge conflict which wasn't flagged by TortoiseMerge.
2016-11-02 14:15:09 +01:00
Christoph Oelckers
3a7f51db88
a_hereticimp.cpp does not exist anymore...
2016-11-02 13:39:37 +01:00
Christoph Oelckers
c44dc8d951
Merge branch 'master' of https://github.com/rheit/zdoom into zscript
2016-11-02 11:46:18 +01:00
Christoph Oelckers
570572fcf2
- scriptified a_hereticimp.cpp.
...
- fixed the comparison against 0 simplification which did not negate the result for '=='.
2016-11-02 11:44:48 +01:00
Christoph Oelckers
8b21719068
Merge branch 'zscript' of https://github.com/rheit/zdoom into zscript
2016-11-02 11:43:23 +01:00
Christoph Oelckers
703aaa373e
SHA-1: 8852bc7278d033bbed66c51bf23aee841ee977a9
...
* Revert "Modify CMPJMP to produce more compact code (as far as VC++ is concerned, anyway)"
This reverts commit 6ff973a06b
.
This modification did not work and broke the comparisons. Actually this had three problems:
* the asserts checked the wrong instruction
* the mask was not applied to regular comparisons.
* incrementing PC before testing does not work because 'test' references the PC.
2016-11-02 11:40:43 +01:00
Christoph Oelckers
f940216c17
Merge branch 'master' into zscript
...
# Conflicts:
# src/p_actionfunctions.cpp
# wadsrc/static/actors/actor.txt
2016-11-02 11:08:51 +01:00
Christoph Oelckers
ff8b216167
SHA-1: 8852bc7278d033bbed66c51bf23aee841ee977a9
...
* Revert "Modify CMPJMP to produce more compact code (as far as VC++ is concerned, anyway)"
This reverts commit 6ff973a06b
.
This modification did not work and broke the comparisons. Actually this had three problems:
* the asserts checked the wrong instruction
* the mask was not applied to regular comparisons.
* incrementing PC before testing does not work because 'test' references the PC.
2016-11-02 10:52:14 +01:00
Rachael Alexanderson
7cba67ad45
Merge branch 'master' of http://github.com/rheit/zdoom
2016-11-02 03:12:21 -04:00
Marisa Heit
f8641c0ffb
Fixed: MaxVisForFloor was broken by the switch to floats
...
- TODO: See if these visibility limits are even needed anymore.
2016-11-02 00:07:57 -05:00
Marisa Heit
3f32ccada6
Zero In2D before calling Flip()
...
- Fixes an assert when resizing the window in windowed mode. Flip() can call
V_OutputResized() in windowed mode.
2016-11-01 22:54:27 -05:00
Magnus Norddahl
1b7d21790d
Merge branch 'sprite_texcoord_fix' into qzdoom
2016-11-01 23:14:46 +01:00
Magnus Norddahl
5814270980
Fix wrapping and scaling issue for the U texture coordinate for sprites
2016-11-01 22:58:53 +01:00
Magnus Norddahl
477fb6d676
Added missing copyrights
2016-11-01 21:44:33 +01:00
Magnus Norddahl
1ccf190c4f
Merge remote-tracking branch 'zdoom/master' into qzdoom
2016-11-01 19:51:17 +01:00
nashmuhandes
578bf9b09c
Added "local" parameters to A_PlaySound and ACS PlaySound
2016-11-01 13:21:32 -04:00
Christoph Oelckers
48229837ed
- fixed: ACSStringPool::AddString did not check for NULL pointers as input. Let's just map them to the empty string, that's a lot better than crashing.
2016-11-01 13:20:58 -04:00
Christoph Oelckers
bfb8886e93
- fixed: RapidJSON in ASCII mode cannot handle extended 8 bit character sets and will produce broken data if the input contains some. This means we need to perform the conversion to UTF-8 on ZDoom's side and run RapidJSON in UTF-8 mode.
...
Daedalus triggers this with a 0x85 character which in Windows CP 1252 is the ellipsis (...) The converter will assume ISO-8859-1, though, but cannot do anything with these characters because they map to the font being used here.
2016-11-01 13:20:58 -04:00
Christoph Oelckers
88fd47247d
- scriptified several trivial functions from a_action.cpp.
2016-11-01 16:32:47 +01:00
nashmuhandes
b420347bab
Added "local" parameters to A_PlaySound and ACS PlaySound
2016-11-01 15:14:06 +01:00
Rachael Alexanderson
6755373f46
- fixed: map commands will now take capslock DM/COOP as arguments
2016-11-01 15:09:09 +01:00
Rachael Alexanderson
f72ebe6768
- Extended map, recordmap, and open commands to accept "dm/coop" as an extra parameter - to open maps in multiplayer mode with the requested ruleset.
2016-11-01 15:09:08 +01:00
Rachael Alexanderson
33637dda23
- fixed: map commands will now take capslock DM/COOP as arguments
2016-11-01 09:47:01 -04:00
Christoph Oelckers
3f57269a8b
- fixed: ACSStringPool::AddString did not check for NULL pointers as input. Let's just map them to the empty string, that's a lot better than crashing.
2016-11-01 13:36:33 +01:00
Christoph Oelckers
4cf0d76e8c
- fixed: RapidJSON in ASCII mode cannot handle extended 8 bit character sets and will produce broken data if the input contains some. This means we need to perform the conversion to UTF-8 on ZDoom's side and run RapidJSON in UTF-8 mode.
...
Daedalus triggers this with a 0x85 character which in Windows CP 1252 is the ellipsis (...) The converter will assume ISO-8859-1, though, but cannot do anything with these characters because they map to the font being used here.
2016-11-01 13:33:18 +01:00
Edoardo Prezioso
7137e87b4b
- Fixed GCC/Clang errors from recent commits.
2016-11-01 10:35:45 +01:00
Edoardo Prezioso
46a311b23c
- Fixed a typo in 1 pixel tall support addition.
...
Found by Clang -Wparentheses warning.
2016-11-01 09:59:59 +01:00
Rachael Alexanderson
3102668dfa
- Removed mp### commands, extended map, recordmap, and open commands to accept "dm/coop" as an extra parameter - to open maps in multiplayer mode with the respective ruleset.
2016-11-01 03:28:30 -04:00
Marisa Heit
429aed85e1
Fixed: Masked midtexture yscale incorrectly used the texture's X scale
2016-11-01 01:57:43 -04:00
Rachael Alexanderson
c6ea262baf
Merge commit '8d7e400f8eaa964f359849df34306ade247cf850'
2016-11-01 01:52:33 -04:00
Marisa Heit
5df21fda68
Fixed: Masked midtexture yscale incorrectly used the texture's X scale
2016-11-01 00:18:56 -05:00
Marisa Heit
9388597443
Add 1 pixel tall and wide texture support to the renderer
...
- These require manual detection and overriding of the scaling factors to
0, because a right shift of (32-0) bits wraps around to 0 and results in
no shift at all rather than leaving the register zeroed out.
2016-11-01 00:08:16 -05:00
Marisa Heit
8d7e400f8e
Fixed: DCanvas::FillSimplePoly must set dc_destorg
...
- dc_destorg is normally set to the upper-left corner of the view window.
If there is a border, then this won't coincide with the upper-left
corner of the screen, and DCanvas::FillSimplePoly would merrily write off
the end of the screen buffer.
2016-10-31 22:34:46 -05:00
Rachael Alexanderson
fb8c05bcb3
Merge branch 'master' of http://github.com/rheit/zdoom
2016-10-31 21:27:16 -04:00
Christoph Oelckers
6e6249f896
- reverted WEAPONTOP to its original value of 32 and made the added fudging bit part of the render side.
...
This is needed so that 'offset(0,32)' does what it is supposed to do.
2016-10-31 18:53:28 +01:00
Christoph Oelckers
8e12e7462c
Merge branch 'master' into zscript
2016-10-31 17:03:33 +01:00
Christoph Oelckers
e620c9bd7d
- scriptified parts of a_bossbrain.cpp. Some things cannot be done yet, the script code is there but commented out.
...
- exported thinker iterator and drop item chain to scripting. Unlike its native counterpart the script-side iterator is wrapped into a DObject to allow proper handling for memory management.
- fixed: The VMFunctionBuilder only distinguished between member and action functions but failed on static ones.
- fixed: FxAssign did not add all needed type casts. Except for purely numeric types it will now wrap the expression in an FxTypeCast. Numeric handling remains unchanged for both performance reasons and not altering semantics for DECORATE.
- exported all internal flags as variables to scripting. They still cannot be used in an actor definition.
- make ATAG_STATE the same as ATAG_GENERIC. Since state pointers exist as actual variables they can take both values which on occasion can trigger some asserts.
- gave PClass a bExported flag, so that scripts cannot see purely internal classes. Especially the types like PInt can cause problems.
Todo: we need readonly references to safely expose the actor defaults. Right now some badly behaving code could overwrite them.
2016-10-31 17:03:26 +01:00
Magnus Norddahl
cdf8264dc3
Cube and dome sky modes
2016-10-31 08:30:39 +01:00
Magnus Norddahl
7a9c674f83
Add triangle fan and strip
2016-10-31 08:30:08 +01:00
Magnus Norddahl
a1ba371eed
Added triangle drawer to the software renderer
2016-10-31 06:09:46 +01:00
Rachael Alexanderson
7333bdb57e
- Changed helpful syntax error messages for mpmap, mprecordmap, and mpopen
2016-10-31 00:50:43 -04:00
Rachael Alexanderson
bc319dce1d
- Corrected syntax error messages for mpmap, mpopen, mprecordmap
...
- Added initial state for "multiplayernext" to prevent possible initialization errors.
- Implemented "mpmap", "mpopen", and "mprecordmap". All 3 commands do exactly as their non-"mp" counterparts do, except they turn on multiplayer (botmode) emulation before doing so.
2016-10-31 00:49:19 -04:00
Rachael Alexanderson
49cccfae42
- Added initial state for "multiplayernext" to prevent possible initialization errors.
2016-10-31 00:42:02 -04:00
Rachael Alexanderson
4c5723c10a
- Implemented "mpmap", "mpopen", and "mprecordmap". All 3 commands do exactly as their non-"mp" counterparts do, except they turn on multiplayer (botmode) emulation before doing so.
2016-10-31 00:29:15 -04:00
Rachael Alexanderson
beab686ca6
Merge branch 'master' of http://github.com/rheit/zdoom
2016-10-30 23:44:09 -04:00
Braden Obrzut
43b2584f79
- Fixed: Reference to freed stack object in R_FindPlane. This caused a massive slowdown (90% drop in total performance) in R_FindPlane when built with optimizations on in GCC6. Although I don't really understand why since the comparison should have been O(1) regardless of memory contents and even if the check failed every plane it would still be pretty fast, this is what they mean when they say that anything can happen when undefined behavior is triggered.
2016-10-30 23:27:29 -04:00
Marisa Heit
6ff973a06b
Modify CMPJMP to produce more compact code (as far as VC++ is concerned, anyway)
2016-10-30 22:16:02 -05:00
Rachael Alexanderson
de2122e2aa
Merge branch 'master' of http://github.com/rheit/zdoom
2016-10-30 21:36:13 -04:00
FishyClockwork
7c1f7aa81c
Restricted custom goodbyes to ZSDF
2016-10-30 20:27:07 +01:00
Kyle Evans
1502eae2ac
Add XPM (X PixMap) version of ZDoom icon
2016-10-30 19:31:32 +01:00
FishyClockwork
42be7bee93
For USDF treat Require/Exclude as unknown
...
For USDF treat Require/Exclude as an unknown keyword.
2016-10-30 19:30:55 +01:00
FishyClockwork
c341bc0d3c
Added restriction of Require/Exclude to ZSDF
...
Added restriction of Require/Exclude to ZSDF (namespace = "ZDoom";).
A warning will be printed if a Require/Exclude block is detected in USDF (namespace = "Strife";).
2016-10-30 19:30:54 +01:00
FishyClockwork
b1880964fa
Added two new sub-blocks for Choice blocks
...
Added two new sub-blocks for Choice blocks: Require and Exclude.
The syntax for both is the same as Cost blocks.
Require defines what item must be present in your inventory in order to show this choice/reply.
Exclude defines what item must not be present in your inventory in order to show this choice/reply.
If any Require/Exclude blocks are defined then this choice/reply will be hidden until all blocks of both types are satisfied.
2016-10-30 19:30:53 +01:00
Christoph Oelckers
2857fac338
- scriptified a_archvile.cpp.
...
- fixed the type checks for the conditional operator.
2016-10-30 18:41:39 +01:00
Christoph Oelckers
a652c5f259
- fixed: For named functions the prototype needs to be set before the code generator starts resolving. Otherwise it will crash on incompletely set up forward declarations.
2016-10-30 16:21:44 +01:00
Christoph Oelckers
f8ccda2dc8
- scriptified A_Mushroom to test something a bit more complex.
...
- fixed: FxMinusSign trashed local variables that were used with negation.
- fixed: FxConditional only handled ints and floats, but not pointers and strings.
- fixed: A 'no states in non-actors' error was triggered, even for classes without any states.
2016-10-30 14:00:11 +01:00
Christoph Oelckers
9eeb56212b
- fixed: A VM function's NumArgs value needs to count stack arguments, not logical ones, meaning that for vectors each element needs to count separately.
...
- renamed VMFunction::Defaults to DefaultArgs to make searching easier.
- let ZCCCompiler process vector defaults for function parameters.
2016-10-30 09:05:42 +01:00
Magnus Norddahl
a7d06ddd77
Add texturing to triangle drawer
2016-10-30 08:18:55 +01:00
Leonard2
06ec6318a9
Fixed: A vector value could point to garbage data after being 'unnested'
2016-10-30 07:37:13 +01:00
Leonard2
5643d6c692
Make sure to use the REGT_MULTIREG flags for opcodes that need it
2016-10-30 07:37:12 +01:00
Leonard2
8be7af41a9
Don't use a struct reference for vectors as return type just like for parameters
2016-10-30 07:36:00 +01:00
Leonard2
94410accf4
Renamed "VectorInitializer" to "VectorValue"
...
This was really confusing for me as this is an actual vector "value" rather than an "initializer"
2016-10-30 07:34:14 +01:00
Rachael Alexanderson
6ea0baac3a
- Next "pre" tag.
2016-10-29 22:49:34 -04:00
Rachael Alexanderson
e2fa16c99e
Actually - changed our minds - this is going to be 1.0. :)
2016-10-29 21:51:43 -04:00
Rachael Alexanderson
09961abeea
- Version 0.1.1 tag
2016-10-29 21:44:30 -04:00
Christoph Oelckers
ac1c022911
- implemented the 'is' operator (i.e. class type check.)
2016-10-30 01:05:56 +02:00
Christoph Oelckers
78a18acf46
- added string handling to comparison operators.
2016-10-29 18:57:56 +02:00
Christoph Oelckers
853c6f6684
- fixed initialization of local variables with other local variables.
...
- fixed several occurenced where vectors were treated as floats. NOTE: The entire codegen.cpp file needs to be carefully reviewed for bad use of the REGT_ constants, there's probably more places where using them has broken some type checks.
- fixed: committed test version of zscript.txt instead of changed actor.txt by accident.
Initialization and assignment for strings is working with this commit.
2016-10-29 16:49:21 +02:00
Christoph Oelckers
7f2350cf64
Merge branch 'master' of https://github.com/rheit/zdoom
2016-10-29 16:08:46 +02:00
Christoph Oelckers
4dc97a6ed0
- fixed register allocation for vector arguments to script functions.
...
- handle 2D and 3D vectors in SetReturn.
2016-10-29 13:42:37 +02:00
Christoph Oelckers
7209f9edd6
- implemented passing vectors as parameters. So far working for native functions.
...
- removed the bogus optional value from the first A_Jump argument. A quick test with an older ZDoom revealed that this was never working - and implementing it would make things a lot more complicated, especially error checking in the code generator.
- fixed: The check for insufficient parameters to a function call was missing.
2016-10-29 13:10:27 +02:00
Christoph Oelckers
e94b4cc74e
Merge branch 'master' into zscript
2016-10-29 11:20:32 +02:00
Christoph Oelckers
f5d1b1a491
- added vector builtins Length() and Unit().
...
This should complete the vector type except for use as function parameter.
2016-10-29 10:43:22 +02:00
Christoph Oelckers
b5222f08e8
- implemented dot and cross products (not that I'd ever expect these to become useful in a game like Doom...)
2016-10-29 10:16:00 +02:00
Magnus Norddahl
de8260ed8b
Merge remote-tracking branch 'origin/dancingsprites' into qzdoom
2016-10-29 08:13:20 +02:00
Magnus Norddahl
87ea75169e
Fix texturefrac out of bounds bug
2016-10-29 08:11:12 +02:00
Magnus Norddahl
ea44a445af
Improve drawer debug info details
2016-10-29 07:20:16 +02:00
Magnus Norddahl
ea9b45d988
Change read access violations to be non-fatal
2016-10-29 06:50:09 +02:00
Magnus Norddahl
deaced4bfa
Merge remote-tracking branch 'origin/dancingsprites' into qzdoom
2016-10-29 06:14:22 +02:00
Magnus Norddahl
837ed7bd80
Fix dancing sprites due to texture coordinate calculations not taking pixel centers into account
...
Merge R_DrawMaskedColumn and R_DrawMaskedColumnHoriz into one function to remove code duplication
2016-10-29 05:35:41 +02:00
Leonard2
594a0c2008
Fixed: FxVMFunctionCall didn't check for varargs while checking argument count
2016-10-29 02:18:15 +02:00
Christoph Oelckers
e5878f0cb2
- implemented vector operations. Vectors are now fully working as local variables.
...
- removed mulv_kr and divv_kr instructions. The first are redundant and the second are useless. Maybe remove all other vector/const operations as well? They won't get used by the code generator.
- fixed disassembly of vector multiplication and division instructions.
2016-10-29 01:39:25 +02:00
Christoph Oelckers
9400f97189
- implemented local vector variables. Currently only the definition plus initial assignment works.
...
- removed all vector4 handling that had already been added, now that this type can no longer be defined.
2016-10-28 15:15:30 +02:00
Christoph Oelckers
f2f365bfef
- fixed setup for PString which was missing the load/store/move instructions which caused me to overlook its register type.
...
- properly set up the vector types.
- fixed: a struct must start with a size of 0, not 1. This caused the layout of the vectors to be broken.
2016-10-28 14:43:29 +02:00
Christoph Oelckers
ed5a94d187
- fixed GetOps() call and added info for vectors.
2016-10-28 13:30:19 +02:00
Christoph Oelckers
f511a9398e
- changed GetStore/LoadMoveOp and GetRegType to be based on a set of member variables instead of using virtual functions to return such trivial values. This not only creates significantly better code but also allows overriding these settings without having to create a new class just for changing them (as is needed for vectors.)
2016-10-28 10:44:01 +02:00
Christoph Oelckers
3b1f411dce
- added a full set of 2D vector instructions to the VM. The existing one was 3D only but there's also need to handle two-dimensional vectors.
...
- added the missing divv* instructions.
2016-10-28 10:13:07 +02:00
Christoph Oelckers
35cd48b86b
- fixed grammar rule for two-dimensional vectors.
2016-10-28 09:47:22 +02:00
Magnus Norddahl
54c94f6e58
Fix pinkie having the blues
2016-10-28 02:41:14 +02:00
Magnus Norddahl
767c3a2edd
Fix dancing sprites due to texture coordinate calculations not taking pixel centers into account
2016-10-28 01:55:59 +02:00
Christoph Oelckers
3fa315aaea
- replaced 'vector<2>' and 'vector<3>' with 'vector2' and 'vector3'.
...
- added initializer syntax for vectors. A vector can be set with vectorvar = (x,y,z); for a 3-dimensional vector and vectorvar = (x, y); for a 2-dimensional one.
2016-10-28 01:14:21 +02:00
Christoph Oelckers
286f9510d4
- got rid of all default parameter redundancies.
...
- scriptified a few more functions.
2016-10-28 00:32:52 +02:00
Christoph Oelckers
03efb63e93
- fixed bad register use in postincrement operator.
2016-10-27 19:14:16 +02:00