Commit graph

137 commits

Author SHA1 Message Date
Major Cooke
a3d2b159c9 Added Inventory UNCLEARABLE flag.
- Allows prevention of ClearInventory without stopping it from being dropped.
2019-04-27 13:34:30 +02:00
Christoph Oelckers
309407ed61 - use map time, not hub time for map actions. 2019-04-27 13:18:08 +02:00
Christoph Oelckers
5f6b6d8b8a - fixed armor bonus giving in A_CustomPunch 2019-04-27 12:37:53 +02:00
alexey.lysiuk
23a84994f5 - fixed disappearing inventory after morphing pickup
When player is picked up item that does morph, the corresponding toucher actor is changed in process
Previously, morhing item was removed from original actor leaving player's inventory in inconsistent state

https://forum.zdoom.org/viewtopic.php?t=63124
2019-04-26 18:15:00 +02:00
Player701
3d1e810e72 - Since GetParentAmmo is now virtual, BackpackItem and the "give ammo" cheat should call GetParentAmmo to determine base ammo classes. 2019-04-25 13:10:41 +02:00
alexey.lysiuk
32f0bbfe03 - fixed ammo check for weapon with 'uses both' flags
https://forum.zdoom.org/viewtopic.php?t=63047
2019-04-25 12:52:20 +02:00
alexey.lysiuk
8e230eebaf - fixed missing attack sound in A_CustomPunch
See 7bb3855439/src/p_actionfunctions.cpp (L1729)

https://forum.zdoom.org/viewtopic.php?t=63049
2019-04-25 12:51:49 +02:00
Christoph Oelckers
cc34946e80 - missed this. 2019-04-18 17:46:17 +02:00
Christoph Oelckers
0dcbc02cd7 - renamed back arguments of A_FireProjectile. 2019-04-18 17:46:14 +02:00
Christoph Oelckers
999894af25 - cleaned up use of the random function in script files.
Many uses of random() & value have been turned into random(0, value).
This is not only more efficient, it also ensures better random distribution because the parameter-less variant only returns values between 0 and 255.
2019-04-18 17:01:14 +02:00
Christoph Oelckers
3291cecad9 - fixed: For an initial weapon pickup, sv_unlimited_pickup wasn't checked for the included ammo. 2019-04-18 16:23:04 +02:00
Christoph Oelckers
f7fe19ee51 - made Ammo.GetParentAmmo virtual 2019-04-18 14:34:28 +02:00
Christoph Oelckers
4d7e945dc1 - fixed: A powered up weapon which shares its ready state with the parent but is currently in a firing sequence may not force-switch the weapon, because that will cause the sequence to run in the wrong weapon's context. 2019-04-18 14:22:02 +02:00
Christoph Oelckers
77e60865a0 - fixed: SlotPriority must be a float.
It was a fixed before but I missed that when refactoring it into an automatic property.
2019-04-17 15:11:12 +02:00
Christoph Oelckers
c87724ef0a Removed all native components from AInventory. 2019-04-16 23:57:22 +02:00
Christoph Oelckers
b8e1218645 Removed all remaining references to AInventory
What remains is the class definition and one single reference that will be scriptified.
2019-04-16 23:57:12 +02:00
Christoph Oelckers
36af613dfa - The 'A' prefix has no meaning in class names on the script side - even in comments. 2019-04-16 22:01:06 +02:00
Marisa Kirisame
739999b5ed Fix RemoveInventory not calling DetachFromOwner when an item is the first in the owner's inventory.
Fix CheckAddToSlots not working because it uses GetReplacement incorrectly.
2019-04-16 21:52:50 +02:00
Christoph Oelckers
9f2b62c99c - scriptified AInventory::Tick.
This was the last bit of code standing in the way of making AInventory a fully scripted class.
All that's left to sort out is some variable accesses - the vast majority of them in SBARINFO.
2019-04-16 21:28:37 +02:00
Christoph Oelckers
80e3ce735b - scriptified the decision making of the invuseall CCMD.
Custom items had no way to adjust to this - and it also was the last native access to ItemFlags.
2019-04-16 21:28:32 +02:00
Christoph Oelckers
17862639a1 - scriptified the no-spawn flag check for armor and health items. 2019-04-16 21:28:29 +02:00
Christoph Oelckers
437c72a089 - AltHUD ammo drawer scriptified. 2019-04-16 19:01:46 +02:00
Major Cooke
7ff76366ef Fixed A_JumpIfNoAmmo not working. 2019-04-16 18:46:06 +02:00
Christoph Oelckers
1b55e708bc - fixed the AngleToVector calls in stateprovider.txt.
This looks like a search & replace gone wrong.
2019-04-16 18:46:04 +02:00
Christoph Oelckers
081d0bbcca - moved ValidateInvFirst to the script side because this was one of the major functions that directly reference AInventory. 2019-04-16 18:45:52 +02:00
Christoph Oelckers
d021d63d33 - moved AInventory::DoRespawn fully to the script side. 2019-04-16 18:45:49 +02:00
Christoph Oelckers
9981674a27 - re-fixed the massacre fix for Dehacked-modified inventory items.
Instead of overriding the Massacre method it is preferable to clear the flags causing the bad behavior, most notably ISMONSTER.

# Conflicts:
#	src/g_inventory/a_pickups.cpp
#	src/g_inventory/a_pickups.h
2019-04-16 18:45:43 +02:00
Christoph Oelckers
d2741813ab - scriptified RemoveInventory and Inventory.OnDestroy. 2019-04-16 18:44:59 +02:00
Christoph Oelckers
8609e2ba68 - scriptified GiveInventory and made the interface a bit more configurable by mods.
Now a child type can decide for itself how to treat 'amount'.
The scripting interfaces to this function in ACS and FraggleScript have been consolidated and also scriptified.
2019-04-16 18:44:56 +02:00
Christoph Oelckers
4049b56d50 - a bit of code reordering for adding direct native entry points.
- offloaded key list generation for alternative HUD to non-UI parts.

This change also revealed a problem with handling empty sprites in the key list so this got fixed, too.

# Conflicts:
#	src/g_shared/shared_hud.cpp
2019-04-16 18:17:05 +02:00
Christoph Oelckers
20ec6ddce4 - removed AStateProvider from native code.
The only place still referencing it was CallStateChain, so this has been made a static function now instead of a class method.
2019-04-15 22:29:58 +02:00
Christoph Oelckers
376c47bef6 - fixed handling of dummy flags. 2019-04-15 22:29:55 +02:00
Christoph Oelckers
96e9dbd967 - removed all remaining native components of the weapon class. 2019-04-15 22:29:52 +02:00
Christoph Oelckers
d871072f28 - allow defining flags in the script declaration of a class and do that for Weapon. 2019-04-15 22:29:47 +02:00
Christoph Oelckers
309cc57504 - removed all direct access to AWeapon's members to prepare moving this class fully to the script side.
Disregarding UI-side and setup-related calls there's unfortunately still 6 places in the native game code which require direct access.
2019-04-15 22:29:43 +02:00
Christoph Oelckers
7caa6a922d - moved MarkPrecacheSounds completely to the script side and added native support to make this a usable feature.
# Conflicts:
#	src/g_inventory/a_pickups.cpp
2019-04-15 22:29:35 +02:00
Christoph Oelckers
ac754b5e96 - some cleanup on the weapon slot interface.
This really shouldn't make any decisions from directly reading weapon class defaults.
2019-04-15 22:29:32 +02:00
Christoph Oelckers
59bffe2f55 - scriptified A_WeaponReady and its subfunctions. 2019-04-15 22:29:22 +02:00
Christoph Oelckers
0515af2bd3 - removed the bot related properties from AWeapon.
This stuff is now kept locally in the bot code so that it doesn't infest the rest of the engine.
And please don't read the new botsupp.txt file as some new means to configure bots! This was merely done to get this data out of the way.
The bots are still broken beyond repair and virtually unusable, even if proper data is provided for all weapons.
2019-04-15 22:29:15 +02:00
Christoph Oelckers
82ffdd5e6b - moved the weapon selection logic to PlayerPawn as overridable virtual functions. 2019-04-15 21:59:07 +02:00
Christoph Oelckers
7c1416cb6f - scriptified BecomeItem and BecomePickup
# Conflicts:
#	src/g_inventory/a_pickups.cpp
2019-04-15 21:59:01 +02:00
Christoph Oelckers
0eec8b293a - scriptified ModifyDropAmount as a virtual function hierarchy for Inventory and children. 2019-04-15 21:58:54 +02:00
Christoph Oelckers
c326c4c521 - exported a few more weapon handling functions so that the native GetDownState stub could be removed. 2019-04-15 21:58:45 +02:00
Christoph Oelckers
c1442fae0d - scriptified P_BringUpWeapon because this was the only native function still referencing AWeapon::GetReadyState. 2019-04-15 21:58:41 +02:00
Christoph Oelckers
1b225588d1 - scriptified 3 more functions in stateprovider. 2019-04-15 21:58:37 +02:00
Christoph Oelckers
05e8a6c62d - scriptified A_RailAttack. 2019-04-15 21:58:35 +02:00
Christoph Oelckers
394d8e414f - scriptified A_CustomPunch 2019-04-15 21:58:33 +02:00
Christoph Oelckers
54ba5b4829 - scriptified A_FireProjectile 2019-04-15 21:58:31 +02:00
Christoph Oelckers
d99b46c861 - scriptified A_FireBullets and A_CustomBulletAttack. 2019-04-15 21:58:30 +02:00
Christoph Oelckers
1b6af10f38 - scriptified Weapon.CheckAmmo and Weapon.DepleteAmmo 2019-04-15 21:56:30 +02:00