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
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
Christoph Oelckers
4cc7d95ba5
- fixed: A_ZoomFactor and A_SetCrosshair need to be declared 'action'.
2016-11-15 16:05:42 +01:00
Leonard2
7dbc4710f1
Add the new argument to all uses of the implement macro
2016-11-09 17:45:55 +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
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
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
286f9510d4
- got rid of all default parameter redundancies.
...
- scriptified a few more functions.
2016-10-28 00:32:52 +02:00
Christoph Oelckers
371712c53a
- turned everything I could into non-action functions.
...
- fixed emission of the self pointer in FxVMFunctionCall. I did not realize that the self expression only sets up a register for the value, not pushing it onto the stack.
2016-10-22 17:49:08 +02:00
Christoph Oelckers
59ed26c0b6
- resorted some of thingdef.cpp's contents into more appropriate files.
...
- split FinishActor into several functions. While DECORATE can, ZSCRIPT cannot do all this in one go.
- split the state finalization into several class-specific virtual functions.
2016-10-12 20:42:41 +02:00
Christoph Oelckers
b1a83bfd26
- started with cleanup and separation of DECORATE code.
...
* everything related to scripting is now placed in a subdirectory 'scripting', which itself is separated into DECORATE, ZSCRIPT, the VM and code generation.
* a few items have been moved to different headers so that the DECORATE parser definitions can mostly be kept local. The only exception at the moment is the flags interface on which 3 source files depend.
2016-10-12 19:22:33 +02:00
Christoph Oelckers
f0e8e860f1
Merge branch 'master' into json
2016-09-22 09:09:48 +02:00
raa-eruanna
76c5ff29fe
If Inventory.MaxAmount > 1 on weapons, allow and track multiple pickups.
2016-09-22 08:47:23 +02:00
Christoph Oelckers
f93e4813d1
- removed farchive.cpp and .h
2016-09-22 00:48:22 +02:00
Christoph Oelckers
7edf4c1afc
- added new serializers to several classes and moved the old ones to the dump file.
2016-09-19 12:53:42 +02:00
Christoph Oelckers
d24aa5dec9
- reformatting for easier search.
2016-09-19 10:47:59 +02:00
Christoph Oelckers
c150116f79
- fixed: When changing weapons due to starting or ending a Tome of Power effect, the PSprite's caller needs to be changed.
...
In this case the PSprite animation won't be changed, only the ReadyWeapon. But in order to work, the PSprite's caller needs to change as well so that the next weapon check does not fail.
2016-07-16 19:55:00 +02:00
Leonard2
360ad7a844
Replaced every remaining instances of the old layer names
2016-05-28 01:19:42 +02:00
Leonard2
1966b61b8f
Generalized the psprites implementation
2016-05-20 17:04:44 +02:00
Christoph Oelckers
db86385cf6
- removed STACK_ARGS.
...
The only reason this even existed was that ZDoom's original VC projects used __fastcall. The CMake generated project do not, they stick to __cdecl.
Since no performance gain can be seen by using __fastcall the best course of action is to just remove all traces of it from the source and forget that it ever existed.
2016-04-11 10:46:30 +02:00
Christoph Oelckers
3ee42f6aa6
- removed all savegame compatibility handling, since the data is just too different from what it was before to try to convert it.
2016-04-03 20:55:23 +02:00
Christoph Oelckers
4a79602325
- floatification of g_shared.
...
- rewrote FraggleScript's movecamera function because it was utterly incomprehensible.
2016-03-24 01:46:11 +01:00
Christoph Oelckers
6557f3b8c8
- floatified quake and weapon code
2016-03-23 20:45:48 +01:00
Christoph Oelckers
f1602882c8
- added a no-parameter Spawn function for inventory items that never show on the map, because the coordinate and replacement parameters will always be 0 for them.
...
- started converting g_hexen.
Most importantly this removes CHolyWeave as it is just a specialized version of A_Weave with far more convoluted use of parameters.
2016-03-21 14:00:05 +01:00
Christoph Oelckers
b9c72e372b
- fixed bad loop handling in FWeaponSlots::SetFromGameInfo().
2016-03-04 16:25:23 +01:00
Randy Heit
55142078d8
Normalize line endings
2016-03-01 09:47:10 -06:00
Christoph Oelckers
6ce0c9f78e
- split up PClass::Derive and its child functions because part of them is also needed when initializing an inherited native class with the properties of its parent - but calling the base version in PClass is not possible.
...
- moved a few AActor properties out of the EXE so that I could easily test if it works.
2016-02-10 00:17:00 +01:00
Christoph Oelckers
b484cbf18a
- fixed: It is not guaranteed that the class object that is created by FindClassTentative actually matches the real object that is required later, so it needs to be replaced wherever it could be referenced once the real object is created.
...
- removed some unneeded code from earlier attempts to fix the class type resolving issue.
2016-02-09 23:08:51 +01:00
Christoph Oelckers
cfcd2668cc
Merge commit '772a5724313f2ad0bd6828fcc28545a9ee5e6068' into scripting
...
Conflicts:
src/p_pspr.cpp
src/thingdef/thingdef_codeptr.cpp
2016-01-17 20:00:45 +01:00
Randy Heit
1d759283c0
Cleanup the zoom/reload/userX handling for A_WeaponReady
...
- There was lots of code duplication. Consolidated it.
- Renamed WRF_UserX to WRF_AllowUserX for consistancy.
2015-12-31 16:46:19 -06:00
MajorCooke
eed6680a67
Added support for weapon states User#.
...
- Added keybinds for the user state triggering.
- Added WRF_USER# flags which must be specified in order to use.
- # can be 1-4.
2015-12-31 16:46:16 -06:00
Randy Heit
2d87eb0ba2
Merge branch 'master' into gonesolong
...
Conflicts:
src/CMakeLists.txt
src/actor.h
src/g_heretic/a_hereticmisc.cpp
src/g_heretic/a_hereticweaps.cpp
src/g_heretic/a_ironlich.cpp
src/info.h
src/namedef.h
src/p_buildmap.cpp
src/p_enemy.cpp
src/p_map.cpp
src/p_mobj.cpp
src/thingdef/thingdef_codeptr.cpp
zdoom.vcproj
2014-12-20 19:13:14 -06:00
Edward Richardson
3817bed0b3
Weap scroll could sometimes miss sameslot weapons
...
In rear cases, when using next/prevweap, defined weapons in the same
slot couldn't cycle when looping to another when you only had weapons in
1 slot.
2014-06-01 18:13:47 +12:00
Randy Heit
459ad5abff
- Updated scripting branch to latest version in trunk.
...
SVN r4337 (scripting)
2013-06-07 03:31:30 +00:00
Randy Heit
2668988870
- Switched to a genericly extensible representation for userinfo.
...
- Fixed: The playerinfo CCMD did not range check the player number.
SVN r4253 (trunk)
2013-05-12 18:27:03 +00:00
Randy Heit
a5b5172449
- Remove now-unused dropammofactor variable from AWeaponGiver::TryPickup().
...
SVN r4248 (trunk)
2013-05-04 19:24:24 +00:00
Randy Heit
d86b16d540
- Added a DropAmmoFactor field to WeaponGiver so that ModifyDropAmount() can record the drop
...
amount modifier into it without fiddling with the actual AmmoGiveX fields.
SVN r4246 (trunk)
2013-05-02 00:24:53 +00:00
Randy Heit
ecdde24bda
- Fixed: WeaponGiver did not give half ammo when dropped.
...
SVN r4238 (trunk)
2013-04-30 03:07:39 +00:00
Randy Heit
324b13c89b
- Added Weapon.MinSelectionAmmo1 and Weapon.MinSelectionAmmo2 to exclude weapons from autoselection
...
even if they have enough ammo to be used.
SVN r4203 (trunk)
2013-03-24 02:25:12 +00:00
Randy Heit
e7efa1d802
- Update to latest version in trunk.
...
SVN r3890 (scripting)
2012-10-17 04:24:54 +00:00
Randy Heit
f3b40a9f36
- Fixed: WeaponGiver needs to set the MF_DROPPED flag of the spawned weapon to match its own (so
...
that it can't be used as an infinite source of ammo when sv_weaponstay is true).
- Fixed: WeaponGiver should not remember the given weapon after it is picked up (to avoid giving
a weapon owned by one player to a different player when sv_weaponstay is true).
SVN r3886 (trunk)
2012-10-11 04:38:52 +00:00
Randy Heit
39ff34645f
- Precache PickupSound, UpSound, and ReadySound.
...
SVN r3842 (trunk)
2012-08-22 23:51:23 +00:00
Randy Heit
562cf04db2
- Update scripting branch to trunk.
...
SVN r3758 (scripting)
2012-07-14 03:04:41 +00:00
Christoph Oelckers
4f255a2652
- fixed: Weapons that were dehacked to use no ammo did not work anymore.
...
SVN r3622 (trunk)
2012-05-05 14:23:00 +00:00
Christoph Oelckers
cbcc7443c6
- added Xaser's bobbing style options submission.
...
SVN r3615 (trunk)
2012-05-02 20:58:29 +00:00
Christoph Oelckers
81b4f782f7
- fixed: powered up weapons must not be added to the weapon slots.
...
SVN r3612 (trunk)
2012-05-01 10:30:08 +00:00
Randy Heit
1656744827
- Fixed: When PlayerIsGone() destroys a morphed player, it needs to destroy the unmorphed player too.
...
- Fixed: Destroying a morphed player would try to unmorph the player twice.
SVN r3611 (trunk)
2012-05-01 03:43:14 +00:00
Christoph Oelckers
235a09d92a
- Added Xaser's weapon patch to check +reload and +zoom in A_WeaponReady.
...
SVN r3530 (trunk)
2012-04-07 13:07:25 +00:00
Christoph Oelckers
b044c134d3
- fixed ammo usage issues with Dehacked modified weapons that switch attack code pointers. Unless Dehacked specifies an 'ammo use' value for a weapon any Dehacked modified weapon determines ammo use by attack function, like Doom did originally, and not by the weapon's AmmoUse property. This also addresses that the Cells/BFG shot value always modified the BFG itself.
...
- fixed: A_Saw depleted ammo after the attack so it still went through with it, even though it was out of ammo.
SVN r3522 (trunk)
2012-04-07 11:33:35 +00:00