Commit graph

158 commits

Author SHA1 Message Date
Christoph Oelckers
bcc1aa95b2 - fixed: ACS calls need to explicitly pass the level into COPY_AAPTR.
Unlike from an action function, this can be called with a null actor, which for the player constants still needs to return something valid.
2019-02-07 15:41:35 +01:00
Christoph Oelckers
66eb4e5048 - separation of static and map-local event handlers into separate lists.
Having everything lumped together made this a maintenance hassle because it affected how the level has to be stored.
This hasn't been tested yet, so it may not work as intended!
2019-02-02 16:43:11 +01:00
Christoph Oelckers
6c006a5fbd - added the missing Level parameters to AActor::StaticSpawn and P_ExecuteSpecial.
I think these were the last two still missing it, all remaining uses of the global level variable are in code that doesn't get run through a level tick and are supposed to access the primary level.
2019-02-01 22:02:16 +01:00
Christoph Oelckers
32e5be83ea - moved a few more files and copied the data related parts of p_things.cpp to g_doomedmap.cpp 2019-02-01 19:48:17 +01:00
Christoph Oelckers
de24fc2c88 - do not call renderer code directly to reset the view interpolation
The playsim really has no idea what the renderer is supposed to do here and the current system has some serious issues that eventually need addressing. So it is better to just set a flag that an actor needs to have its view interpolation reset if being used as a camera and let the render code deal with it.

This will keep the playsim clean of future changes to this feature.
2019-02-01 12:03:36 +01:00
Christoph Oelckers
648e472744 - handled approx. half of all cases where the address of level is taken. 2019-01-28 00:55:21 +01:00
Christoph Oelckers
b4acb857ad - the final batch of easy level replacements.
What's left will require a bit more work...
2019-01-27 21:59:19 +01:00
Christoph Oelckers
4c250a58ca - reroute all uses of FActorIterator and NActorIterator through FLevelLocals. 2019-01-24 18:50:22 +01:00
Major Cooke
7666997580 Fixed Thing_ProjectileAimed being broken.
- It was calling the fallback aiming in the wrong place when it should have been outside the speed check.
- Credit to _mental_ for the base code, but no gotos involved.
2019-01-23 20:42:17 +01:00
Christoph Oelckers
53be21eb58 - added missing return in P_RemoveThing. 2018-12-30 08:40:04 +01:00
alexey.lysiuk
23f2a3a7fc - fixed crash in Actor.Warp() with null destination
https://forum.zdoom.org/viewtopic.php?t=63031
2018-12-27 13:01:42 +02:00
Christoph Oelckers
c92e6b03ac - why wasn't this saved? 2018-12-15 21:39:00 +01:00
Christoph Oelckers
39f6489ac5 - two more places where explicit allocations could be replaced. 2018-12-15 20:41:21 +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
319f8743db - consolidated the check for "is actor an owned inventory item" into a subfunction.
This check occured 9 times in the source, better have it only once.
2018-12-02 16:53:12 +01:00
Christoph Oelckers
8bc2d50ad2 Merge branch 'master' into asmjit
# Conflicts:
#	src/p_actionfunctions.cpp
2018-11-18 21:08:16 +01:00
Major Cooke
a8d4d45e89 P_Thing_Raise fixes & cleanup
- Transfer flags directly into the function and process inside instead of the action functions
- Pass in raiser for all function calls
2018-11-18 15:28:05 +01:00
Christoph Oelckers
533f66396d Merge branch 'master' into asmjit 2018-11-17 20:16:03 +01:00
Christoph Oelckers
701b793f24 - fixed parameter mixup with P_CanResurrect. 2018-11-17 16:21:08 +01:00
Christoph Oelckers
94ed30e782 - removed the default parameter handling from all native script functions because it is no longer needed. 2018-11-17 10:03:40 +01:00
Major Cooke
f47210df4e Fixed inconsistency.
- P_Thing_Raise returned true while P_Thing_CanRaise returned false for the condition of having no raise state. P_Thing_Raise now returns false.
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
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
alexey.lysiuk
23a4daac23 - skipped owned items in proximity test
https://forum.zdoom.org/viewtopic.php?t=61224
2018-07-11 17:49:30 +02:00
alexey.lysiuk
2ae8d39441 Removed all superfluous #include's
Automatically optimized by CLion IDE with manual corrections
2018-04-24 14:30:35 +03:00
Christoph Oelckers
8be788a9b3 - moved portal data into FLevelLocals. 2018-04-01 20:17:39 +02:00
Christoph Oelckers
5935e14c09 - exported P_Thing_Warp to ZScript. 2017-11-13 21:00:17 +01:00
Dmitri Kourennyi
3b20c26275 Fix A_CheckProximity setting pointer to dead things when it shouldn't.
When using A_CheckProximity with CPXF_SETTARGET, the target pointer could
be set to a dead monster even without the CPXF_COUNTDEAD and CPXF_DEADONLY
flags. This is becuase the check for death would occur after setting the
pointer.

Fix simply moves death check to occur before setting pointers.
2017-05-14 20:01:18 +02:00
Christoph Oelckers
6599e2c425 - moved the VM types into their own file and only include it where really needed. 2017-04-13 01:12:04 +02:00
Christoph Oelckers
fc9e304189 - separated class descriptors from VM types.
Combining these two groups of data has been the cause of many hard to detect errors because it allowed liberal casting between types that are used for completely different things.
2017-04-12 22:46:49 +02:00
Christoph Oelckers
921abc404d - fixed GCC warnings and errors
(Is there anyway to tone down GCC's warning level? It outputs too many false positives for potentially uninitialized variables in which the genuine errors get drowned.)
2017-03-11 19:02:35 +01:00
Christoph Oelckers
c4b546404a - added a 'nocheck' parameter to A_Raise* and Thing_Raise. 2017-02-26 17:50:48 +01:00
Christoph Oelckers
cd7986b1b1 - refactored global sides array to be more VM friendly.
- moved FLevelLocals to its own header to resolve some circular include conflicts.
2017-01-08 18:46:17 +01:00
Christoph Oelckers
211d9d92a1 Merge branch 'master' into zscript 2016-12-02 21:14:56 +01:00
Edoardo Prezioso
9dbfa6d04e - Fixed uninitialized line number info in thing map parsing. 2016-12-02 14:54:32 +01:00
Christoph Oelckers
5ce5466e18 - scriptified hexenspecialdecs.
- made '->' a single token. Although ZScript does not use it, the parser tends to get confused and fatally chokes on leftover arrows so this ensures more robust error handling.
2016-11-27 20:14:43 +01:00
Major Cooke
167cb28563 Added GetProximity(classname, distance, flags, ptr).
- Behaves similarly to A_CheckProximity but returns the count of classname instead of true/false.

# Conflicts:
#	wadsrc/static/actors/actor.txt
2016-07-30 00:26:55 +02:00
MajorCooke
41414830a5 - Fixed: A_Warp never properly positioned actors on floors, if they wound up in or on one 2016-07-24 01:02:21 +02:00
MajorCooke
9df65f73fc Localized the input checker into P_Thing_CheckInputNum now called by both ACS and DECORATE.. 2016-06-20 09:41:46 -05:00
Christoph Oelckers
1703842a94 - fixed some issues with teleport fog:
* many calls didn't use TELEFOGHEIGHT, mostly those coming from external code submissions that never were tested on anything but Doom. Addressed by adding this value inside P_SpawnTeleportFog and making the distinction between projectiles and non-projectiles from P_Teleport also part of this function.
* there were still a few places which spawned the teleport fog directly, skipping all the added features of P_SpawnTeleportFog.
2016-06-06 10:48:40 +02:00
Christoph Oelckers
8a08fb2f6a - fixed nullptr/bool mixup. 2016-06-04 20:52:56 +02:00
Benjamin Moir
6633e41cca added CheckProximity to ACS 2016-05-29 12:38:37 +02:00
Christoph Oelckers
ef98757c7c - replaced finesine for texture warping with a smaller custom table, based on the old 2005 FP code, but fixes the generation of the sine table.
- removed all remnants of finesine and deleted tables.c and tables.h.
2016-04-28 15:59:37 +02:00
Christoph Oelckers
db86385cf6 - removed STACK_ARGS.
The only reason this even existed was that ZDoom's original VC projects used __fastcall. The CMake generated project do not, they stick to __cdecl.
Since no performance gain can be seen by using __fastcall the best course of action is to just remove all traces of it from the source and forget that it ever existed.
2016-04-11 10:46:30 +02:00
Christoph Oelckers
dabed04d2a - floatification of p_3dfloors, p_3dmidtex and p_acs.cpp plus some leftovers.
- removed all references to Doom specific headers from xs_Float.h and cmath.h.
2016-03-26 12:36:15 +01:00
Christoph Oelckers
fb8e03d5eb - floatified FLineOpening.
- some smaller fixes.
2016-03-25 18:43:37 +01:00
Christoph Oelckers
1125101b37 - floatified AActor::Prev plus the stuff using it.
- rewrote some coordinate functions in AActor to use real float math instead of converting back and forth between float and fixed.
2016-03-25 16:25:25 +01:00
Christoph Oelckers
21340c6eba - floatified the rest of thingdef_codeptr.cpp and got rid of the remaining fixed_t and angle_t parameters in VM-accessed function. The VM should now be free of those types completely. 2016-03-25 12:57:22 +01:00
Christoph Oelckers
7c87479eea - parameter rework of several spawning functions. 2016-03-23 13:31:12 +01:00