Commit graph

1482 commits

Author SHA1 Message Date
alexey.lysiuk
8aa47e664e - 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-01-23 21:40:44 +01:00
Christoph Oelckers
5e4ef04a4d - allow assignment of line IDs through LevelCompatbility. 2019-01-23 21:40:19 +01:00
alexey.lysiuk
c6ee8e084c - fixed condition to produce blood splatter during line attack
https://forum.zdoom.org/viewtopic.php?t=63186
2019-01-23 21:23:35 +01:00
Marrub
af06d7cb9e Make LevelLocals::ExecuteSpecial return int
# Conflicts:
#	wadsrc/static/zscript/base.txt
2019-01-23 21:15:33 +01:00
Christoph Oelckers
4126f8ce72 - made OP_NEW a builtin function instead of an opcode.
The code was present 3 times due to the JIt, and this is not something that benefits from being a real opcode, even in the interpreted case.
2019-01-23 21:12:23 +01:00
Christoph Oelckers
a1ae01e392 - fixed last PR.
The result of GetPointer must be null checked as well!
2019-01-23 20:43:23 +01:00
Cacodemon345
70a07e154c Move receiver NULL check above the orresult check (#695)
This is to prevent a VM abort from happening here if orresult is false.
2019-01-23 20:42:41 +01:00
Christoph Oelckers
c651045ed3 - let RunHealth clamping respect the newly added global properties. 2019-01-05 15:37:14 +01:00
Christoph Oelckers
dab68184f5 - moved the global spot state into FLevelLocals.
This way it doesn't even have to be a thinker.
2019-01-05 10:04:27 +01:00
Christoph Oelckers
d898cadda5 - fixed: Trying to remove the first item in an actor's inventory would lose all owned items. 2019-01-04 18:56:14 +01:00
Christoph Oelckers
f9ff097457 - fixed A_Chase default detection. 2019-01-03 23:43:15 +01:00
Christoph Oelckers
9521b6cd1f - removed all remaining native parts of APlayerPawn.
Unlike the other classes, the places where variables from this class were accessed were quite scattered so there isn't much scriptified code. Instead, most of these places are now using the script variable access methods.
This was the last remaining subclass of AActor, meaning that class Actor can now be opened for user-side extensions.
2019-01-03 22:05:49 +01:00
Christoph Oelckers
c18e895272 - exported all native components of APlayerPawn.
Only the class definition itself remains and needs to be taken care of.
2019-01-03 18:01:58 +01:00
Christoph Oelckers
3314a1efe5 - scriptified the remaining PlayerPawn methods. 2019-01-03 14:35:17 +01:00
Christoph Oelckers
2258a71c36 - took several methods out of the native PlayerPawn implementation, either by scriptification or moving them to other places. 2019-01-03 13:59:46 +01:00
Christoph Oelckers
23146f1af2 - scriptified PlayerPawn.ResetAirSupply. 2019-01-03 13:04:48 +01:00
Christoph Oelckers
badacbb968 - scriptified APlayerPawn's DamageFade handling. 2019-01-03 12:47:34 +01:00
Christoph Oelckers
2bd72478ee - scriptified P_CalcHeight.
This was the only code using the ViewBob member variable.
This also moves the range check for this variable to its application, because a badly behaved mod can just as easily change it at run time instead of just setting an absurdly large value in the class definition.
2019-01-03 11:57:20 +01:00
Christoph Oelckers
9e5c5b68c5 - did some more lightening on the PlayerPawn class. 4 more properties and one native member function have been handled. 2019-01-03 10:06:45 +01:00
Christoph Oelckers
c753d59a72 - scriptified A_SkullPop and ObtainInventory.
These were the last relevant items to access PlayerPawn.InvFirst.
2019-01-03 00:35:56 +01:00
Christoph Oelckers
6eb8ded471 - made ColorRangeStart and ColorRangeEnd meta properties of APlayerPawn.
These are only used during initialization and they should have been readonly from the start.
2019-01-02 22:13:57 +01:00
Christoph Oelckers
bc47fdfa78 - scriptified useflechette CCMD's item finding code. 2019-01-02 11:58:26 +01:00
Marrub
3e3d21cd35 Fix A_CustomBulletAttack's spawnofs_xy parameter
The current behaviour offsets to the front of the actor rather than the side, due to an oversight in the code, which oddly is not present in the A_FireBullets equivalent.
2019-01-02 08:13:53 +01:00
Christoph Oelckers
dc612703d5 - scriptified the declaration of AmbientSound
Most of the code is still native, but this means that PlayerPawn is the last remaining child of AActor.
2019-01-02 01:05:20 +01:00
Player701
68091db598 - Since GetParentAmmo is now virtual, BackpackItem and the "give ammo" cheat should call GetParentAmmo to determine base ammo classes. 2019-01-01 22:00:35 +01:00
Christoph Oelckers
d654e02dea - rewrote dynamic lights to not use actors for the internal representation and made DynamicLight a purely scripted class.
This should be less of a drag on the playsim than having each light a separate actor. A quick check with ZDCMP2 showed that the light processing time was reduced to 1/3rd from 0.5 ms to 0.17 ms per tic.
It's also one native actor class less.
2019-01-01 19:35:55 +01:00
alexey.lysiuk
99479d84b1 - fixed everlasting fast projectile after hitting ceiling
Without the test for ceiling hit fast projectile could enter its Death state every tick infinitely

https://forum.zdoom.org/viewtopic.php?t=63023
2019-01-01 08:14:28 +01:00
Christoph Oelckers
0b2a919bbe - fixed crash in AutoUseStrifeHealth
The loop never checked if the item was still valid and would continue to try to use it, even after it was removed from the inventory and destroyed.
As native code this just failed silently, but with the VM it needs to be explicitly checked.
2018-12-31 19:03:02 +01:00
Major Cooke
8d9d71f55f - Fixed: SXF_CLEARCALLERSPECIAL cleared the spawned actor's special instead of the caller. 2018-12-30 19:01:31 +01:00
alexey.lysiuk
36896a1224 - fixed ammo check for weapon with 'uses both' flags
https://forum.zdoom.org/viewtopic.php?t=63047
2018-12-29 13:36:10 +02:00
alexey.lysiuk
8e684f9687 - fixed missing attack sound in A_CustomPunch
See 7bb3855439/src/p_actionfunctions.cpp (L1729)

https://forum.zdoom.org/viewtopic.php?t=63049
2018-12-29 12:34:38 +02:00
Christoph Oelckers
dd3dba2ef1 - made PlayerPawn.TweakSpeeds virtual. 2018-12-29 08:43:36 +01:00
Christoph Oelckers
3559f7dffb Merge branch 'master' of https://github.com/coelckers/gzdoom 2018-12-28 23:14:22 +01:00
Christoph Oelckers
5f303859e9 - made some changes to how the compatibility code works to allow removing the last remaining global variables of the map loading code.
Everything temporary is now part of the MapLoader class.
2018-12-28 23:14:11 +01:00
Erick Tenorio
0a6ec054d2 - TNT.WAD fixes 2018-12-27 20:52:08 +01:00
Erick Tenorio
9ee0271320 - Have Plutonia MAP16 pit kill player 2018-12-27 18:59:29 +01:00
Kevin Caccamo
e04fc026ff Expand UDMF and ZScript API for side's own additive colors
Add 'useowncoloradd_{top,mid,bottom}' sidedef properties to the UDMF 
spec
Only use side's additive colors if 'useowncoloradd_(top|mid|bottom)' is 
set.
Rename UseOwnColors flag to UseOwnSpecialColors
Add UseOwnAdditiveColor flag to side_t::part
Add EnableAdditiveColor to side_t
Add Side.EnableAdditiveColor to ZScript API
2018-12-26 16:58:27 +01:00
Kevin Caccamo
286886e161 Minor fixes for additive colour ZScript API
Sector.SetAdditiveColor actually called Sector.SetSpecialColor
Add use boolean property, used to determine whether or not to override the sector's additive wall colour with the side's additive colour.
2018-12-26 16:58:27 +01:00
Kevin Caccamo
0773e6a98e Rework implementation as per the new specification
The new specification is more flexible, and allows assigning additive 
colors to individual parts of a sector (walls, sprites, flats) and even 
individual parts of a side (top, middle, bottom)

Add AdditiveColors arrays to sector_t and side_t::part
Initialize AdditiveColors arrays to 0
Export AdditiveColors to ZScript
Save AdditiveColors in saved game files
Use colors from AdditiveColors arrays when setting the additive color 
for the render state
Add code to parse the new UDMF additive color properties
Remove additive color slot from sector color/part enum
Add SetAdditiveColor to sector_t and side_t
Add GetAdditiveColor to side_t
Export new methods and additive color arrays to ZScript
2018-12-26 16:58:27 +01:00
Kevin Caccamo
758cd77e55 Rename ColorAdd to AddColor, and use it ingame
Rename ColorAdd to AddColor
Add AddColor to FRenderState
Tweak SpecialColors array in ZScript to include the additive color
Add uAddColor to the shader compiler
Add uAddColor to the texel
2018-12-26 16:58:27 +01:00
Major Cooke
6372cdaa41 Split off pain chance triggering from ReactToDamage into its own function and gave ZScript access to it.
- TriggerPainChance(Name mod, bool forcedPain)
- One exception: PainThrehold is only checked in ReactToDamage, since this function does not require checking damage amount.
2018-12-26 11:55:42 +01:00
alexey.lysiuk
0584ecf65e - declared Actor's Morph() and UnMorph() functions virtual
They are expected to be virtual on C++ side
2018-12-25 16:27:33 +02:00
Christoph Oelckers
fcfccfe739 - fixed random number generation in SpawnFizzle.
This should now produce the same value range as Hexen's original code.
2018-12-23 12:40:26 +01:00
Christoph Oelckers
c1a86e9a4d - fixed bad attempt at restoring position in A_CustomBulletAttack. 2018-12-23 12:13:53 +01:00
Christoph Oelckers
9208fb9b77 - missed this. 2018-12-22 19:12:34 +01:00
Christoph Oelckers
36058df025 - gave the strifehumanoid's burn states dynamic lights.
Unlike everything else from the IWADs this had to use the 'light' keyword in ZScript because this is merely a base class for many others and the light definitions here need to be inheritable.
2018-12-22 16:11:18 +01:00
Christoph Oelckers
5e086ec384 - renamed back arguments of A_FireProjectile. 2018-12-22 16:11:18 +01:00
Christoph Oelckers
f6d9110c70 - removed the redundant GetOffsetPosition export and added direct native support to its existing variants 2018-12-21 13:52:30 +01:00
Christoph Oelckers
0770c0022c - 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.
2018-12-21 12:40:05 +01:00
Christoph Oelckers
1deedd5671 - fixed PlayerInfo.FindMostRecentWeapon
returning multiple values from a subfunction is currently not working so this has to add an indirection.
2018-12-21 12:40:05 +01:00
Christoph Oelckers
9fab5f3b2c - fixed: For an initial weapon pickup, sv_unlimited_pickup wasn't checked for the included ammo. 2018-12-21 08:59:37 +01:00
Cacodemon345
789941f24d Export P_GetOffsetPosition and ADynamicLight::SetOffset to ZScript 2018-12-20 22:54:45 +01:00
Player701
d049b3b3eb - Fixed the position of the soul sphere within one of the secret areas (sector 324) of Alien Vendetta MAP28. 2018-12-20 19:03:15 +01:00
Christoph Oelckers
3291d8e9ac - made Ammo.GetParentAmmo virtual 2018-12-19 18:18:15 +01:00
Chronos Ouroboros
bb8fcd63c4 Added a function for triggering use/push specials for usage in custom monster AI. 2018-12-18 21:09:13 +01:00
Chronos Ouroboros
e7118804ba Exported P_CheckFor3DFloorHit and P_CheckFor3DCeilingHit to ZScript. 2018-12-18 21:09:13 +01:00
Christoph Oelckers
462fe891bd - 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. 2018-12-18 20:38:25 +01:00
Christoph Oelckers
ab624c8c5a Merge branch 'master' into Texture_Cleanup
# Conflicts:
#	src/textures/hires/hqresize.cpp
2018-12-11 20:27:24 +01:00
Christoph Oelckers
f6aa16947a - re-added PlayerInfo.BringUpWeapon. 2018-12-11 00:35:53 +01:00
Rachael Alexanderson
28516c2def - split gl_texture_hqresize into two variables - one for mode, one for multiplier. 2018-12-10 14:25:29 -05:00
Christoph Oelckers
79a0f76801 - replaced TexMan.operator() with two functions.
This was done to make reviewing easier, again because it is virtually impossible to search for the operators in the code.

Going through this revealed quite a few places where texture animations were on but shouldn't and even more places that did not check PASLVERS, although they were preparing some paletted rendering.
2018-12-07 02:53:18 +01:00
Christoph Oelckers
32e245f2b9 - moved the software rendering specific parts of the sky setup to r_skyplane.cpp. 2018-12-06 20:52:03 +01:00
Christoph Oelckers
d500dc99ea - handle the Harmony status bar icon scaling a bit more robustly.
Considering that the physical texture size should be abstracted away from modding this needs to be done differently.
Doing any calculations with physical texture sizes on the mod side is only going to cause errors so this had been changed to always return scaled size.
2018-12-06 20:21:33 +01:00
Christoph Oelckers
494a113920 - more direct native entry points.
- disallow bool as a return value for direct native calls because it only sets the lowest 8 bits of the return register.
- changed return type for several functions from bool to int where the return type was the only thing blocking use as direct native call.
2018-12-05 20:10:44 +01:00
Christoph Oelckers
2e7e6cba9d - scriptified P_CheckMeleeRange2. 2018-12-05 18:58:15 +01:00
Christoph Oelckers
de5ab0b4b6 - deprecated a few functions that depend on AAPTR_* to be useful. 2018-12-05 18:33:59 +01:00
Christoph Oelckers
6c9d0b166a Added direct native entry points to a larger number of functions. 2018-12-05 17:34:11 +01:00
Christoph Oelckers
fd801ca91b - fixed: SlotPriority must be a float.
It was a fixed before but I missed that when refactoring it into an automatic property.
2018-12-05 08:13:52 +01:00
Christoph Oelckers
33db5792b4 - moved a large part of the VM thunks out of p_mobj.cpp. 2018-12-05 00:21:16 +01:00
Christoph Oelckers
45d7e5a038 - scriptified ASpecialSpot.
This only had two simple native methods so the class is not fully scripted.
2018-12-04 18:21:48 +01:00
Christoph Oelckers
5e4b366724 Removed all native components from AInventory. 2018-12-04 18:06:09 +01:00
Christoph Oelckers
d66516ec82 - scriptified A_SpawnSingleItem, which was the last piece of native code still referencing AInventory 2018-12-04 17:55:45 +01:00
Christoph Oelckers
44e43c48b5 - scriptified A_SelectWeapon 2018-12-04 17:31:25 +01:00
Christoph Oelckers
9348baeeb1 Removed all remaining references to AInventory
What remains is the class definition and one single reference that will be scriptified.
2018-12-04 17:11:36 +01:00
Christoph Oelckers
99a87f62b6 - The 'A' prefix has no meaning in class names on the script side - even in comments. 2018-12-04 00:23:52 +01:00
Christoph Oelckers
9e70701e50 - fixed max. ammo display on AltHud. 2018-12-03 23:34:23 +01:00
Christoph Oelckers
b6d0492478 - fixed crash with weapons which remove themselves from the inventory but continue calling action functions.
This is still an error, so now this throws a meaningful exception.
2018-12-03 18:51:24 +01:00
Christoph Oelckers
0e095b0c05 - removed all direct references of AInventory::Owner and AInventory::Amount from the C++ code. 2018-12-03 17:41:05 +01:00
Marisa Kirisame
d6d3dd038e 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.
2018-12-03 17:29:08 +01:00
Christoph Oelckers
d96d505520 - fixed accidentally misnamed parameter in A_Explode. 2018-12-02 21:39:28 +01:00
Christoph Oelckers
807df33e1a - 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.
2018-12-02 20:58:15 +01:00
Christoph Oelckers
2e383073e8 - scriptified the AutoUseHealth feature.
This again is a piece of code that reads and even writes to inventory items' properties, so better have it on the script side.
2018-12-02 19:45:45 +01:00
Christoph Oelckers
3182569fb8 - 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.
2018-12-02 18:43:38 +01:00
Christoph Oelckers
93f91d1039 - scriptified P_DropItem. 2018-12-02 18:31:18 +01:00
Christoph Oelckers
a5fc26b37c - scriptified the no-spawn flag check for armor and health items. 2018-12-02 18:04:44 +01:00
Christoph Oelckers
ee08412e49 - scriptified G_PlayerFinishLevel.
Outside of SBARINFO this was the biggest remaining piece of code that referenced AInventory internals.
2018-12-02 16:26:02 +01:00
Christoph Oelckers
1f33ba2c4d - fixed incomplete null checks in A_RadiusThrust. 2018-12-02 16:06:04 +01:00
Christoph Oelckers
719598aae4 - scriptified AActor::ClearInventory 2018-12-02 15:24:44 +01:00
Christoph Oelckers
d11b33e8fd - scriptified the last components of the alternative HUD.
- moved the ALTHUDCF parser PClass::StaticInit, so that it gets done right after creating the actor definitions.

All left to do is not to reallocate the AltHud object for each frame but store it in a better suited place.
2018-12-02 14:34:10 +01:00
Christoph Oelckers
ba905321b0 - scriptified the main drawer for the in-game HUD and removed all intermediate VM calls from the native source. 2018-12-02 14:34:09 +01:00
Christoph Oelckers
fe39236ee1 - scriptified the AltHUD'S powerup drawer. 2018-12-02 14:34:09 +01:00
Christoph Oelckers
ddaab4d2ab - scriptified and cleaned up the AltHUD's DrawCoordinates, DrawTime and DrawLatency functions.
Some backing functionality was moved elsewhere because scripting should not have access to low level system information.
2018-12-02 14:34:09 +01:00
Christoph Oelckers
4431ec06fd - scriptified the AltHUD's inventory drawer and fixed the InvPrev CCMD. 2018-12-02 14:34:09 +01:00
Christoph Oelckers
714ca9b2ce - scriptified the AltHUD's weapon drawer. 2018-12-02 14:34:08 +01:00
Christoph Oelckers
1406c11f8e - added the missing TNT1A0 check for icon-less keys.
Since it tries to get the icon from the spawn state it also has to check if that actually has a valid sprite.
2018-12-02 14:34:08 +01:00
Christoph Oelckers
fbc441673a - AltHUD ammo drawer scriptified. 2018-12-02 14:34:08 +01:00
Christoph Oelckers
4a1f011dc1 - Alt HUD scriptification, part 1. 2018-12-02 14:34:08 +01:00
Major Cooke
49f2a38799 Fixed A_JumpIfNoAmmo not working. 2018-12-02 07:28:20 +01:00
Christoph Oelckers
a291ed21fe - fixed the AngleToVector calls in stateprovider.txt.
This looks like a search & replace gone wrong.
2018-12-02 00:41:23 +01:00
Major Cooke
e9df56198c - Restored A_SpawnItemEx's "chance" to "failchance" to prevent mod breakage from named parameters. 2018-12-01 23:39:54 +01:00
Christoph Oelckers
577af8860c - scriptified invnext and invprev CCMDs. 2018-12-01 22:37:12 +01:00
Christoph Oelckers
5c647de70c - moved ValidateInvFirst to the script side because this was one of the major functions that directly reference AInventory. 2018-12-01 17:46:20 +01:00
Christoph Oelckers
bc1990b6d7 - moved AInventory::DoRespawn fully to the script side. 2018-12-01 17:29:37 +01:00
Christoph Oelckers
a14b0c58bf - 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
2018-12-01 17:20:52 +01:00
Christoph Oelckers
7301bbc58e - scriptified GiveAmmo and the one remaining piece of native code still using it. 2018-12-01 17:20:23 +01:00
Christoph Oelckers
2c59172c42 - scriptified DropInventory. 2018-12-01 17:18:26 +01:00
Christoph Oelckers
09129e0113 - scriptified UseInventory and several functions using the already scriptified ones, 2018-12-01 17:17:08 +01:00
Christoph Oelckers
588ddd185b - scriptified TakeInventory, including the ACS/FS interfaces. 2018-12-01 17:11:09 +01:00
Christoph Oelckers
023efc7685 - scriptified RemoveInventory and Inventory.OnDestroy. 2018-12-01 17:09:23 +01:00
Christoph Oelckers
eb47fb9adc - 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.
2018-12-01 17:07:09 +01:00
Christoph Oelckers
a426655d61 - scriptified AddInventory. 2018-12-01 17:03:58 +01:00
Christoph Oelckers
aa32acae25 - 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.
2018-12-01 14:18:28 +01:00
Christoph Oelckers
03015896d6 - seems there are two versions of Hacx's MAP05. 2018-12-01 10:30:50 +01:00
Christoph Oelckers
a0c0e8bdfe Merge remote-tracking branch 'remotes/origin/weapon_scriptification' into asmjit
# Conflicts:
#	src/g_inventory/a_pickups.cpp
2018-11-30 21:28:44 +01:00
Christoph Oelckers
8e46cb3a21 Merge remote-tracking branch 'remotes/origin/master' into asmjit 2018-11-30 18:49:28 +01:00
Player701
927d333063 - Exported AActor::Grind to ZScript. 2018-11-29 23:46:47 +01:00
Christoph Oelckers
ef2c433a8b - fixed declaration of ChangeStatNum. 2018-11-29 20:15:24 +01:00
Christoph Oelckers
ba2b9430f8 ChangeStatNum must not be virtual
Overriding this would make the engine vulnerable to  badly behaving mods. Intercepting this and altering the behavior can render the entire game inoperable, especially if more internal code gets scriptified later. So even at the risk of breaking some carelsss mods this must be blocked.
2018-11-29 19:00:25 +01:00
Christoph Oelckers
3acd9c8116 Made all virtual base functions for the event handler scripted
This was by far the largest block of native virtuals, and they were only native to be able to allow checking if the event was implemented for the current handler. This can easily be done by looking at the byte code, just like VMCall also does but in turn it removes more than half of the existing native virtuals from the interface.
2018-11-29 18:46:28 +01:00
Christoph Oelckers
f43f0b9bd4 - added a few more direct native entry points. 2018-11-29 00:27:09 +01:00
Christoph Oelckers
a5a9ab07af Merge branch 'master' into asmjit 2018-11-28 18:44:42 +01:00
Christoph Oelckers
7ff0cd70ad - explicitly declare the constructor and destructor methods of FCheckPosition so that they get a working prototype. 2018-11-28 17:33:37 +01:00
Player701
91ea22e85a - Fixed textures on the two switches that rise from the floor in the eastern area of TNT MAP31 2018-11-27 21:14:52 +01:00
Christoph Oelckers
5e4e9e2c2b Merge branch 'master' into asmjit 2018-11-27 19:53:22 +01:00
Alexander
4a85e24228 fixed spelling (mostly comments) 2018-11-27 19:44:06 +01:00
Christoph Oelckers
47b1fa774d Merge branch 'asmjit' into weapon_scriptification
# Conflicts:
#	src/gi.cpp
#	wadsrc/static/zscript/base.txt
2018-11-26 00:14:44 +01:00
Christoph Oelckers
90d79865a5 Merge branch 'master' into asmjit 2018-11-25 23:33:23 +01:00
Christoph Oelckers
9475bfe4f1 - declare builtins as static. 2018-11-25 21:47:28 +01:00
Christoph Oelckers
a501a22b28 - define the built-in functions defined in codegen.cpp through the regular interface instead uf just hacking them into the symbol table with incompletely set up data.
- added direct native variants to these builtins and fixed problems with builtin processing.
2018-11-25 11:41:29 +01:00
Christoph Oelckers
43d434b071 - 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.
2018-11-25 10:09:06 +01:00
Christoph Oelckers
f4789bdefc - fixed handling of dummy flags. 2018-11-25 10:06:00 +01:00
Christoph Oelckers
d6b781312c - removed all remaining native components of the weapon class. 2018-11-25 10:00:55 +01:00
Christoph Oelckers
70d3c31551 - allow defining flags in the script declaration of a class and do that for Weapon. 2018-11-25 09:29:12 +01:00
Christoph Oelckers
b5c4ab8c47 - 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.
2018-11-25 08:17:37 +01:00
Christoph Oelckers
00a48b09e5 - moved the 'Finalize' methods back into a single function in the parser code.
It has been like this initially but was changed when ZDoom gained an overly complicated polymorphic class descriptor object that required a lot of support code. All these complications have long been removed but these methods remained. Since they prevent a class from being moved to the script side entirely they had to be removed.

This was the last major blocker to make Weapon a purely scripted class, the only remaining native method is Serialize which is of no concern for the coming work.
2018-11-25 08:16:18 +01:00
Christoph Oelckers
7012179904 - moved MarkPrecacheSounds completely to the script side and added native support to make this a usable feature. 2018-11-25 07:43:05 +01:00
Christoph Oelckers
8fa16b6c30 - some cleanup on the weapon slot interface.
This really shouldn't make any decisions from directly reading weapon class defaults.
2018-11-25 07:21:02 +01:00
Christoph Oelckers
f218e95c4d - scriptified cht_Takeweaps. 2018-11-25 01:26:19 +01:00
Christoph Oelckers
460c400315 - scriptified ApplyKickback. 2018-11-25 01:12:45 +01:00
Christoph Oelckers
ae27acb944 - scriptified A_WeaponReady and its subfunctions. 2018-11-25 00:54:13 +01:00
Christoph Oelckers
34b7e5f435 - scriptified P_BobWeapon as a virtual function on PlayerPawn. 2018-11-25 00:23:03 +01:00
Christoph Oelckers
8eb4697fbd - 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.
2018-11-24 23:48:23 +01:00
Christoph Oelckers
4392b4e96d - exported the blood spawning part of P_LineAttack as a virtual ZScript function. 2018-11-24 22:35:50 +01:00
Christoph Oelckers
f260709e73 - moved the weapon selection logic to PlayerPawn as overridable virtual functions. 2018-11-24 22:22:36 +01:00
Christoph Oelckers
b6d0d5008e - change teleport freeze handling to a player property plus virtual override on PlayerPawn for increased configurability. 2018-11-24 21:37:00 +01:00
Christoph Oelckers
337750b874 - scriptified BecomeItem and BecomePickup 2018-11-24 21:25:26 +01:00
Christoph Oelckers
3d892d3970 - scriptified FilterCoopRespawnInventory. 2018-11-24 20:58:33 +01:00
Christoph Oelckers
c14b7f58d3 - scriptified some simple sound functions. 2018-11-24 20:33:00 +01:00
Christoph Oelckers
fb91982da2 - scriptified APlayerPawn::Die and fixed a few things I encountered while doing it. 2018-11-24 20:32:12 +01:00
Christoph Oelckers
cf9cd58310 - scriptified ModifyDropAmount as a virtual function hierarchy for Inventory and children. 2018-11-24 19:59:24 +01:00
Christoph Oelckers
652606f70b - scriptified A_Explode and relatives. 2018-11-24 19:29:52 +01:00
Christoph Oelckers
44d51a6de9 - scriptified GetDefaultInventory. 2018-11-24 19:03:33 +01:00
Christoph Oelckers
be100fa5d3 - removed MeleeWeapon flag from the tomed PhoenixRod and the fighterhammer.
In both cases, having this flag on will render the monster-backing-off-check for melee attacks ineffective because it would misinterpret these weapons as close range only - which they aren't. Even for the PhoenixRod the range is longer than what gets checked here.
As a consequence, the bot's check for missile shooting melee weapons has also become pointless because no such weapon is defined anymore.
2018-11-24 18:42:10 +01:00
Christoph Oelckers
814af66864 - exported one FraggleScript function for testing. 2018-11-24 18:33:42 +01:00
Christoph Oelckers
595208f2fd - exported a few more weapon handling functions so that the native GetDownState stub could be removed. 2018-11-24 18:21:40 +01:00
Christoph Oelckers
9584e3bc53 - scriptified P_BringUpWeapon because this was the only native function still referencing AWeapon::GetReadyState. 2018-11-24 17:22:59 +01:00
Christoph Oelckers
b4c272ddff - scriptified A_SpawnItem(Ex) and A_ThrowGrenade.
These were the last native functions referencing AWeapon::DepleteAmmo, so that function is now exclusively on the scripting side.
2018-11-24 17:01:12 +01:00
Christoph Oelckers
6be7fc33f3 - scriptified 3 more functions in stateprovider. 2018-11-24 15:42:43 +01:00
Christoph Oelckers
4c1b3f81ab - scriptified A_RailAttack. 2018-11-24 15:12:30 +01:00
Christoph Oelckers
5c130737c4 - scriptified A_CustomPunch 2018-11-24 14:48:30 +01:00
Christoph Oelckers
7bb3855439 - scriptified A_FireProjectile 2018-11-24 14:16:08 +01:00
Alexander
1b82e2078d add monster tags (Friendly Names) for Hexen 2018-11-24 14:02:48 +01:00
Christoph Oelckers
e071be8371 - scriptified A_FireBullets and A_CustomBulletAttack. 2018-11-24 13:50:27 +01:00
Christoph Oelckers
6fc63b9b78 - started with a ScriptUtil class which will allow moving function implementations for ACS and FraggleScript to zscript.txt
So far 3 functions for testing implemented.
2018-11-24 13:06:01 +01:00
alexey.lysiuk
f11b20122f - made ZRock4 solid like in vanilla Hexen
9164cc6e0f/INFO.C (L5731)
c0c1771e37/src/hexen/info.c (L5748)

https://forum.zdoom.org/viewtopic.php?t=62660
2018-11-24 12:51:14 +02:00
Christoph Oelckers
ac77ca6474 - scriptified Weapon.CheckAmmo and Weapon.DepleteAmmo 2018-11-24 11:29:57 +01:00
Christoph Oelckers
bd84a60663 - scriptified the rest of the morph code. 2018-11-24 10:47:42 +01:00
Christoph Oelckers
ac1bffc51b - scriptified P_MorphMonster. 2018-11-24 09:33:03 +01:00
Christoph Oelckers
3ed7f4066d - fixed message output. 2018-11-24 08:41:07 +01:00
Christoph Oelckers
cce1bad042 - testing and cleanup of scripted morph code. 2018-11-24 08:39:35 +01:00
Christoph Oelckers
78d6832d14 - P_UndoPlayerMorph scriptified.
Not tested yet and still missing a new native interface.
2018-11-24 08:17:30 +01:00
Christoph Oelckers
192104aea2 - scriptified P_MorphPlayer and dependencies.
It still needs its counterpart scriptified as well before it can work.
2018-11-24 07:45:49 +01:00
Magnus Norddahl
31ed1da4e5 Merge remote-tracking branch 'origin/master' into asmjit 2018-11-23 22:57:11 +01:00
Marisa Kirisame
ee91cf77e4 expose defaultbloodcolor to ZScript. 2018-11-23 22:15:15 +01:00
Christoph Oelckers
a5ee673c91 - exported ADecal to ZScript as a non-native class.
Its one function is still native but this was by far the easiest of the remaining actor classes to export.
2018-11-19 17:54:38 +01:00
Christoph Oelckers
a981737855 - generate register type info for the parameter lists of all functions.
Currently used for loading parameters into registers.
For checking parameters of native functions some more work is needed to get the info to the function. Currently it doesn't receive the function descriptor.
2018-11-18 17:10:55 +01:00
Christoph Oelckers
16c85b532b - restored the old A_Jump prototype because DECORATE needs this to parse the arguments. 2018-11-17 21:22:18 +01:00
Christoph Oelckers
533f66396d Merge branch 'master' into asmjit 2018-11-17 20:16:03 +01:00
Christoph Oelckers
adde0510fe - deconstruct A_Jump with multiple labels into A_Jump(chance, RandomPick(label1, label2, label3,...)) to remove this ugly special case from the VM calling convention.
This also adds the number of available choices to OP_IJMP.
2018-11-17 12:35:03 +01:00
Christoph Oelckers
cfa11046ab - changed PhosphorousFire.DoSpecialDamage to match SVE's handling:
* Everything with a damage factor for fire only uses that.
* Everything that bleeds takes half damage
* Robots take quarter damage.
2018-11-16 21:36:57 +01:00
Christoph Oelckers
33fb76698b Avoid using argument count for any kind of decision making in native VM functions.
This allows retaining the functionality, even if for the JIT compiler's benefit all default arguments are pushed onto the stack instead of reading them from the defaults array.
2018-11-16 15:25:37 +01:00
Christoph Oelckers
feef0d4b62 - corrected A_DropFire for real, using the SVE source as reference. 2018-11-15 19:35:07 +01:00
Christoph Oelckers
99f1d6b82e - fixed: A_DropFire accidentally cleared the XF_HURTSOURCE flag by setting only XF_NOSPLASH. 2018-11-15 18:49:37 +01:00
Major Cooke
55f17fa90c Changed A_RaiseActor to just RaiseActor. 2018-11-13 19:01:56 +01:00
Major Cooke
71d2b39d92 Added A_RaiseActor(Actor other, int flags = 0) 2018-11-13 19:01:56 +01:00
Major Cooke
b553be153d Added CanResurrect(Actor other, bool passive)
- Works similarly to CanCollideWith.
- Passive means the caller is trying to be resurrected by 'other'.
- Non-passive means the caller is trying to resurrect 'other'.
2018-11-13 19:01:56 +01:00
Christoph Oelckers
ca2defa6a2 - added ZScript export for side_t::SetSpecialColor. 2018-11-12 00:13:14 +01:00
Major Cooke
9a7f570b19 Added DMG_NO_ENHANCE for DamageMobj.
- Disables PowerDamage's effect, similar to DMG_NO_PROTECT disabling PowerProtect.
2018-11-10 16:18:33 +01:00
Major Cooke
9ff7f338fd Added IsPointInMap(Vector3 p).
- Checks if a point is inside the map geometry or not.
2018-11-07 15:16:45 -05:00
Christoph Oelckers
bfffe6df3e - fixed typo with RNG name. 2018-11-07 19:20:42 +01:00
ZZYZX
a276ebfb08 Exported destructible geometry to ZScript 2018-11-07 00:12:37 +01:00
ZZYZX
d85e5afdfb Destructible geometry - minor fixes and 3D floor support 2018-11-07 00:12:37 +01:00
Player701
56f76a141e - Added a function to get the actor's age in ticks. 2018-11-04 19:58:57 +01:00
Player701
a6dbfcf9c2 - Added a new field to the Actor class which stores the amount of ticks passed since the game started on the moment the actor was spawned.
- Added a function to the Actor class to get its spawn time relative to the current level.
- Added spawn time information to the output of the "info" console command.
2018-11-04 19:58:57 +01:00
Cacodemon345
b1d35eb0b3 Extend SKYEXPLODE flag for LineAttack 2018-11-03 15:24:30 +01:00
ZippeyKeys12
77c5c1eb19 Export AllClasses 2018-11-01 00:20:46 +01:00
Jonathan Russell
f39a389e99 - changed the way alpha works on DrawLine and DrawThickLine so they're consistent 2018-11-01 00:10:47 +01:00
Major Cooke
6a8b0df4ba Added VelIntercept.
- Uses the same code as Thing_ProjectileIntercept to aim and move the projectile.
  - targ: The actor the caller will aim at.
  - speed: Used for calculating the new angle/pitch and adjusts the speed accordingly. Default is -1 (current speed).
  - aimpitch: If true, aims the pitch in the travelling direction. Default is true.
  - oldvel: If true, does not replace the velocity with the specified speed. Default is false.

- Split the code from Thing_ProjectileIntercept and have that function call VelIntercept.
2018-11-01 00:10:08 +01:00
ZZYZX
849d110f10 Fixed sector floor/ceiling actions not triggering in P_XYMovement 2018-11-01 00:05:43 +01:00
ZZYZX
a6cdcab128 Implemented loading/saving of line/sector health and health groups in savegames 2018-10-31 22:14:40 +01:00
ZZYZX
b911bbc424 Single commit - destructible geometry feature 2018-10-31 17:22:09 +01:00
Christoph Oelckers
40da1dbfbc - removed bad 'return' in C_MidPrint definition. 2018-10-31 13:13:32 +01:00
Marrub
0b460ccb03 Squashed commit of the following:
commit 767e3a64f0d5fd27ef56de6e93221e9b2016a0c7
Author: Marrub <marrub.xz@gmail.com>
Date:   Tue Oct 30 04:01:09 2018 -0400

    ProMessage -> PronounMessage

commit 305477f63fb669f8cf2d9f6d609ed3988f437664
Author: Marrub <marrub.xz@gmail.com>
Date:   Mon Oct 29 23:56:58 2018 -0400

    improve variable naming

commit f3f0245d0cdcc1b0a8a9b74806bc8954be747f40
Author: Marrub <marrub.xz@gmail.com>
Date:   Mon Oct 29 19:52:32 2018 -0400

    add "neutral" gender option and better obit formatting
2018-10-30 21:42:09 +01:00
Christoph Oelckers
89059a2acc - added a compatibility fix for Hacx's MAP05.
This is by no means perfect and looks different than what was originally intended, but at least this doesn't totally fail to render properly with the OpenGL renderer.
2018-10-21 20:27:33 +02:00
Rachael Alexanderson
e2f6fa95d4 - fixed: attaching a new status bar to a player now calls 'setsizeneeded' - fixes an issue where the screen geometry is out of sync with the characteristics of the new status bar. 2018-10-20 13:22:11 -04:00
Erick Tenorio
c0cf19e9b5 - Visually align Doom 2 MAP04 crusher floors
Use Transfer_Heights to fake floors on the crusher sectors
2018-10-16 17:38:15 +02:00
Erick Tenorio
cc8112f88d -Fixed many IWAD mapping errors 2018-10-14 11:44:54 +02:00
player701
eee0946bc5 - Fixed indentation 2018-10-14 00:52:00 +02:00
player701
6dc026895c - Exported PickNewWeapon function from PlayerPawn to ZScript. 2018-10-14 00:52:00 +02:00
Erick Tenorio
22f8c26917 Fix missing enemies in HTP-RAW.WAD MAP22
Make 100% kills possible on MAP22 of Hell to Pay
2018-10-09 07:44:30 -04:00
Erick Tenorio
643e3a78d8 Fixes for Wraith Corporation WADs 2018-10-08 18:40:25 +02:00
Christoph Oelckers
2c9a82e084 - fixed potential null pointer access in Hexen's spike code. 2018-10-07 20:00:30 +02:00
alexey.lysiuk
9cffc29134 - fixed stuck memory usage warning in options menu
https://forum.zdoom.org/viewtopic.php?t=62186
2018-10-05 15:22:21 +03:00
Rachael Alexanderson
e7f19b01cb - added normal5x and normal6x 2018-10-04 22:09:18 -04:00
Marisa Kirisame
c3894ee348 Exports various resurrection-related functions to ZScript. 2018-10-04 08:59:37 -04:00
Rachael Alexanderson
2fff5c4c39 - use correct multipliers for the memory warnings for normalNx scalers 2018-10-04 08:43:02 -04:00
alexey.lysiuk
c589f1bba7 - added a warning for texture upscaling modes 2018-10-04 08:43:02 -04:00
Marisa Kirisame
38c8f0d585 Adds OnDrop virtual to inventory items. Called on the dropped item at the end of AActor::DropInventory. 2018-09-16 17:58:57 +02:00
Major Cooke
1210e1a951 Added DMG_EXPLOSION flag.
- This allows modders to determine if damage is caused by an actual explosion, assigned by P_RadiusAttack and BlastActor for +TOUCHY actors.
2018-09-15 13:23:11 +02:00
ZippeyKeys12
60f82d1eb9 Make StatusScreen::End virtual
https://forum.zdoom.org/viewtopic.php?t=59419
2018-09-15 13:21:13 +02:00
ZippeyKeys12
7885a22cad Add NewGame to EventHandler
https://forum.zdoom.org/viewtopic.php?t=61908
2018-09-15 13:20:41 +02:00
Christoph Oelckers
7cbc98e1d0 - fixed incorrect trigger types in compatibility setter.
These were caused by some bogus comment in the original compatibility.txt which erroneously added a "SPAC_PCross" remark to a line which actually set "SPAC_Cross".
2018-09-03 23:06:32 +02:00
Jonathan Russell
ea81ab4097 - added Screen.DrawThickLine for drawing lines with thickness 2018-08-30 19:21:57 +02:00
Christoph Oelckers
d263f7bcc8 - removed most of the old LastIndexOf methods in FString, only leaving one for ZScript and clearly giving it a name that says it all. RIndexOf has been made the proper version of LastIndexOf internally now. 2018-08-25 20:54:16 +02:00
Christoph Oelckers
c04c48d157 - renamed RIndexOf to RightIndexOf 2018-08-25 20:39:58 +02:00
Kevin Caccamo
884de51b70 Add the "RIndexOf" method to FString, which works like String.lastIndexOf from JavaScript
RIndexOf returns the index where the substring starts, instead of the index where the substring ends - 1.

Deprecate the LastIndexOf method of StringStruct
2018-08-25 20:37:40 +02:00
argv-minus-one
1d930b45cf Add ZScript method LevelLocals.SphericalCoords.
It computes spherical coordinates from one point in the world to another. Useful for checking whether one actor is inside another actor's view cone.
2018-08-21 08:22:16 +02:00
Marisa Kirisame
02926a5567 Add "IsFinal" parameter for CheckReplacement.
If set to true it guarantees that the replacement is final and will not go through the rest of the replacement chain.
2018-08-16 21:44:21 +02:00
Marisa Kirisame
e18b17217f Added CheckReplacement to event handlers, a function inspired by its namesake in Unreal's Mutator class.
Performs runtime replacement of actor classes.
Takes priority over the "replaces" keyword in both DECORATE and ZScript.
2018-08-15 19:31:09 +02:00
argv-minus-one
0717f5aede Make various getter and pure-math Actor methods clearscope.
These methods do not examine or change playsim state. They only perform math or look at class metadata.

Methods changed are:

• deltaangle
• absangle
• AngleToVector
• RotateVector
• Normalize180
• BobSin
• GetDefaultSpeed
• FindState
• GetDropItems (which changes the scope of the returned struct, but the returned struct is all-readonly anyway)
2018-08-14 11:52:44 +02:00
Christoph Oelckers
4c20553a62 Revert "Add RenderStyle API"
This reverts commit 8c7d3b6ab8.

With DTA_LegacyRenderStyle being added there is no pressing need for this. Aside from that there's an utterly unhealthy amount of information duplication here and it is missing some more recent additions.
2018-08-05 20:17:50 +02:00
Zombie
8c7d3b6ab8 Add RenderStyle API 2018-08-05 09:44:05 -04:00
Marisa Kirisame
51b57cebb1 Additional blocking-related flags for Actor.LineTrace() 2018-08-05 09:42:40 -04:00
Christoph Oelckers
ff69d945e1 - fixed: A global variable was used to pass MeansOfDeath to ClientObituary.
The problem here is that this affects the public scripting interface so it cannot be committed to master without further adjustments.

# Conflicts:
#	src/p_interaction.cpp
2018-07-29 17:00:05 +02:00
Christoph Oelckers
9653aa95a4 - fixed: The BossCube must account for its target being gone. 2018-07-27 08:46:28 +02:00
alexey.lysiuk
7acf9f96b6 - added placeholders for removed video menu classes 2018-07-16 17:15:41 +03:00
Christoph Oelckers
1294f3df64 - replaced the procedural backdrop texture with some warped noise texture.
This was done because the backdrop as implemented was the only texture in the entire game that had to be deleted and recreated each frame.
However, with Vulkan this would have necessitated quite a bit of synchronization with the render pipeline which wasn't really feasible just for this one single texture.
Now the texture manager can assume that once a texture was created it will be immutable and never has to change.
2018-07-15 00:00:00 +02:00
Christoph Oelckers
7a692b1557 - added DTA_LegacyRenderStyle so that STYLE_* constants can be passed directly to the Draw functions.
- fixed the optional parameter in Shape2D.Clear.
2018-07-14 22:58:24 +02:00
Christoph Oelckers
124fe63d00 Merge branch 'master' into modern 2018-07-14 10:24:41 +02:00
Marisa Kirisame
2d0fb4ed2e Adds 2D shape (triangle array) drawer, usable from ZScript. Handles most drawtexture parameters excluding those related to scaling, at the moment. 2018-07-13 20:24:06 +02:00
Erick Tenorio
dfe635dd4a TNT.WAD fixes
MAP07 - Dropping onto the outdoor lava will now raise triangle sectors.
Should be impossible to get stuck in them now.
MAP08 - Fix (what I presume to be an unintentional) missing texture.
2018-07-12 17:42:58 +02:00
argv-minus-one
ce1aa7e962 Move RandomSpawner's random selection logic into a virtual method.
With this, one can use its self-replacement code (which copies a bunch of its state into the replacement actor, and monitors for boss death if appropriate), but select the replacement class based on some other criteria (map number, the player's RPG stats, the player's class, etc).
2018-07-09 17:50:55 +02:00
argv-minus-one
6239796b92 Move RandomSpawner's recursion check into PostBeginPlay.
Previously, a RandomSpawner with infinite recursion would hang the game, because the recursion check was happening before the recursion counter (bouncecount) was set.
2018-07-09 17:50:55 +02:00
alexey.lysiuk
651e735246 Merge branch 'master' into modern 2018-06-29 17:51:10 +03:00
Erick Tenorio
245801ca17 Removed useless SetLineActivation
SPAC_Use removed as the line in fth666.wad MAP12 is not facing front.
2018-06-27 23:26:15 +02:00
Erick Tenorio
43919ead40 Various map fixes
Map fixes for the following maps:

MAP33: Betray (Doom II: BFG Edition)
Icarus: https://www.doomworld.com/idgames/themes/TeamTNT/icarus/icarus
Flashback to Hell: https://www.doomworld.com/idgames/levels/doom2/Ports/d-f/fth666
Hell to Pay (HTP-RAW.WAD)
2018-06-27 23:26:15 +02:00
Alexander
97aba0c416 add tags for Doom and Heretic monsters
Why? So mods that reveal enemy names don't show internal monster class names.

Tags are based on language.enu lump:
- Tags for Doom/Doom 2 monsters are referring directly to CC_* strings.
- Tags for Heretic monsters are based on obituaries.
- All tags match corresponding obituaries.
2018-06-27 21:04:00 +02:00
Christoph Oelckers
b65b83edb3 - removed the hard screen resolution switch that still was present on Windows and cleaned up the entire video backend code from the remaining support code for this.
Like Linux and macOS this will only support borderless fullscreen in the active desktop resolution now, which is what modern systems need.
The list of discrete resolutions has been removed as it makes no sense anymore with a fixed video mode - all the other scaling options remain active, though.
2018-06-17 20:08:35 +02:00
Rachael Alexanderson
512082b222 - fixed: 'empty function OnGiveSecret' - this was my fault, giving bad advice to Marisa in her PR. I fixed it. 2018-06-05 10:20:02 -04:00
Marisa Kirisame
477cf23fd2 Adds "OnGiveSecret" virtual function on Actor for customizing behavior of secret finding. 2018-06-05 10:06:53 -04:00
Christoph Oelckers
a851a5d151 - fixed: For melee attacks with a short attack range P_AimLineAttack must check for hits from above and below.
This is necessary to be in line with P_LineAttack which does check for those.
2018-06-03 17:49:00 +02:00
Christoph Oelckers
1266339c0f - fixed shader compilation. 2018-05-19 21:17:58 +02:00
Jonathan Russell
e9050a38b3 - added LevelLocals vec2/3Offset(Z) functions for portal-aware offsetting without needing actors 2018-05-16 20:47:43 +02:00
Christoph Oelckers
72c7a05ba8 - added compatibility fix for bad sector reference in Plutonia MAP11. 2018-05-05 19:58:34 +02:00
alexey.lysiuk
6d308ca67e Fixed walkthrough blocker in Sin City 2 via compatibility entry
It was impossible to complete Sin City 2 The Satan Complex without cheating since ZDoom 2.6.0
Change in applying of DeHackEd patches from 77a4b9a29b broke triggering of important linedef that pushes friendly marine to exit switch

https://www.doomworld.com/idgames/levels/doom2/Ports/s-u/satanx
2018-04-28 17:45:15 +02:00
alexey.lysiuk
c8eefd84fa Enabled playing of *gasp sound by default
https://forum.zdoom.org/viewtopic.php?t=60361
2018-04-27 11:04:21 +03:00
ZZYZX
da089b09b1 Added missing commented enum entry for ETraceFlags on ZScript side 2018-04-25 19:38:29 +02:00
Christoph Oelckers
1648fc6a07 Fixed initialization issues with dynamic lights.
Actors get initialized from their defaults so anything done in the constructor or some explicit member initialization will be overwritten.
They must use their properties for setting up configurable fields and do the rest in BeginPlay.
2018-04-25 09:14:01 +02:00
Kevin Caccamo
1c58093fc8 Add info about UseSpecial flag feature conflict above Actor.Used 2018-04-24 05:56:07 -04:00
alexey.lysiuk
ee9fa7c33e Made 100% kills possible on Altar of Evil, easy skill
https://www.doomworld.com/idgames/levels/doom2/Ports/a-c/altar666
2018-04-22 17:49:13 +03:00
alexey.lysiuk
df634539a0 Made 100% kills possible and unstuck imp on Valhalla map
https://www.doomworld.com/idgames/levels/doom2/Ports/m-o/ma_val
2018-04-16 14:34:07 +03:00
alexey.lysiuk
87d164ee59 Added ability to set thing position in compatibility layer 2018-04-16 14:30:21 +03:00
alexey.lysiuk
bb037635a8 Fixed missing textures on Valhalla with hardware renderer
It works fine with software renderer regardless of this compatibility entry because of texture bleeding
https://www.doomworld.com/idgames/levels/doom2/Ports/m-o/ma_val
-iwad doom2 -file ma_val.pk3 -nomonsters +map map01 "+warp -450 -2300"
2018-04-15 16:41:24 +03:00
Christoph Oelckers
8b4c74fad8 - the global portal data table also needs to be protected. 2018-04-15 12:16:46 +02:00
Christoph Oelckers
cf8447d19c -protected critical portal data from getting written to by user code.
This data is game critical and may only be altered by code that knows what is allowed and what not. It must never be altered by any user code ever.
However, since the SkyViewpoint actors need to set up some relations between themselves and the default sky portals the previously purely internal 'internal' flag has been exported as a new keyword.
2018-04-15 12:13:02 +02:00
alexey.lysiuk
ba4cc1a6ca Added activation type to WorldLine(Pre)Activated events
https://forum.zdoom.org/viewtopic.php?t=60232
2018-04-14 11:52:09 +03:00
Christoph Oelckers
13567f2505 - added a compatibility handler for Kama Sutra MAP01's ending area. 2018-04-13 20:27:21 +02:00
Christoph Oelckers
ac98e5a4f8 - fixed last change of compatibility branch. 2018-04-13 19:28:35 +02:00
Christoph Oelckers
71a6cc4625 Merge branch '2D_Refactor' 2018-04-13 17:52:58 +02:00
Christoph Oelckers
387827555f - added compatibility handler for Alien Vendetta MAP01 to properly display the deep water hack and avoid problems with a node rebuild. 2018-04-11 23:08:59 +02:00
Christoph Oelckers
3988e27059 - scriptified the last remaining definition (BTSX MAP12 beta)
- Changes to map geometry must force a node rebuild (SetVertex, SetLineSectorRef.)
- fixed incorrect use of scaling constant in SetWallYScale.
2018-04-11 19:10:15 +02:00
alexey.lysiuk
6631f208b1 Scriptified remaining compatibility entries 2018-04-11 17:01:57 +03:00
alexey.lysiuk
6480946d40 Scriptified more compatibility entries 2018-04-11 15:57:27 +03:00
alexey.lysiuk
5f5adbe161 Scriptified compatibility of Strife level along with needed functions 2018-04-11 13:02:26 +03:00
alexey.lysiuk
950443683b Scriptified compatibility of more Heretic levels 2018-04-11 12:35:45 +03:00
alexey.lysiuk
69222c3c36 Fixed missing texture with hardware renderer on Jenesis MAP16
https://forum.drdteam.org/viewtopic.php?t=7337
2018-04-11 11:54:27 +03:00
alexey.lysiuk
05dcd30838 Made 100% secrets possible on The Realm of Parthoris E1M5
https://forum.zdoom.org/viewtopic.php?t=60181#p1049393
2018-04-11 11:52:07 +03:00
Christoph Oelckers
0ecbf07769 -ported a large part of compatibility.txt 2018-04-10 23:19:22 +02:00
Christoph Oelckers
65a219eecc - sorted compatibility.txt so that levels which only have flags set are at the top of the file. 2018-04-10 20:02:41 +02:00
Christoph Oelckers
9daad477c3 - some improvements to compatibility scripts:
* use names, not strings, to allow use of switch/case.
* avoid creating the checksum a second time per level.
* do an early-out check for maps that do not have scripted compatibility.
2018-04-09 22:09:28 +02:00
alexey.lysiuk
640948703f Level compatibility via ZScript -- PoC 2018-04-09 17:54:12 +03:00
drfrag666
80f57dfaf0 - Increased size of the savegame comment area. 2018-04-08 21:56:35 +02:00
Marisa Kirisame
08f3afab0b Separated P_ActivateLine ZScript export into two functions, one with and one without a vector parameter. 2018-04-08 21:53:20 +02:00
Marisa Kirisame
5d0ff4c8ba Exports P_ActivateLine to ZScript (along with constants for activation type) 2018-04-08 21:53:20 +02:00
Christoph Oelckers
adbeb3f251 Merge remote-tracking branch 'remotes/origin/master' into 2D_Refactor 2018-04-07 18:50:24 +02:00
alexey.lysiuk
d3cacbf246 Fixed potential crash on usage of Mystic Ambit Incant
https://forum.zdoom.org/viewtopic.php?t=60080
2018-04-03 12:41:51 +03:00
Christoph Oelckers
3671fd7f97 Merge branch 'master' into 2D_Refactor 2018-04-01 08:44:39 +02:00
Christoph Oelckers
23146c9b18 - made all elements of DehInfo and State read-only.
This data must be immutable, if any mod plays loose here, very bad things can happen, so this hole got plugged, even at the expense risking to break some badly behaving mods.
2018-04-01 08:41:06 +02:00
Simon
4afc538f88 Localize the word “for” in Strife’s trading dialogs
This deals with what seems to be the only hardcoded piece of text in Strife. Also added a translation to the French file and removed a few superfluous line breaks in the English one.
2018-03-31 18:57:00 +02:00
ZippeyKeys12
0441994106 Default newradius in A_SetSize 2018-03-30 18:06:46 -05:00
Christoph Oelckers
1e5fbc1423 Merge remote-tracking branch 'remotes/origin/master' into 2D_Refactor
# Conflicts:
#	src/posix/cocoa/i_video.mm
2018-03-30 22:06:17 +02:00
alexey.lysiuk
84e9017a5f Fixed infinite loop with zero height fast projectile
https://forum.zdoom.org/viewtopic.php?t=60019
2018-03-30 12:49:35 +03:00
alexey.lysiuk
a6738fd139 Fixed infinite loop with None class in random spawner
actor NoneSpawner : RandomSpawner
{
    DropItem "None"
}

https://forum.zdoom.org/viewtopic.php?t=60027
2018-03-30 10:44:42 +03:00
Christoph Oelckers
a40e085a46 - 2D drawer implementation complete for hardware renderer.
This also replaces DTA_ColormapStyle with proper implementations of its components. As implemented it was a very awkward mixture of various effects that already existed in a separate form. As a result of its implementation it required additional but completely redundant shader support which could be removed now. As a side effect of this change a new DTA_Desaturate option was added.
2018-03-29 16:21:21 +02:00
Christoph Oelckers
16480a3f4b - it compiles again.
This won't work, though, because no backend for the new 2D code exists yet.
2018-03-28 16:40:09 +02:00
Christoph Oelckers
98c7118a3a - fixed: A sidedef's sector and linedef references were writable.
This cannot be allowed under any circumstances because this is what links the map geometry together.
Yes, it will break any mod that tries to play with these variables, but any such mod has to be considered broken by design and must be stopped.
2018-03-25 22:39:10 +02:00
Marisa Kirisame
0656916bf2 Add WorldLinePreActivated to override line activation, as a counterpart to WorldLineActivated. 2018-03-24 16:30:49 +01:00
Marisa Kirisame
3072c9bf7c Add PostUiTick(). Happens after all other tickers. Useful for handling changes in the play side within the same tic. 2018-03-24 10:24:13 +01:00
Marisa Kirisame
69c6e95b08 Add worldlineactivated event, triggered after successful line activation. 2018-03-24 10:23:31 +01:00
Marisa Kirisame
634a10db52 Adds "DI_MIRROR" flag to statusbar image drawing. Useful for rearview mirror camera textures, for example. 2018-03-24 00:29:50 +01:00
alexey.lysiuk
75782e6b34 Exported Inventory.AltHUDIcon field to ZScript
https://forum.zdoom.org/viewtopic.php?t=59842
2018-03-18 11:02:21 +02:00
alexey.lysiuk
b4d3715345 Fixed status bar chain wiggling when paused
Made ZScript implementation of chain wiggling in Heretic status bar as close as possible to C++ SBARINFO one
https://forum.zdoom.org/viewtopic.php?t=59840
2018-03-17 12:29:55 +02:00
alexey.lysiuk
e51a1867df Added default values for BaseStatusBar.AttachMessage() arguments 2018-03-07 16:00:08 +02:00
alexey.lysiuk
4f1f989049 Exposed HUDMSGLayer_... constants to ZScript 2018-03-07 15:58:43 +02:00
Marisa Kirisame
c9613b2fd1 Make sidedef vertex and secplane height functions callable from ui 2018-03-03 17:10:32 +01:00
Marisa Kirisame
069c5aa90a Fix accidentally removed SectorPlane assignment. Added missing HitVector support. 2018-03-03 09:30:06 +01:00
Christoph Oelckers
5d223bb8c3 - removed clearscope from DSectorEffect.GetSector.
Just because this is a getter does not mean that the data may even exist on the client side!
2018-03-03 09:28:25 +01:00
Marisa Kirisame
4cc8ba3399 Export GetSector() again, removed lightingdata assignment. 2018-03-03 09:26:11 +01:00
Marisa Kirisame
053d9f4a44 Export sector effect pointers, fix missing pointer assignment on Lighting effect creation. 2018-03-03 09:26:11 +01:00
Christoph Oelckers
4c0f68bcd4 Merge branch 'master' into timidity++
# Conflicts:
#	src/sound/musicformats/music_midistream.cpp
2018-03-02 00:08:12 +01:00
Christoph Oelckers
bb16e34bf4 - exposed the HUD message interface to ZScript.
Note that this is just the bare abstract interface. It is up to content makers to define usable HUD message classes and optionally contribute them to the engine.
2018-03-01 11:45:19 +01:00
Christoph Oelckers
6e8dbb590d - fixed: PowerMorph.EndEffect should not tinker around with morph duration.
There was a clear attempt here to let the item keep control of the remaining morph time, but since the item would have gotten destroyed right afterward it just shot itself in the foot badly by doing so.
Just leaving the remaining work to the main unmorphing check in the PlayerThink code by doing nothing will avoid the bad situation where a player gets stuck in its morphed form.
2018-02-28 20:15:44 +01:00
Christoph Oelckers
3a3cd87ce0 - perform the stepping adjustment for FastProjectiles in 3D.
Not checking the z-Axis means that they might pass through 3D floors without noticing at steep angles and very high speeds.
2018-02-28 18:26:25 +01:00
Major Cooke
7ac8b496f1 Added Distance(2/3)DSquared functions. 2018-02-28 09:28:11 +01:00
Christoph Oelckers
883a6ffe3a - added an inventory check to A_KeenDie so that it still works if a patch repurposes a pickup item that may end up in the player's inventory. 2018-02-27 10:40:43 +01:00
Christoph Oelckers
36e8358763 - use submenus for soundfont selection both for better overview and avoiding a music restart for each selection change. 2018-02-26 08:52:40 +01:00
alexey.lysiuk
fb1f8a6045 Restored ACS_NamedExecuteWithResult for DECORATE
https://forum.zdoom.org/viewtopic.php?t=59250
2018-02-24 22:03:23 +02:00
alexey.lysiuk
1679065a5d Exposed Actor.ACS_ScriptCall() function
This method can be used with arbitrary actor object like thing.ACS_ScriptCall("script")
CallACS() and ACS_NamedExecuteWithResult() intrinsics work only within self actor context
2018-02-24 16:23:55 +02:00
alexey.lysiuk
12eb760ff4 Do not abort if Korax target destroyed before attack begins
https://forum.zdoom.org/viewtopic.php?t=59551
2018-02-22 16:52:45 +02:00
alexey.lysiuk
1bcbdf9fd1 Added CHAN_LOOP to ZScript ESoundFlags enum
https://forum.zdoom.org/viewtopic.php?t=59417
2018-02-20 10:51:12 +02:00
alexey.lysiuk
af7648a151 Made PlayerRespawn skill definition consistent
Now it works the same as AllowRespawn map definition in MAPINFO
2018-02-03 16:26:49 +02:00
Christoph Oelckers
8e90386567 - made Weapon.CheckAmmo and Weapon.DepleteAmmo virtual on the script side. 2018-01-30 22:04:31 +01:00
alexey.lysiuk
d9323b9740 Marked internal menu commands as safe
This fixes soundfont/patchset/config selection menus in advanced sound options
2018-01-30 16:02:30 +02:00
Christoph Oelckers
7ceb70bcc1 - renamed 'Tracer' class to 'LineTracer', because 'Tracer' is a too common name that had been used by some mods. 2018-01-27 09:32:26 +01:00
Marisa Kirisame
92547028f3 Exports sky textures to ZScript (readonly, needs setter function due to the setup required) and speeds, along with a ChangeSky function for setting the textures. 2018-01-26 21:00:44 +01:00
Christoph Oelckers
884db96cbb Merge branch 'master' of https://github.com/coelckers/gzdoom 2018-01-21 10:54:34 +01:00
ZZYZX
ee1a8f71bb Disable TRACE_PCross and TRACE_Impact on ZScript side 2018-01-21 10:54:23 +01:00
ZZYZX
74b937620e Added texture detection for walls and 3D floors; renamed some fields to more intuitive names 2018-01-21 10:54:23 +01:00
ZZYZX
a7ff62316d Exported Trace() interface to ZScript 2018-01-21 10:54:23 +01:00
Marisa Kirisame
69e8c9ec6e A more "general purpose" line trace function. Far from a complete ZScript interface with Trace(), though. 2018-01-21 10:54:02 +01:00
Christoph Oelckers
9b40097e48 Merge branch 'master' of https://github.com/coelckers/gzdoom 2018-01-20 22:41:41 +01:00
Jonathan Russell
708d24aba7 - added Screen.getViewWindow function 2018-01-20 21:56:34 +01:00
Christoph Oelckers
dbf0a68b02 Merge commit '67e3106254e987f5acb9534e725d4f5c3eaa82b2'
# Conflicts:
#	src/doomdata.h
#	src/namedef.h
#	src/p_udmf.cpp
2018-01-20 19:07:54 +01:00
Rachael Alexanderson
6df936e0a0 - remove A_IsPlayingSound 2018-01-20 19:01:47 +01:00
Marisa Kirisame
a01ca4c3a1 Exported S_IsActorPlayingSomething and S_GetMSLength to ZScript.
Added missing vm.h include, moved A_IsPlayingSound to p_actionfunctions.cpp.

- make A_IsPlayingSound ui only
2018-01-20 19:01:47 +01:00
Major Cooke
d5d393aaf2 - Added GetRadiusDamage. Returns the raw calculated explosion damage falloff by distance only.
- Split off both explosion damage calculations into P_Get(Old)RadiusDamage functions for ease of maintenance.
2018-01-20 18:45:01 +02:00
Christoph Oelckers
2d8e394529 Merge branch 'master' into reverbedit
# Conflicts:
#	wadsrc/static/zscript/menu/optionmenuitems.txt
2018-01-20 11:44:42 +01:00
Christoph Oelckers
19cf887ad1 - fixed: Dynamic arrays for object pointers need different treatment than arrays for regular pointers, because they require GC::WriteBarrier to be called. 2018-01-19 19:49:42 +01:00
alexey.lysiuk
f629678320 Fixed const correctness for secplane structure
https://forum.zdoom.org/viewtopic.php?t=59151
2018-01-18 15:34:56 +02:00
alexey.lysiuk
23c50540f6 Added missing fields to StrifeDialogueNode ZScript definition
https://forum.zdoom.org/viewtopic.php?t=59091
2018-01-13 13:13:38 +02:00
alexey.lysiuk
d9ddd50c98 Disabled interpolation point "thinking"
https://forum.zdoom.org/viewtopic.php?t=59087
2018-01-12 18:27:19 +02:00
Rachael Alexanderson
36b6253c3d Merge branch 'FriendlySeeBlocks' into zmd5 2018-01-09 13:55:09 -05:00
Rachael Alexanderson
7416f42b47 - add 'FriendlySeeBlocks' actor property that allows a modder to expand the maximum radius that a friendly monster can see enemies. 2018-01-09 12:34:12 -05:00
Blue Shadow
f68d90accb Fixed a case of infinite loop in A_BrainDie 2018-01-08 11:50:01 -05:00
Jameson Ernst
e8a7f00b9b Adjust FNF enum to fix FILLZEROS 2018-01-07 23:44:03 +01:00
Rachael Alexanderson
9fd78e90ad - export 'GetChecksum' as part of FLevelLocals in ZScript 2018-01-06 19:59:49 -05:00
alexey.lysiuk
16333320d0 Fixed transfer of count secret flag from random spawner
https://forum.zdoom.org/viewtopic.php?t=59013
2018-01-06 17:48:49 +02:00
Jonathan Russell
acf83c2a74 - fixing the last commit... 2018-01-04 23:13:14 +00:00
Jonathan Russell
254501d3e8 - fixing last commit, which didn't seem to work correctly 2018-01-04 23:09:48 +00:00
Jonathan Russell
7f7c720883 - added UDMF properties for spotlights (args have all been used up for dynlights) 2018-01-04 22:41:57 +00:00