Commit graph

11044 commits

Author SHA1 Message Date
Magnus Norddahl
cc3ac9ea05 Line portal rendering 2016-11-25 23:44:55 +01:00
Magnus Norddahl
eaa15f2b74 Render other sector portal types 2016-11-25 20:19:35 +01:00
Christoph Oelckers
6e1c6c4b33 - scriptified ArtiTeleport.
- shortened ArtiEgg and ArtiPork's use state to a single function.
2016-11-25 19:52:35 +01:00
Christoph Oelckers
0d6f37835f - completed Heretic scriptification with the two remaining artifacts. 2016-11-25 18:41:00 +01:00
Magnus Norddahl
864358389e Implement portal recursion limit 2016-11-25 18:15:48 +01:00
Christoph Oelckers
4f370ba181 - scriptified the Phoenix Rod, completing the Heretic weapons. 2016-11-25 18:13:08 +01:00
Magnus Norddahl
93af906a1d Add support for multiple portals 2016-11-25 17:14:26 +01:00
Christoph Oelckers
53ff7f0c73 - fixed: Do not allow empty function arguments pass. For unknown reasons the grammar accepts them as valid, so this needs to be checked when resolving them. 2016-11-25 16:35:07 +01:00
Christoph Oelckers
8dba322775 - scriptified Heretic's Skull Rod.
- Took the opportunity and fixed the logic for the Skull Rod's rain spawner. The old code which was part of the 3D floor submission was unable to work with portals at all. The new approach no longer tries to hide the dead projectile in the ceiling, it leaves it where it is and changes a few flags, so that its z-position can be used as reference to get the actual ceiling. This works for line portals, but for sector portals still requires some changes to sector_t::NextHighestCeilingAt to work, but at least this can be made to work unlike the old code.
- added names for the player-related translations to A_SetTranslation.
- fixed: Failure to resolve a function argument was checked for, too late.
- made the parameter for A_SetTranslation a name instead of a string, because it is more efficient. We do not need full strings here.
2016-11-25 16:05:03 +01:00
Christoph Oelckers
c2f7ed7f1c - fixed: BuiltinNameToClass should treat NAME_None as 'nothing'.
It's names that get here, after all, so the name for 'nothing' should actually mean 'nothing' here.
2016-11-25 12:45:17 +01:00
Christoph Oelckers
82e5e2daa9 - fixed a variable mixup in Dehacked weapon initialization.
This ultimately failed to set the weapon's AmmoUse field and made the weapon fail to detect it's out of ammo.
2016-11-25 12:31:13 +01:00
Christoph Oelckers
b5f55cacba - removed test code. 2016-11-25 09:56:06 +01:00
Magnus Norddahl
3de7f1a387 Merge branch 'master' of https://github.com/raa-eruanna/qzdoom into qzdoom 2016-11-25 07:45:02 +01:00
Magnus Norddahl
b2ad26d2d5 Sealing off portal entrances for the transparency pass 2016-11-25 07:44:51 +01:00
Rachael Alexanderson
509108f8b6 Merge branch 'master' of https://github.com/coelckers/gzdoom 2016-11-24 23:46:33 -05:00
Magnus Norddahl
e642ed099a Fix palette blending 2016-11-25 03:26:15 +01:00
Christoph Oelckers
11ac0c622b - fixed: The BFG needs to get its default ammo usage from the DehInfo struct.
- fixed: State's fields need to be declared native.
2016-11-25 01:33:04 +01:00
Magnus Norddahl
1def7b3eae More portal handling stuff 2016-11-25 01:08:25 +01:00
Edoardo Prezioso
c25774e311 - Fixed the Super Shotgun refire mismatch. 2016-11-25 00:42:09 +01:00
Christoph Oelckers
66d28a24b8 - disabled the scripted virtual function module after finding out that it only works if each single class that may serve as a parent for scripting is explicitly declared.
Needless to say, this is simply too volatile and would require constant active maintenance, not to mention a huge amount of work up front to get going.
It also hid a nasty problem with the Destroy method. Due to the way the garbage collector works, Destroy cannot be exposed to scripts as-is. It may be called from scripts but it may not be overridden from scripts because the garbage collector can call this function after all data needed for calling a scripted override has already been destroyed because if that data is also being collected there is no guarantee that proper order of destruction is observed. So for now Destroy is just a normal native method to scripted classes
2016-11-25 00:25:26 +01:00
Magnus Norddahl
558a4bcdca Partial sky portal support 2016-11-24 23:08:36 +01:00
Christoph Oelckers
9ae272d753 - scriptified Heretic's blaster.
- scriptified all Effect functions of Fastprojectile's children
- implemented access to class meta data.
- added a VM instruction to retrieve the class metadata, to eliminate the overhead of the function call that would otherwise be needed.
- made GetClass() a builtin so that it can use the new instruction

Important note about this commit: Scriptifying CFlameMissile::Effect revealed a problem with the virtual function interface: In order to work, this needs to be explicitly enabled for each single native class that may be used as a base for a scripted class. Needless to say, this will end up way too much work, as there are over 100 native classes, excluding those which will be scriptified. But in order to fix the problem this partially broken state needs to be committed first.
2016-11-24 20:02:44 +01:00
Christoph Oelckers
3f5bf88d69 - scriptified Heretic's mace.
- fixed: FxAssignSelf did not the correct number of registers for vector operations.
- fixed a few asserts in vector2 instructions.
- turned the virtual AActor::HitFloor method into a flag MF7_SMASHABLE. The only use of this function was to kill Hexen's pottery when they hit the floor, and this looks like something that can be exposed to modders less clumsily.
2016-11-24 13:45:43 +01:00
Edoardo Prezioso
3a059cbfd6 - Backported A_FireRailgun 'puffType' param from Zandronum.
Zandronum added this so that it could restore the original Skulltag piercing armor capability with a specific puff, like it's done with the other zdoom railgun action functions.
2016-11-24 11:31:40 +01:00
Christoph Oelckers
677d7579d4 - scriptified Heretic's crossbow and gauntlets. 2016-11-24 11:29:51 +01:00
Christoph Oelckers
2ece9b6172 - scriptified Heretic's staff and wand. 2016-11-24 10:39:16 +01:00
Christoph Oelckers
49605bc109 Merge branch 'master' of https://github.com/coelckers/gzdoom 2016-11-24 09:59:48 +01:00
Magnus Norddahl
4eb32a50e3 Add vid_vsync support to Linux target 2016-11-24 09:59:40 +01:00
Christoph Oelckers
aa4b3bb230 Merge branch 'master' of https://github.com/rheit/zdoom 2016-11-24 09:58:29 +01:00
Edoardo Prezioso
ae382f4005 - Fixed the spline/cubic crashes for FMOD 4.24 64-bit, too. 2016-11-24 09:26:39 +01:00
Edoardo Prezioso
68dc3c4f2d - Preventive fix for future include conflicts.
basicinlines.h is only included in m_fixed.h, while basictypes.h is included only in headers, so it's better to respect this convention. OSX compiles fine also without m_fixed.h, even better.
2016-11-24 09:09:09 +01:00
Magnus Norddahl
cff72fb072 Add stencil value to decal, particle, plane, port, sky, sprite, wall and wallsprite classes 2016-11-24 08:23:50 +01:00
Magnus Norddahl
7b4df20c51 Merge branch 'linux_vsync' into qzdoom 2016-11-24 07:41:58 +01:00
Magnus Norddahl
33958ca5b2 Add vid_vsync support to Linux target 2016-11-24 07:37:15 +01:00
Rachael Alexanderson
2de7f67b7f Merge branch 'master' of https://github.com/rheit/zdoom 2016-11-24 01:31:18 -05:00
Braden Obrzut
dc11b63157 - Fixed building with vanilla MinGW, at least with whatever modified header files that my system has from my last experimentation. 2016-11-24 00:47:53 -05:00
Magnus Norddahl
47aaf781c6 Split RenderPolyScene into two to allow rendering from multiple viewpoints 2016-11-24 05:51:37 +01:00
Magnus Norddahl
2316658dfc Fix kdizd blinking issue because the vertex buffer was too small 2016-11-24 02:11:35 +01:00
Christoph Oelckers
3e890d182b - scriptified D'Sparil.
- added retrieval of defaults from an actor pointer.
2016-11-24 01:23:35 +01:00
Magnus Norddahl
0361e912cb Minor bug fix 2016-11-24 01:01:02 +01:00
Edoardo Prezioso
cd919e72e1 - Don't null-check the ZCC_TreeNode 'this' pointer.
Compilers are allowed to simplify the 'this == nullptr' code block because it makes no sense in 'well-defined C++ code'.
2016-11-23 23:30:54 +01:00
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