Commit graph

1298 commits

Author SHA1 Message Date
Christoph Oelckers
7f7c87a537 - fixed: Trying to remove the first item in an actor's inventory would lose all owned items. 2019-04-26 01:29:06 +02:00
Christoph Oelckers
251b096b48 - 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-04-26 01:20:02 +02:00
Christoph Oelckers
f261ec7d53 - 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.

# Conflicts:
#	src/g_shared/a_dynlight.cpp
#	src/g_shared/a_dynlight.h
#	src/hwrenderer/dynlights/hw_dynlightdata.cpp
#	src/hwrenderer/dynlights/hw_dynlightdata.h
#	src/hwrenderer/scene/hw_renderhacks.cpp
#	src/namedef.h
#	src/scripting/thingdef_data.cpp
#	src/swrenderer/line/r_walldraw.cpp

# Conflicts:
#	src/d_main.cpp
#	src/g_levellocals.h
#	src/g_shared/a_dynlight.cpp
#	src/g_shared/a_dynlight.h
#	src/gl/dynlights/gl_dynlight.h
#	src/gl/dynlights/gl_dynlight1.cpp
#	src/gl/scene/gl_spritelight.cpp
#	src/gl/scene/gl_walls.cpp
#	src/hwrenderer/dynlights/hw_shadowmap.cpp
#	src/hwrenderer/dynlights/hw_shadowmap.h
#	src/hwrenderer/scene/hw_flats.cpp
#	src/p_setup.cpp
2019-04-26 00:19:03 +02:00
Christoph Oelckers
bc8af1cab8 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.
2019-04-25 20:59:06 +02:00
Christoph Oelckers
99dd234d10 - exported all native components of APlayerPawn.
Only the class definition itself remains and needs to be taken care of.

# Conflicts:
#	src/g_statusbar/sbarinfo_commands.cpp
#	src/hu_scores.cpp
#	src/scripting/thingdef_data.cpp

# Conflicts:
#	src/actorinlines.h
#	src/hu_scores.cpp
2019-04-25 17:42:11 +02:00
Christoph Oelckers
94eb0ecdda - scriptified the remaining PlayerPawn methods. 2019-04-25 17:35:44 +02:00
Christoph Oelckers
b28faa6793 - took several methods out of the native PlayerPawn implementation, either by scriptification or moving them to other places. 2019-04-25 17:34:56 +02:00
Christoph Oelckers
6f2a32ecbe - scriptified PlayerPawn.ResetAirSupply. 2019-04-25 17:34:53 +02:00
Christoph Oelckers
1c577e4c97 - scriptified APlayerPawn's DamageFade handling. 2019-04-25 17:34:51 +02:00
Christoph Oelckers
cf890a24c3 - 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-04-25 17:34:49 +02:00
Christoph Oelckers
8e376754fc - did some more lightening on the PlayerPawn class. 4 more properties and one native member function have been handled. 2019-04-25 17:34:47 +02:00
Christoph Oelckers
cb2e46a4fe - scriptified A_SkullPop and ObtainInventory.
These were the last relevant items to access PlayerPawn.InvFirst.
2019-04-25 17:34:43 +02:00
Christoph Oelckers
08e2a86f64 - made ColorRangeStart and ColorRangeEnd meta properties of APlayerPawn.
These are only used during initialization and they should have been readonly from the start.
2019-04-25 17:34:41 +02:00
Christoph Oelckers
51499e167d - scriptified useflechette CCMD's item finding code. 2019-04-25 17:34:39 +02:00
Christoph Oelckers
4be9217215 - scriptified the declaration of AmbientSound
Most of the code is still native, but this means that PlayerPawn is the last remaining child of AActor.

# Conflicts:
#	src/g_shared/a_dynlight.cpp
2019-04-25 17:34:37 +02:00
Christoph Oelckers
0c1fc45df8 - fixed A_Chase default detection. 2019-04-25 16:31:58 +02:00
Marrub
d623ede89d 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-04-25 13:10:44 +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
b706e8fead - 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-04-25 13:04:25 +02:00
Christoph Oelckers
f1b345dc73 - 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.
2019-04-25 13:04:21 +02:00
Major Cooke
5209d43bf3 - Fixed: SXF_CLEARCALLERSPECIAL cleared the spawned actor's special instead of the caller. 2019-04-25 13:03:50 +02:00
Christoph Oelckers
5bb0428fa8 - made PlayerPawn.TweakSpeeds virtual. 2019-04-25 12:55:16 +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
Erick Tenorio
3262af7514 - TNT.WAD fixes 2019-04-25 12:45:25 +02:00
Erick Tenorio
63313d0214 - Have Plutonia MAP16 pit kill player 2019-04-25 12:45:23 +02:00
Major Cooke
662b2ed759 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.
2019-04-18 19:56:38 +02:00
alexey.lysiuk
4044a6e724 - declared Actor's Morph() and UnMorph() functions virtual
They are expected to be virtual on C++ side
2019-04-18 19:55:26 +02:00
Christoph Oelckers
18cec62458 - fixed random number generation in SpawnFizzle.
This should now produce the same value range as Hexen's original code.
2019-04-18 17:46:21 +02:00
Christoph Oelckers
ff12eab7e5 - fixed bad attempt at restoring position in A_CustomBulletAttack. 2019-04-18 17:46:19 +02:00
Christoph Oelckers
cc34946e80 - missed this. 2019-04-18 17:46:17 +02:00
Christoph Oelckers
18dd23c79d - 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.
2019-04-18 17:46:15 +02:00
Christoph Oelckers
0dcbc02cd7 - renamed back arguments of A_FireProjectile. 2019-04-18 17:46:14 +02:00
Christoph Oelckers
e6af596af0 - removed the redundant GetOffsetPosition export and added direct native support to its existing variants 2019-04-18 17:01:17 +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
bda2a75466 - fixed PlayerInfo.FindMostRecentWeapon
returning multiple values from a subfunction is currently not working so this has to add an indirection.
2019-04-18 17:01:07 +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
Cacodemon345
fdd6e3cec9 Export P_GetOffsetPosition and ADynamicLight::SetOffset to ZScript 2019-04-18 16:23:01 +02:00
Player701
5c248053f3 - Fixed the position of the soul sphere within one of the secret areas (sector 324) of Alien Vendetta MAP28. 2019-04-18 15:01:11 +02:00
Christoph Oelckers
f7fe19ee51 - made Ammo.GetParentAmmo virtual 2019-04-18 14:34:28 +02:00
Chronos Ouroboros
218b7e95ca Added a function for triggering use/push specials for usage in custom monster AI. 2019-04-18 14:22:07 +02:00
Chronos Ouroboros
803cb16d99 Exported P_CheckFor3DFloorHit and P_CheckFor3DCeilingHit to ZScript. 2019-04-18 14:22:05 +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
Rachael Alexanderson
f442d4bd54 - split gl_texture_hqresize into two variables - one for mode, one for multiplier.
# Conflicts:
#	src/textures/hires/hqresize.cpp

# Conflicts:
#	src/gl/textures/gl_hqresize.cpp
#	src/r_videoscale.cpp
2019-04-17 21:04:41 +02:00
alexey.lysiuk
77e47087b7 - fixed stuck memory usage warning in options menu
https://forum.zdoom.org/viewtopic.php?t=62186
2019-04-17 20:59:49 +02:00
Rachael Alexanderson
301246236c - added normal5x and normal6x 2019-04-17 20:59:20 +02:00
Rachael Alexanderson
cd126b08ba - use correct multipliers for the memory warnings for normalNx scalers 2019-04-17 20:58:47 +02:00
drfrag
96f996d8aa Revert "Revert "- update xBRZ upscaler to version 1.6""
This reverts commit 285791622d.

# Conflicts:
#	src/gl/textures/gl_hqresize.cpp
#	wadsrc/static/menudef.txt

Goodbye to TDM-GCC.
2019-04-17 20:33:41 +02:00
Christoph Oelckers
f40e5c7edc - re-added PlayerInfo.BringUpWeapon. 2019-04-17 19:44:12 +02:00
Christoph Oelckers
cf4f573a25 - 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.
2019-04-17 17:27:39 +02:00
Christoph Oelckers
082cb5b656 - scriptified P_CheckMeleeRange2. 2019-04-17 16:24:10 +02:00
Christoph Oelckers
15ab1fb09b - deprecated a few functions that depend on AAPTR_* to be useful.
- fixed wrong name for the LineAttack action function.
2019-04-17 16:24:05 +02:00
Christoph Oelckers
792aaa5b88 Added direct native entry points to a larger number of functions.
# Conflicts:
#	src/scripting/vmthunks_actors.cpp
2019-04-17 15:11:22 +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
a5e16e3261 - moved a large part of the VM thunks out of p_mobj.cpp. 2019-04-17 14:55:58 +02:00
Christoph Oelckers
f22aaca74d - scriptified ASpecialSpot.
This only had two simple native methods so the class is not fully scripted.
2019-04-17 14:32:10 +02:00
Christoph Oelckers
c87724ef0a Removed all native components from AInventory. 2019-04-16 23:57:22 +02:00
Christoph Oelckers
d40de21bae - scriptified A_SpawnSingleItem, which was the last piece of native code still referencing AInventory 2019-04-16 23:57:19 +02:00
Christoph Oelckers
d2225040ea - scriptified A_SelectWeapon 2019-04-16 23:57:15 +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
Christoph Oelckers
318a9d7893 - fixed max. ammo display on AltHud. 2019-04-16 22:00:59 +02:00
Christoph Oelckers
e176410ab6 - 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.
2019-04-16 21:53:00 +02:00
Christoph Oelckers
c0686309fc - removed all direct references of AInventory::Owner and AInventory::Amount from the C++ code. 2019-04-16 21:52:53 +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
7e75aa1d36 - fixed accidentally misnamed parameter in A_Explode. 2019-04-16 21:34:47 +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
bdd6d31a63 - 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.
2019-04-16 21:28:34 +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
9ff5257ce9 - scriptified P_DropItem. 2019-04-16 21:28:30 +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
e8a6f82682 - scriptified G_PlayerFinishLevel.
Outside of SBARINFO this was the biggest remaining piece of code that referenced AInventory internals.
2019-04-16 21:28:24 +02:00
Christoph Oelckers
8dfcdc1219 - fixed incomplete null checks in A_RadiusThrust. 2019-04-16 21:28:23 +02:00
Christoph Oelckers
9315a217b3 - scriptified AActor::ClearInventory 2019-04-16 21:28:21 +02:00
Christoph Oelckers
0d8975ed31 - 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.

# Conflicts:
#	src/d_main.cpp

# Conflicts:
#	src/info.cpp
2019-04-16 19:03:43 +02:00
Christoph Oelckers
376266b6a0 - scriptified the main drawer for the in-game HUD and removed all intermediate VM calls from the native source. 2019-04-16 19:02:01 +02:00
Christoph Oelckers
9d8dd5c529 - scriptified the AltHUD'S powerup drawer. 2019-04-16 19:01:55 +02:00
Christoph Oelckers
f509fdfdaa - 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.
2019-04-16 19:01:53 +02:00
Christoph Oelckers
eb07b8e543 - scriptified the AltHUD's inventory drawer and fixed the InvPrev CCMD. 2019-04-16 19:01:51 +02:00
Christoph Oelckers
e0915877b4 - scriptified the AltHUD's weapon drawer. 2019-04-16 19:01:50 +02:00
Christoph Oelckers
045d6d4355 - 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.
2019-04-16 19:01:48 +02:00
Christoph Oelckers
437c72a089 - AltHUD ammo drawer scriptified. 2019-04-16 19:01:46 +02:00
Christoph Oelckers
1033dc3b10 - Alt HUD scriptification, part 1. 2019-04-16 19:01:43 +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
Major Cooke
4ae14c402b - Restored A_SpawnItemEx's "chance" to "failchance" to prevent mod breakage from named parameters. 2019-04-16 18:46:00 +02:00
Christoph Oelckers
d18ed18d2e - scriptified invnext and invprev CCMDs. 2019-04-16 18:45:54 +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
be8d1c950d - scriptified GiveAmmo and the one remaining piece of native code still using it. 2019-04-16 18:45:41 +02:00
Christoph Oelckers
f1bf1cc44e - scriptified DropInventory. 2019-04-16 18:45:38 +02:00
Christoph Oelckers
a614f2a81e - scriptified UseInventory and several functions using the already scriptified ones,
# Conflicts:
#	src/g_statusbar/sbar.h
2019-04-16 18:45:36 +02:00
Christoph Oelckers
e7c798f58f - scriptified TakeInventory, including the ACS/FS interfaces. 2019-04-16 18:45:03 +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
2a192cde92 - scriptified AddInventory. 2019-04-16 18:44:53 +02:00
drfrag
e3ce680ec9 - Removed duplicate definition of DTA_Internal3. 2019-04-16 18:40:25 +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
4080bfd3cf - seems there are two versions of Hacx's MAP05.
# Conflicts:
#	wadsrc/static/zscript/base.txt
#	wadsrc/static/zscript/level_compatibility.txt
2019-04-16 17:47:42 +02:00
Christoph Oelckers
1a8b18d539 - fixed declaration of ChangeStatNum. 2019-04-16 17:10:37 +02:00
Christoph Oelckers
886df37d1a 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.
2019-04-16 15:26:16 +02:00
Christoph Oelckers
09f4c7e4a9 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.
2019-04-16 15:26:14 +02:00
Christoph Oelckers
4ac866aedc - added a few more direct native entry points. 2019-04-16 15:12:41 +02:00
Christoph Oelckers
00fed23e5f - explicitly declare the constructor and destructor methods of FCheckPosition so that they get a working prototype. 2019-04-16 15:12:33 +02:00
Christoph Oelckers
29eee14549 - declare builtins as static. 2019-04-16 14:58:18 +02:00
Christoph Oelckers
c01981d08a - 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.
2019-04-15 22:30:01 +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
ce5792242c - 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.
2019-04-15 22:29:39 +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
f9dfdace16 - scriptified cht_Takeweaps. 2019-04-15 22:29:30 +02:00
Christoph Oelckers
94b0338c31 - scriptified ApplyKickback. 2019-04-15 22:29:26 +02:00
Christoph Oelckers
59bffe2f55 - scriptified A_WeaponReady and its subfunctions. 2019-04-15 22:29:22 +02:00
Christoph Oelckers
951ed466b3 - scriptified P_BobWeapon as a virtual function on PlayerPawn. 2019-04-15 22:29:19 +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
681009e1ea - exported the blood spawning part of P_LineAttack as a virtual ZScript function. 2019-04-15 21:59:08 +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
27c67716df - change teleport freeze handling to a player property plus virtual override on PlayerPawn for increased configurability.
# Conflicts:
#	src/g_inventory/a_pickups.cpp
2019-04-15 21:59:03 +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
08059f718b - scriptified FilterCoopRespawnInventory. 2019-04-15 21:59:00 +02:00
Christoph Oelckers
1ecada388c - scriptified some simple sound functions. 2019-04-15 21:58:58 +02:00
Christoph Oelckers
d123230fb1 - scriptified APlayerPawn::Die and fixed a few things I encountered while doing it. 2019-04-15 21:58:56 +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
f1c7815b16 - scriptified A_Explode and relatives. 2019-04-15 21:58:52 +02:00
Christoph Oelckers
e234d450aa - scriptified GetDefaultInventory. 2019-04-15 21:58:50 +02:00
Christoph Oelckers
864796a6a2 - 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.
2019-04-15 21:58:48 +02:00
Christoph Oelckers
beae232f83 - exported one FraggleScript function for testing. 2019-04-15 21:58:46 +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
8c2c888d82 - 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.
2019-04-15 21:58:39 +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
4c7096ffac - 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.

# Conflicts:
#	src/p_acs.cpp
2019-04-15 21:58:26 +02:00
Christoph Oelckers
1b6af10f38 - scriptified Weapon.CheckAmmo and Weapon.DepleteAmmo 2019-04-15 21:56:30 +02:00
Christoph Oelckers
9e6279ed5b - scriptified the rest of the morph code. 2019-04-15 21:56:28 +02:00
Christoph Oelckers
b886219f53 - scriptified P_MorphMonster. 2019-04-15 21:56:23 +02:00
Christoph Oelckers
d4ff49e110 - fixed message output. 2019-04-15 21:56:22 +02:00
Christoph Oelckers
02f785f794 - testing and cleanup of scripted morph code. 2019-04-15 21:56:20 +02:00
Christoph Oelckers
9b1e96262c - P_UndoPlayerMorph scriptified.
Not tested yet and still missing a new native interface.
2019-04-15 21:56:18 +02:00
Christoph Oelckers
395413fc9a - scriptified P_MorphPlayer and dependencies.
It still needs its counterpart scriptified as well before it can work.

# Conflicts:
#	src/gi.cpp
#	wadsrc/static/zscript/base.txt
2019-04-15 21:56:16 +02:00
Christoph Oelckers
f00892e06d - 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.
2019-04-15 16:09:05 +02:00
Christoph Oelckers
cb9c1f021c - 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.
2019-04-15 15:52:22 +02:00
Christoph Oelckers
45f83636e9 - restored the old A_Jump prototype because DECORATE needs this to parse the arguments. 2019-04-15 15:48:34 +02:00
Christoph Oelckers
9456c877d4 - 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.
2019-04-15 15:48:27 +02:00
Christoph Oelckers
7fe33d336c 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.

# Conflicts:
#	src/r_data/r_sections.h
2019-04-15 14:37:28 +02:00
Player701
d72d820bba - Exported AActor::Grind to ZScript. 2018-11-30 10:18:43 +01:00
Player701
bc280f67ac - Fixed textures on the two switches that rise from the floor in the eastern area of TNT MAP31 2018-11-28 15:37:46 +01:00
Alexander
aa6820737a fixed spelling (mostly comments) 2018-11-28 15:37:45 +01:00
Alexander
c223a671a6 add monster tags (Friendly Names) for Hexen 2018-11-25 12:25:46 +01:00
alexey.lysiuk
4020159f91 - 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:47:18 +01:00
Marisa Kirisame
9022c98732 expose defaultbloodcolor to ZScript. 2018-11-24 00:18:24 +01:00
Christoph Oelckers
a9cc7e6fb9 - 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:47:21 +01:00
Christoph Oelckers
af3635dfd9 - corrected A_DropFire for real, using the SVE source as reference. 2018-11-16 21:33:16 +01:00
Christoph Oelckers
91b4024bf2 - fixed: A_DropFire accidentally cleared the XF_HURTSOURCE flag by setting only XF_NOSPLASH. 2018-11-16 21:33:14 +01:00
Major Cooke
57efd617fa Changed A_RaiseActor to just RaiseActor. 2018-11-16 21:17:53 +01:00
Major Cooke
a083eb6421 Added A_RaiseActor(Actor other, int flags = 0) 2018-11-16 21:17:51 +01:00
Major Cooke
24fdaf751c 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-16 21:17:49 +01:00
Christoph Oelckers
4183615495 - added ZScript export for side_t::SetSpecialColor. 2018-11-16 21:17:45 +01:00
Major Cooke
be2d5ba9ec Added DMG_NO_ENHANCE for DamageMobj.
- Disables PowerDamage's effect, similar to DMG_NO_PROTECT disabling PowerProtect.
2018-11-12 22:04:17 +01:00
Major Cooke
b34bc0947e Added IsPointInMap(Vector3 p).
- Checks if a point is inside the map geometry or not.
2018-11-08 16:18:29 +01:00
Christoph Oelckers
eb47c8d4c2 - fixed typo with RNG name. 2018-11-08 00:18:08 +01:00
ZZYZX
7905a0e041 Exported destructible geometry to ZScript 2018-11-07 11:00:08 +01:00
ZZYZX
b581648d6f Destructible geometry - minor fixes and 3D floor support 2018-11-07 11:00:05 +01:00
Player701
4751181eb6 - Added a function to get the actor's age in ticks. 2018-11-05 01:38:37 +01:00
Player701
905146d87c - 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-05 01:38:35 +01:00
Cacodemon345
57e51debec Extend SKYEXPLODE flag for LineAttack 2018-11-03 21:52:25 +01:00
ZippeyKeys12
96fafa9c59 Export AllClasses 2018-11-02 13:07:12 +01:00
drfrag666
557380a769 - Added alpha parameter to DrawLine for the GL renderer, it's a fake parameter for the software renderer so mods don't crash. 2018-11-02 13:04:37 +01:00
Major Cooke
7eef13c859 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 21:25:56 +01:00
ZZYZX
a40d717006 Fixed sector floor/ceiling actions not triggering in P_XYMovement 2018-11-01 21:08:53 +01:00
ZZYZX
d2f6834da6 Implemented loading/saving of line/sector health and health groups in savegames 2018-11-01 21:08:51 +01:00
ZZYZX
82a2bf3ac5 Single commit - destructible geometry feature
# Conflicts:
#	src/p_setup.cpp
2018-11-01 21:02:25 +01:00
Christoph Oelckers
7d53d0d8ed - removed bad 'return' in C_MidPrint definition. 2018-11-01 20:03:26 +01:00
Marrub
0f6f23350d Add "neutral" gender option and better obit formatting 2018-10-31 11:24:01 +01:00
Christoph Oelckers
eca23badb8 - 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.

# Conflicts:
#	wadsrc/static/zscript/level_compatibility.txt
2018-10-21 20:57:40 +02:00
Rachael Alexanderson
35bf70456a - 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 21:22:24 +02:00
Erick Tenorio
c2784e4b6b - Visually align Doom 2 MAP04 crusher floors
Use Transfer_Heights to fake floors on the crusher sectors
2018-10-16 20:50:53 +02:00
Erick Tenorio
3b432a99e8 -Fixed many IWAD mapping errors
# Conflicts:
#	wadsrc/static/zscript/level_compatibility.txt
2018-10-14 12:10:56 +02:00
player701
3e0ed1c907 - Fixed indentation 2018-10-14 10:31:47 +02:00
player701
dcc2006c76 - Exported PickNewWeapon function from PlayerPawn to ZScript. 2018-10-14 10:31:46 +02:00
Erick Tenorio
3bb5608435 Fix missing enemies in HTP-RAW.WAD MAP22
Make 100% kills possible on MAP22 of Hell to Pay
2018-10-09 22:00:02 +02:00
Erick Tenorio
1b97ba198b Fixes for Wraith Corporation WADs 2018-10-09 11:53:59 +02:00
Christoph Oelckers
1e48f240e0 - fixed potential null pointer access in Hexen's spike code. 2018-10-07 21:21:07 +02:00
Marisa Kirisame
5877c0248d Exports various resurrection-related functions to ZScript. 2018-10-04 19:30:39 +02:00
Marisa Kirisame
9028bbd473 Adds OnDrop virtual to inventory items. Called on the dropped item at the end of AActor::DropInventory. 2018-09-17 01:18:51 +02:00
Major Cooke
78d4a87cd1 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 20:41:17 +02:00
ZippeyKeys12
c0cb8659b7 Make StatusScreen::End virtual
https://forum.zdoom.org/viewtopic.php?t=59419
2018-09-15 20:33:14 +02:00
ZippeyKeys12
b26aad2741 Add NewGame to EventHandler
https://forum.zdoom.org/viewtopic.php?t=61908
2018-09-15 20:33:13 +02:00
Christoph Oelckers
f557fa4296 - 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-04 01:30:14 +02:00
drfrag666
a2674eb4cf - Added fake DrawThickLine action function so mods using it don't crash. DrawLine will be called instead. 2018-09-02 00:29:11 +02:00
Christoph Oelckers
80da2e74c5 - 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-26 13:51:30 +02:00
Christoph Oelckers
23f2d9aaa0 - renamed RIndexOf to RightIndexOf 2018-08-26 13:51:28 +02:00