Commit graph

637 commits

Author SHA1 Message Date
Christoph Oelckers
8fd08c2acc - removed debug code 2015-02-26 15:46:01 +01:00
Randy Heit
5aba252b87 Simplify NoDelay implementation
- All NoDelay needs to do is call the current state's function. Calling
  SetState() is excessive.
2015-02-24 20:37:58 -06:00
Randy Heit
a64ebc720b Fix assert 2015-02-20 20:35:32 -06:00
Randy Heit
8e0151b4c1 Add FRandomPick
- This is RandomPick but for floats. Considering what RandomPick
  translates into in the scripting branch, I hope I don't regret not using
  type inference on RandomPick instead of creating a new keyword.
2015-02-20 17:52:52 -06:00
Randy Heit
173dbd6bce Add FxFloatCast
- The master branch really didn't have this already?
2015-02-20 17:48:48 -06:00
Randy Heit
2d4f02c560 Merge branch 'MajorCooke-quakeex' 2015-02-18 15:01:45 -06:00
MajorCooke
0f4bca8607 - Added SXF_TRANSFERROLL. 2015-02-14 16:51:05 -06:00
MajorCooke
7050d03222 Added A_QuakeEx(intensity x, y, z, duration, damrad, tremrad, sound, flags)
- Unlocks the full potential of using quakes, including the Z axis. Each intensity applies to X/Y/Z planes whenever a player is experiencing it.
- Flags:
- QF_RELATIVE - Adjusts the quaking of the camera to go in the direction its aiming (X: forward/backward. Y: Left/right.)
- Plans for including pitch will be implemented in the future for the Z axis with relativity.
2015-02-14 15:58:39 -06:00
Randy Heit
79791629ec Add missing break to FxGlobalVariable::Resolve()
- Not like it matters much when there are no global variables of types
  float, fixed, or angle.
2015-02-08 21:01:49 -06:00
Randy Heit
a063b48d7a Add a needed break in FxAbs::Resolve()
- Fixed: FxAbs could not resolve floating point constants because it fell
  through to the error case.
2015-02-08 20:56:30 -06:00
Randy Heit
fd7ed2bc25 Undo most of ZzZombo's changes
- "If it ain't broke, don't fix it."
- Some of the changes were downright wrong and some were pointless, so undo
  everything that doesn't look like an actual improvement.
2015-02-08 20:44:18 -06:00
Christoph Oelckers
7c567979d9 Merge branch 'transferspriteframe' of https://github.com/MajorCooke/zdoom 2015-02-07 17:13:21 +01:00
MajorCooke
b37a98689a - Added SXF_TRANSFERSPRITEFRAME. Now it's possible to make starting frames that start with "####" "#" 0 in Spawn.
- Fixed a compile warning with FAF_NODISTFACTOR.
2015-02-07 10:04:33 -06:00
Christoph Oelckers
4e2763e5fa Merge branch 'master' of https://github.com/ZzZombo/zdoom-modified 2015-02-07 16:45:44 +01:00
ZzZombo
322742d4b1 - Fixed various instances of unused variables, accessing arrays out of bounds, initialization of non-primitive members in constructor's body, dead code, passing parameters by value instead of reference, usage of uninitialized variables, as reported by cppcheck. 2015-02-07 23:35:23 +08:00
Edward Richardson
de4097cc7b Added INVENTORY.TRANSFER
- INVENTORY.TRANSFER allows transferring all owned inventory to a new
owner on pickup.
2015-02-05 14:52:52 +13:00
Randy Heit
b69edbbec1 Redo commit a4c07a9
- Line endings are inconsistant in this file, but at least the commit
  doesn't touch the whole file.
2015-01-29 19:50:52 -06:00
Randy Heit
d828173ce3 Revert "- fixed: Since A_Give/TaketoChildren/siblings use the same code as A_Give/TakeInventory but do not use the third parameter this must be ignored by the code. This is merely a band-aid fix, because this problem doesn't exist in the same form in the scripting branch."
This reverts commit a4c07a9ee3.

- This commit touched every line of thingdef_codeptr.cpp, which would make
  merging it into the scripting branch a pain in the ass.
2015-01-29 19:30:26 -06:00
Christoph Oelckers
a4c07a9ee3 - fixed: Since A_Give/TaketoChildren/siblings use the same code as A_Give/TakeInventory but do not use the third parameter this must be ignored by the code. This is merely a band-aid fix, because this problem doesn't exist in the same form in the scripting branch. 2015-01-25 20:15:58 +01:00
Christoph Oelckers
d1cca79c31 - Use SpawnHealth() when calling A_ResetHealth. 2015-01-23 20:29:38 +01:00
MajorCooke
301c061ec3 - Added pointer for A_SetRoll. 2015-01-23 10:24:23 -06:00
MajorCooke
19b43d4752 - Added A_ResetHealth(ptr). Defaults to AAPTR_DEFAULT (the action caller).
- Added pointers to the following functions, all of them set to AAPTR_DEFAULT:
- A_SetAngle
- A_SetPitch
- A_SetScale
- A_SetSpeed
- A_ScaleVelocity
2015-01-23 09:26:34 -06:00
Christoph Oelckers
ae282eea53 Merge branch 'sethealthredux' of https://github.com/MajorCooke/zdoom 2015-01-22 13:59:59 +01:00
MajorCooke
4fd87a1ce9 - Redid A_SetHealth.
- This function will not take the actor's health below 1, and any attempts to do so will simply set it to 1 in its place.
2015-01-20 22:54:30 -06:00
Benjamin Moir
6dff8da503 Added +NODECAL and +FORCEDECAL actor flags
Added FHF_NOIMPACTDECAL for LineAttack
2015-01-20 12:05:00 +10:30
MajorCooke
105a62cc20 - Added pointer field to A_ChangeVelocity.
- Defaults to AAPTR_DEFAULT, otherwise known as the calling actor.
2015-01-19 14:54:20 -06:00
Randy Heit
b2abf224b5 Save function name for error message in ParseStates()
- The error "You cannot pass parameters to..." used the most recent token,
  which was always ( and not the function name. (Note that this was
  already fixed in the scripting branch, so this is probably going to be a
  conflict. Meh.)
2015-01-06 19:31:00 -06:00
MajorCooke
643d37ab7c - Added A_SetFloatBobPhase(int). Takes a number between 0 and 63. If it's outside that range, it does nothing.
- Added A_Warp flags:
- WARPF_BOB: Gets the bob offset of actor pointer with the FLOATBOB flag.
- WARPF_MOVEPTR: The function is inversed to move the pointed actor with applied flags, but only the original caller will make the success/jump.
2015-01-06 11:55:41 -06:00
nashmuhandes
2b12db153b New functions to manipulate an actor's roll.
- DECORATE functions: A_SetRoll code pointer.
- DECORATE expressions: "roll" variable.
- ACS functions: SetActorRoll, GetActorRoll.
2015-01-05 17:51:32 +08:00
Blue-Shadow
ba3988290c Added an option to A_Check[SightOr]Range to be able to perform a 2D-based distance check. 2015-01-01 22:16:51 +03:00
Christoph Oelckers
c57cc91d7c - cleaned up the RipLevel logic a bit to be less confusing. 2014-12-31 10:13:15 +01:00
MajorCooke
4ddfd0f46a - Added 3 new properties and 3 functions to control them.
- Rippers will rip through anything with an equivalent ripper level, or if their level is between or on the min and max ranges.
- If no min or max is defined, it simply checks if the monster's ripper level is lower than the missiles.
- Functions: A_SetRipperLevel(int level), A_SetRipMin(int min), A_SetRipMax(int max)
- Properties: RipperLevel, RipLevelMin, and RipLevelMax.
- RipperLevel: Applicable to monsters and projectiles.
- RipLevelMin and RipLevelMax are only useful on monsters.
- By default, all are 0.
2014-12-30 19:59:31 -06:00
MajorCooke
f2551dceda - Corrected the species checking. 2014-12-24 17:49:58 -06:00
Randy Heit
3fb9e754f1 Rename 'Pick' to 'RandomPick'
... because 'pick' is way too generic a name to spend a keyword on.
2014-12-23 21:46:27 -06:00
rheit
bfb94f13d2 Merge pull request #198 from MajorCooke/filters
- Added name filtering to all A_Damage/Kill/Remove functions.
2014-12-23 21:42:31 -06:00
Randy Heit
d7d022144e Call A_Face() directly from A_CustomBullletAttack 2014-12-23 21:30:24 -06:00
Randy Heit
c13f1551e6 Merge branch 'custommissileptr' of git://github.com/MajorCooke/zdoom into MajorCooke-custommissileptr 2014-12-23 21:27:05 -06:00
Randy Heit
2b323d01ed Reorder pick parsing to require one parameter.
- This function is pointless without any parameters, so don't allow that.
2014-12-21 21:22:14 -06:00
MajorCooke
91bfe4cceb - Added pointers for A_CustomMissile and A_CustomBulletAttack. 2014-12-21 12:29:19 -06:00
MajorCooke
2c7a3f2eba - Optimized DoDamage and DoKill.
- Do a filter and species check first to save time.
- Added DMSS/KILS/RMVF_EITHER, which means if the actor is of type or species, it counts.
- A_DamageTarget(20,"Normal",DMSS_EITHER,"DoomImp","CyberdemonSpecies")
- This affects actor DoomImp, and anything that's of species CyberdemonSpecies.
- Added a little more documentation via comments.
2014-12-21 10:38:51 -06:00
MajorCooke
5a472e815b - Added species checking.
- Added two more flags for each of the functions, EXFILTER and EXSPECIES.
- Stands for "exclude filter/species" and makes the function not take them into account.
- Cleaned up the code and placed all the checking in their own subfunctions.
2014-12-21 09:31:24 -06:00
MajorCooke
c168761eda - Couple additional fixes:
- The wiki said the minimum distance to teleport defaults to 0, actor.txt on the other hand said otherwise. I was wondering why it was still broken somewhat...
- Prevent stickiness from happening, a.k.a. getting stuck in ceiling or floor and letting the engine unstick the actor. This caused velocity loss.
2014-12-20 22:51:43 -06:00
MajorCooke
e5a41a1358 - Added name filtering to all A_Damage/Kill/Remove functions.
- A_DamageChildren(20,"Normal",0,"DoomImp") for example will only target actors of DoomImp specifically.
2014-12-20 16:57:00 -06:00
Christoph Oelckers
2a53ebb6b9 - fixed state checking in A_Teleport. 2014-12-20 14:48:22 +01:00
Christoph Oelckers
a19f0219c5 Merge branch 'master' of https://github.com/Blue-Shadow/zdoom 2014-12-20 11:36:10 +01:00
MajorCooke
86b0065c0b - Added a multitude of flags for A_Teleport.
- TF_KEEPVELOCITY: Keep the velocity after teleporting.
- TF_KEEPANGLE: Don't use the special spot's angle.
- TF_USESPOTZ: Normally, this function
- TF_NOSRCFOG: Don't leave fog at the previous location.
- TF_NODESTFOG: Don't leave fog at the arriving location.
- TF_USEACTORFOG: Use the actor's TeleFogSourceType and TeleFogDestType properties.
- TF_NOJUMP: Don't require or cause a jump. In this case, put 0 (or "") in for the jump destination when using CustomInventory items to teleport actors around.
2014-12-19 12:37:02 -06:00
Blue-Shadow
a150e0686c Added 'lifestealmax' parameter and STEALARMOR flag to A_Saw and A_CustomPunch. 2014-12-18 23:05:59 +03:00
MajorCooke
dcab57b236 - Allow NULL.
- Instead of reverting the teleport fog back to defaults, if there wasn't a class or if the class failed to be found, set it to NULL.
- P_SpawnTeleportFog will not spawn anything if it's NULL.
- Added "" so it can be used to mean 'don't change anything' for A_SetTeleFog.
2014-12-18 09:19:39 -06:00
MajorCooke
93ca8502dd - Rewrote a bunch of things for stability. 2014-12-17 21:47:00 -06:00
MajorCooke
160ded99a9 - A few more checks to be safe. 2014-12-17 17:42:16 -06:00
MajorCooke
b255e5d67d - Thought I was forgetting something. 2014-12-17 17:12:33 -06:00
MajorCooke
30acb72006 - Added per-actor teleport fog modifications.
- New properties include TeleFogSourceType and TeleFogDestType.
- TeleFogSourceType is the fog left behind where the actor teleported away from.
- TeleFogDestType is the fog the actor sees when it arrives at its destination.
- Added A_SetTeleFog(<oldpos>,<newpos>) -- oldpos sets TeleFogSourceType, newpos sets TeleFogDestType.
2014-12-17 16:11:07 -06:00
MajorCooke
465d9ab89a - Added flags for A_CheckLOF:
- CLOFF_SETTARGET | CLOFF_SETMASTER | CLOFF_SETTRACER
- An actor that causes A_CheckLOF (and only an actor) to succeed will set the intercepting actor as its target, master, and/or tracer, respectively.
2014-12-15 14:50:35 -06:00
Christoph Oelckers
6410428715 - fixed: FxPick leaked the array's content. Also did some cleanup on FxPick code. 2014-12-14 12:03:55 +01:00
MajorCooke
3f3aab42f1 - Pick can now hold unlimited numbers to choose from.
- I.e. pick(1,4,12,16)
2014-12-14 04:45:39 -06:00
MajorCooke
785f72d6eb - Renamed RClamp to Pick. 2014-12-13 15:59:27 -06:00
MajorCooke
8c5a8c54f0 - Added rclamp(<int>,<int>).
- Usable for DECORATE expressions. Chooses one of the two numbers placed in the field.
2014-12-13 15:08:18 -06:00
Christoph Oelckers
6afe9cc048 Merge branch 'hitpointer2' of https://github.com/MajorCooke/zdoom
Conflicts:
	src/actor.h
	src/thingdef/thingdef_data.cpp
2014-12-10 11:48:32 +01:00
MajorCooke
533ae95933 - Added three missile impact pointer changing flags.
- HITTARGET, HITMASTER, and HITTRACER.
- A missile that dies hitting an actor will set this impacted actor as the new target/master/tracer, depending on specifications.
2014-12-09 12:30:14 -06:00
MajorCooke
e5340ad637 - Splitting the pull request in half.
- Added THRUREFLECT, MIRRORREFLECT, and AIMREFLECT. All require REFLECTIVE to work.
- THRUREFLECT prevents missiles from changing course if reflected, and takes precedence over all reflective flags.
- MIRRORREFLECT causes missiles to perform a direct 180 turn-around.
- AIMREFLECT turns the missile back to the original shooter, and does not slow the missile down.
2014-12-09 12:09:36 -06:00
Christoph Oelckers
b2452b806e - missed a return. 2014-12-08 12:01:20 +01:00
Christoph Oelckers
e6de24a7de - turned out that the recent change to allow cancelling a powerup blend through a powerup giver did not work well so now there's an explicit 'Powerup.Color none' to do it that works a bit differently. 2014-12-06 22:08:39 +01:00
Christoph Oelckers
fbe14d59bb - fixed: All powerup blend colors with an alpha of 0 were treated as 'has no color' for PowerupGivers. 2014-12-03 13:05:50 +01:00
MajorCooke
94f08aa593 - Added: Boolean to specify if A_Raise functions should perform CopyFriendliness based upon who raised it. By default, this is false. 2014-11-27 15:12:33 -06:00
MajorCooke
08570ec48e - Added flags for A_Fade functions:
- FTF_REMOVE: Removes the actor when the alpha hits a certain level.
- - A_FadeIn - 1.0
- - A_FadeOut - 0.0
- - A_FadeTo - Alpha target level reached
- FTF_CLAMP: Automatically fixes the alpha so it won't leave the range [0.0, 1.0].
2014-11-25 13:24:35 -06:00
alexey.lysiuk
06764c6aae Merge branch 'master' of https://github.com/rheit/zdoom into z_osx_clean 2014-11-15 13:35:29 +02:00
Christoph Oelckers
23bb12b0b8 Merge branch 'cpf_noturn' of https://github.com/edward-san/zdoom 2014-11-15 08:58:36 +01:00
Edoardo Prezioso
fd354dbe9a - Added CPF_NOTURN flag for A_CustomPunch. 2014-11-14 12:18:46 +01:00
MajorCooke
b54b18c8c5 -Added: CAUSEPAIN. Actors which deal damage (even if 0) while having this flag can cause other actors to trigger pain chances.
-Fixed: ALLOWPAIN should not trigger pain states if the damage is 0, but still allow for infighting to occur.
-Fixed: an unneeded logic call was processing damage modification when it was 0 to begin with.
2014-11-12 14:08:26 -06:00
alexey.lysiuk
fc8f260375 Merge branch 'master' of https://github.com/rheit/zdoom into z_osx_clean 2014-11-09 15:22:11 +02:00
Christoph Oelckers
22b5d0af8a Merge branch 'hotfix' of https://github.com/MajorCooke/zdoom 2014-11-09 12:13:13 +01:00
MajorCooke
87207bdb6d - Fixed: The mask didn't incorporate RGF_MISSILES, causing it to fail. 2014-11-09 00:16:10 -06:00
Edoardo Prezioso
8b85e6d00b - Port an empty version of 'A_FaceConsolePlayer'.
Hissies will be happy now.
2014-11-08 18:49:16 +01:00
Christoph Oelckers
c28c0b8f0b Revert "Backport 'A_FaceConsolePlayer' from zandronum."
This reverts commit eab971500b.

As Edward850 pointed out, this feature is broken by design and therefore completely useless.
2014-11-08 08:53:32 +01:00
Edoardo Prezioso
eab971500b Backport 'A_FaceConsolePlayer' from zandronum.
By Dusk, who authorized me to do this.
2014-11-08 00:31:16 +01:00
alexey.lysiuk
1074a031a2 Merge branch 'master' of https://github.com/rheit/zdoom into z_osx_clean 2014-11-02 16:00:53 +02:00
Christoph Oelckers
4c470ba5c1 Merge branch 'allowpain' of https://github.com/MajorCooke/zdoom 2014-11-01 17:43:39 +01:00
MajorCooke
2e085b2318 - Added ALLOWPAIN flag.
Monsters with this flag can enter pain states, regardless of
invulnerability or damage absorption.
- Fixed: god2 cheat wasn't being considered for drowning and thrusting.
2014-11-01 00:00:29 -05:00
MajorCooke
938b54ccb5 - Added TF_FORCED for A_Teleport. Forces the actor to move to the spot. 2014-10-31 15:51:15 -05:00
Christoph Oelckers
31611c17d5 - fixed RGF_NOSIGHT checking for A_RadiusGive. 2014-10-29 22:00:15 +01:00
MajorCooke
165d2887fd - Added: A_GiveToChildren
- Added: A_TakeFromChildren
- Added: A_GiveToSiblings
- Added: A_TakeFromSiblings
- Added the following flags for A_RadiusGive:
- RGF_NOSIGHT: Exclude sight check from distance.
- RGF_MISSILES: Missiles can take inventory items.
2014-10-29 14:01:31 -05:00
Christoph Oelckers
6073adbeef - renamed FULLMASS to DONTTHRUST. 2014-10-28 08:40:34 +01:00
MajorCooke
c01d1a8003 - Added DMSS_NOPROTECT.
Bypasses PowerProtection inventory items.
2014-10-27 22:29:10 -05:00
MajorCooke
f802d7a44c - Added +FULLMASS.
Actors will be excluded from damage/radius thrusting of all sorts by
explosions or damage of any kind. They will also never deal impact
damage to other enemies, nor will they damage themselves from being too
close to a wall.
2014-10-27 21:35:55 -05:00
alexey.lysiuk
d1c4215fb5 Merge branch 'master' of https://github.com/rheit/zdoom into z_osx_clean 2014-10-25 16:57:58 +03:00
MajorCooke
a19620968d - Follow-up of the previous commit.
- Cleaned up the DoDamage and DoKill functionality.
- Added DMSS_FOILBUDDHA and KILS_FOILBUDDHA.
2014-10-25 09:39:10 +02:00
MajorCooke
d1dc6fd59a - Added: BUDDHA and FOILBUDDHA.
- Fixed: mugshot didn't take the god2 cheat into account.
2014-10-25 09:39:00 +02:00
Christoph Oelckers
1c500cead6 - fixed: A_Respawn did not restore the flags6 and flags7 fields. 2014-10-25 01:27:34 +02:00
Christoph Oelckers
5ac7e4fc38 - added HARMFRIENDS flag. 2014-10-25 00:30:36 +02:00
Christoph Oelckers
b6f4862024 - fixed: A_Warp didn't initialize oldx/y/z in all situations. 2014-10-25 00:05:52 +02:00
John Palomo Jr
4496885366 Added Inventory.AlwaysRespawn flag. 2014-10-24 04:46:43 -04:00
alexey.lysiuk
25b808cd82 Merge https://github.com/rheit/zdoom into z_osx_clean 2014-10-12 15:19:11 +03:00
Christoph Oelckers
0f19356e24 Merge branch 'master' of https://github.com/MajorCooke/zdoom
Conflicts:
	wadsrc/static/actors/constants.txt
2014-10-12 08:43:46 +02:00
MajorCooke
f766a1ab38 - Added SXF_ORIGINATOR.
- Only useful for missiles.

By default, missiles cannot set themselves as the master when spawning
actors.
2014-10-11 16:15:42 -05:00
MajorCooke
47029a3efc DoKill bug
-Fixed: DoKill did not target 'killtarget' for missiles, causing crashes and making the function not work properly.
2014-10-07 11:33:08 -05:00
MajorCooke
f54a59fdf8 - Added JLOSF_CHECKTRACER for A_JumpIfTargetInLOS.
- CHECKTRACER doesn't need to be a missile or have the SEEKERMISSILE
flag.
2014-10-02 17:00:17 -05:00
MajorCooke
5030832df0 - Added DMSS_NOFACTOR for all A_Damage functions. 2014-10-02 11:48:07 -05:00
Christoph Oelckers
cfb623d517 Merge branch 'master' of https://github.com/MajorCooke/zdoom 2014-09-29 00:42:59 +02:00
MajorCooke
96c6e7d9bf Minor fix; didn't mean to include that flag check. 2014-09-28 08:20:27 -05:00
MajorCooke
43b86288c7 - Added A_Remove(int pointer, int flags).
- RMVF_MISSILES removes missiles.
- RMVF_NOMONSTERS ignores monsters.
- RMVF_MISC includes non-monsters and missiles.
- RMVF_EVERYTHING disregards all checks and remove it.

These flags now apply to the following in addition to the new function:

-A_RemoveTarget
-A_RemoveMaster
-A_RemoveTracer
-A_RemoveChildren
-A_RemoveSiblings
2014-09-28 08:15:00 -05:00