Commit graph

250 commits

Author SHA1 Message Date
Shiny Metagross
e827e9b086 TArrays to TObjPtr
- Made the 2 TArrays into a class called DActorModelData.
- Removed the skinindex and now just uses one index
- Replaced a bunch of nullptr for modelDef checking with NAME_None
- Added some garbage cleanup to A_ChangeModel itself, as well as removing memory of modelData that is no longer needed
- Attempted serialize code, putting up for review
2022-07-22 17:11:59 +02:00
Shiny Metagross
5abadd3aab A_ChangeModeldef
-Added A_ChangeModelDef
A_ChangeModel(modeldef, modelpath, model, modelindex, skinpath, skin, skinid, flags)

This can change the modeldef, model and skins of an actor.

Currently, modelindex and skinindex accept indices from 0-15.

An actor MUST have a modeldef in order to use this function, either defined from modeldef, or given one through the modeldef parameter. You can pass "" to use the same modeldef. Likewise, passing "" for model or skin will just revert to the default model.

Available flags:
CMDL_WEAPONTOPLAYER - If used on a weapon, this instead change's the model on the player instead.

One issue I am aware of right now is that clearing a model by "" sort of works but is buggy. For now you can just manually set the model back using the names explicitly. However, I am stumped and I think getting more eyes on it would help.
2022-07-22 17:11:59 +02:00
Christoph Oelckers
ef8dd4d01e - fixed and consolidated artifact check in cheat code. 2022-07-15 07:56:22 +02:00
Christoph Oelckers
a952d0f36a -let A_FireProjectile pass through the second return value of SpawnPlayerMissile. 2022-07-14 07:59:52 +02:00
Christoph Oelckers
e1c458ab2f - fixed PoisonCloud's looping animation count. 2022-07-14 07:54:19 +02:00
Christoph Oelckers
b719ab53f8 - weapons are not artifacts. 2022-07-14 00:12:20 +02:00
Christoph Oelckers
a847dacaaa - fix scale members in actor.zs 2022-07-12 16:56:56 +02:00
Christoph Oelckers
aae1d1439a - reverted AActor::scale to a DVector2.
This was causing comparison precision issues with existing script code.
2022-07-11 12:20:34 +02:00
Christoph Oelckers
2397b9c117 - missed a ZScript declaration. 2022-06-16 08:23:09 +02:00
RaveYard
f9bf6f9311 Implement FVector ZScript for Actor Scale 2022-06-12 17:57:44 +02:00
Blue Shadow
d862bf4347 - added FailSound property to PuzzleItem 2022-06-12 17:26:18 +02:00
Major Cooke
d5e448671d Added LightLevel.
- Setting it to any value > -1 will override the sector's light level.
2022-05-31 21:00:31 +02:00
nashmuhandes
f235dcc38e Squashed commit of the following:
commit 553c4c12abd15e5f8fa02496ccfde81bdfdb53b0
Merge: cb03de5d2 add4ff12a
Author: nashmuhandes <nashbackslash@gmail.com>
Date:   Mon Feb 14 18:55:52 2022 +0800

    Merge branch 'master' of https://github.com/coelckers/gzdoom into ActorFallAndSink

commit cb03de5d2fdcba8a32b83be32579be935c8b6600
Author: nashmuhandes <nashbackslash@gmail.com>
Date:   Tue Jan 25 12:54:33 2022 +0800

    Re-add WaterDepth to the custom namedef file

commit 8d1ff3c16018dd7c73c8950aa4c51f2bc0207837
Merge: f201e6307 a9eaae074
Author: nashmuhandes <nashbackslash@gmail.com>
Date:   Tue Jan 25 12:52:57 2022 +0800

    Merge branch 'master' of https://github.com/coelckers/gzdoom into ActorFallAndSink

    # Conflicts:
    #	src/common/engine/namedef.h

commit f201e630706fc0ea7628b8a32bd5d88afb712208
Author: nashmuhandes <nashbackslash@gmail.com>
Date:   Sun Jan 16 20:45:27 2022 +0800

    Fix compile error (MAX() -> max())

commit fe292ebd4312afe34b1e35e4c1eafba0dc168920
Merge: 3f9150c4e 12ed24d06
Author: nashmuhandes <nashbackslash@gmail.com>
Date:   Sun Jan 16 20:37:58 2022 +0800

    Merge branch 'master' of https://github.com/coelckers/gzdoom into ActorFallAndSink

    # Conflicts:
    #	src/playsim/p_mobj.cpp

commit 3f9150c4eae1c5c5510e8f9b1c4bfaab46a96b8f
Author: nashmuhandes <nashbackslash@gmail.com>
Date:   Sat May 29 05:32:54 2021 +0800

    - Implement virtual Actor.FallAndSink for scriptable falling and water physics
    - Added Actor.WaterDepth to retrieve how submerged and actor is, in map units

    Original work credited to "gzdoomthrowaway"
2022-05-31 18:57:38 +02:00
Major Cooke
748156c846 Optimized CanCrossLine.
- Remove P_PointOnLineSide check
- Made CanCrossLine opt-in by requiring the CROSSLINECHECK flag.
2022-05-31 10:46:06 +02:00
Major Cooke
5afd14fd4d Added a vector to CanCrossLine to indicate the next position the actor will be in if the move succeeds. 2022-05-31 10:46:06 +02:00
Major Cooke
b5b2dd0903 Added CanCrossLine virtual for actors.
- Called last after all other line checks occur. Returning false means the actor cannot cross that line.
2022-05-31 10:46:06 +02:00
Sally Coolatta
a98c1efc26 Add WorldOffset field
Adjusts the thing's 3D position on render side. This allows for adjusting a thing's visual position without impacting their hitbox.

# Conflicts:
#	src/playsim/p_mobj.cpp
2022-05-31 10:14:32 +02:00
Major Cooke
31fa78d7c9 Added the following GL Light flags:
- `DontLightOthers`: Acts as the inverse of `DontLightSelf`, where it won't light actors that aren't the owner.
- `DontLightMap`: The light doesn't affect the map.
2022-05-31 09:12:59 +02:00
Christoph Oelckers
7ba2585490 - exclude keys from ‚artifact‘ cheats 2022-05-24 00:01:51 +02:00
Rachael Alexanderson
f87c7b538a - add sv_ammofactor to change the skill adjustment for ammo 2022-05-18 15:09:13 -04:00
Christoph Oelckers
4b5431a81d - fixed radius of BossBrain actor 2022-05-09 00:00:28 +02:00
Christoph Oelckers
c855ed90ea - made friendlyseeblocks writable.
There’s really no need for this to be read-only.
2022-04-29 00:33:42 +02:00
Christoph Oelckers
519ecbe8eb - added Get/SetAmmoCapacity ZScript functions 2022-04-29 00:12:51 +02:00
Christoph Oelckers
05260d8e8a - don't let "give weapons" hand out abstract weapons. 2022-04-16 22:19:38 +02:00
Rachael Alexanderson
36245ae598 - allow artifacts that do not automatically activate to be given by the 'give artifacts' cheat 2022-04-11 15:59:20 -04:00
Lippeth
7830033722 - added vertical bullet spread relative to ssg 2022-04-09 22:46:20 +02:00
Rachael Alexanderson
a245e4faad - remove default lost soul translucency 2022-03-08 10:57:48 -05:00
Rachael Alexanderson
36629d2f80 - revert the previous two commits for now - needs further optimization and testing 2022-02-23 06:00:14 -05:00
Major Cooke
992141d8e3 Added a vector to CanCrossLine to indicate the next position the actor will be in if the move succeeds. 2022-02-23 05:20:09 -05:00
Major Cooke
bb862098ea Added CanCrossLine virtual for actors.
- Called last after all other line checks occur. Returning false means the actor cannot cross that line.
2022-02-23 05:20:09 -05:00
Rachael Alexanderson
c926b7533f - play both land and grunt sound if not the same, even if grunted (emulates pre-virtual behavior) 2022-02-17 01:36:38 -05:00
Christoph Oelckers
e6184ccb96 - silence some warnings. 2022-02-14 20:05:42 +01:00
Rachael Alexanderson
64ee08d80b - fix: player landing sound was not properly playing, error in morph logic check 2022-02-14 10:17:52 -05:00
Rachael Alexanderson
add4ff12ac - virtualize player landing on thing sound 2022-02-14 08:07:10 +01:00
Rachael Alexanderson
410c35b942 Merge commit 'refs/pull/1508/head' of https://github.com/coelckers/gzdoom 2022-01-24 12:30:59 -05:00
Major Cooke
4e8d59951b Added A_SetViewPos(Vector3 Offset, int Flags = -1)
- Offset: The offset from the actor's view to move the camera about.
 - Flags: (Default is -1, which means don't change flags)
  - VPSF_ABSOLUTEOFFSET: Don't include actor angles in calculation.
  - VPSF_ABSOLUTEPOS: Position is absolute, and disables all transformations. Modders are responsible for being portal aware!

Notes:
- `ViewPos` in Actor will be `null` until A_SetViewPos is called for the first time.

**Issues:**
- Hiding sprite while in portal incomplete.
2022-01-24 12:00:33 -05:00
Xaser Acheron
bfb79e5b32 Merge branch 'master' into feature_weaponscale 2022-01-23 20:01:59 -06:00
Xaser Acheron
e9c86017e4 apply WeaponScaleX/Y to all PSprites on a weapon 2022-01-23 19:59:06 -06:00
Xaser Acheron
0d8d4a2ad7 fix mbf21 A_FindTracer fov cone being twice as big as intended 2022-01-18 08:06:29 +01:00
Xaser Acheron
efbb31fa39 add SMF_PRECISE flag to mbf21 A_SeekTracer, for accuracy 2022-01-18 08:06:29 +01:00
Xaser Acheron
40a5c4c1c5 fix mbf21 A_SeekTracer not working (arg type shenanigans) 2022-01-18 08:06:29 +01:00
Xaser Acheron
a4b124bff8 fix mbf21 A_ConsumeAmmo ignoring explicit amount arg if weapon's ammopershot field set 2022-01-18 08:06:29 +01:00
Xaser Acheron
cf04ebb774 fix MBF21 A_WeaponProjectile spawn position 2022-01-18 08:06:29 +01:00
Christoph Oelckers
be103bd9dc - fixed: the powerup item for respawn invulnerability was never given to the player. 2022-01-07 00:39:22 +01:00
Christoph Oelckers
32de663210 - fixed MBF21's A_SeekTracer.
This cannot directly call A_SeekerMissile because that has more parameters. It now maps to a wrapper that takes care of these.
2022-01-07 00:33:56 +01:00
drfrag
2945e10a0e - More wrong tracer flags in ActorMover. 2021-12-24 16:37:58 +01:00
drfrag
395b5695ad - Fixed: ActorMover was not changing its tracer's flags. 2021-12-23 21:28:27 +01:00
Rachael Alexanderson
4db7a20f7a - apply clearscope to ApplyDamageFactor as well 2021-11-18 21:29:08 -05:00
Xaser Acheron
0b93aef776 add WeaponScaleX/WeaponScaleY properties for applying global scaling to a weapon's PSprites 2021-11-14 23:21:07 -06:00
Rachael Alexanderson
01b825b181 - apply clearscope for ApplyDamageFactor - https://forum.zdoom.org/viewtopic.php?f=15&t=73830 2021-11-13 11:07:42 -05:00
Marisa Kirisame
d5ad8b28ec PreTravelled virtual for player and inventory. 2021-10-15 17:37:19 +02:00
Marisa Kirisame
7c591cd0e9 Allow map markers to scale relative to automap zoom. 2021-10-08 16:03:51 +02:00
Christoph Oelckers
3c961a2aa2 - avoid multiple Dehacked mappings to the same function.
Due to some MBF21 related changes these would cause interference.
Instead the two affected functions, A_NailBomb and A_RadiusDamage are now separate script functions that just call A_Explode with the correct parameters.
2021-10-03 18:16:37 +02:00
Blue Shadow
f517d33ecf - fixed A_Punch having a short attack range (take 2).
The previous attempt to fix this did so partially; the range was fixed for AimLineAttack, but not for LineAttack, too.
2021-10-01 20:13:51 +02:00
Blue Shadow
3b31dda6b8 - resolved a VM abort upon morphing while the tome of power is active 2021-09-24 13:34:35 +02:00
Christoph Oelckers
08baad6e21 - fixed melee attack disance being off after adding MBF21 support. 2021-09-17 22:59:30 +02:00
Christoph Oelckers
fdf879167c - fixed bad parameter order in MinoraurSlam. 2021-09-16 07:45:09 +02:00
Christoph Oelckers
9aeb78ae97 - marked several invisible controller things to not show on the automap with the scanner powerup.
am_cheat will still show them.
2021-09-12 13:18:40 +02:00
Christoph Oelckers
73f73cdf7c - added a null check to CheckWeaponChange. 2021-08-12 20:28:04 +02:00
Christoph Oelckers
55520ed7d0 - fixed exploding barrel animation duration. 2021-08-10 18:57:31 +02:00
Kaelan
65d9d83ddd Add 'BF_ONLYVISIBLETHINGS' Flag to A_Blast
Adds 'BF_ONLYVISIBLETHINGS' flag to A_Blast, and enables A_Blast to only affect actors that have a line of sight to calling actor.
2021-07-21 06:48:50 -04:00
Christoph Oelckers
15a0baadd6 - fixed ZScript compilation. 2021-07-08 10:04:47 +02:00
Christoph Oelckers
fbf5b9f2d7 - MBF21: fix for missile flag checks. 2021-07-06 10:35:44 +02:00
Christoph Oelckers
2d63974d3a - fixed: splashes need the MOVEWITHSECTOR flag. 2021-07-02 08:16:29 +02:00
Christoph Oelckers
ff129b26d1 - MBF21: added the code generator for the new functions. 2021-07-01 17:42:24 +02:00
Christoph Oelckers
483c1f6dcf - MBF21: added the weapon functions. 2021-07-01 17:42:24 +02:00
Christoph Oelckers
c700682a36 - MBF21: ported the code pointers to ZScript.
So far it's just the functions and some initial changes to Dehacked's parser. None of this is usable yet.
2021-07-01 00:53:15 +02:00
Christoph Oelckers
1a0398ae59 - MBF21: new weapon flags.
Except for NOAUTOSWITCHTO all remappings to existing features.
2021-06-30 17:19:38 +02:00
Christoph Oelckers
b043a5a5de - add melee range support to A_Saw and A_Punch.
This is merely for MBF21 support and not a recommended editing feature! There are better ways to define the range of a player's attack!
2021-06-30 14:48:13 +02:00
Christoph Oelckers
9b3782ea0f - MBF21: remaining actor properties. 2021-06-29 22:32:38 +02:00
Christoph Oelckers
e2e8ec8b3e - MBF21: implemented thing flags. 2021-06-29 21:08:58 +02:00
Christoph Oelckers
bca8d01ab3 - MBF21: infighting groups. 2021-06-29 01:34:14 +02:00
Christoph Oelckers
dc7ba3778d - fixed explosive damage radius for clericflame.
This was fixed before but must have gotten lost somehow...
2021-06-07 07:46:13 +02:00
nashmuhandes
75e18cca3c Fixed wrong parameter type passed into TryMove here 2021-05-28 09:10:43 +02:00
Chronos Ouroboros
f19f825ccb - fix DaggerAlert using FindState incorrectly. 2021-05-28 00:34:04 -03:00
Dasperal
8c75c23822 - Fixed bug with BishopPuff moving in wrong direction 2021-05-23 19:42:38 +02:00
nashmuhandes
aeaa7f21c7 Add some new optional parameters to A_SprayDecal:
- useBloodColor: when true, the sprayed decal will be shaded to match the calling actor's blood color.
- decalColor: when defined, the sprayed decal will be shaded to the specified color. Note that this will take precedence over useBloodColor. It is recommended to use only one parameter.

Note that due to how decals work in the engine, the "decalColor" parameter will only properly colorize the decal if the image is grayscale.
2021-05-22 10:20:52 -04:00
Cacodemon345
9a860ae445 Account for portals when spawning missiles in A_FireBullets/A_CustomBulletAttack
This also gives the caller the information whether the LineAttack
hitscan passed through a portal regardless of whether it actually hit an
actor or not as a nice bonus.
2021-05-20 19:42:29 +02:00
alexey.lysiuk
98a9729da2 - fixed return type of Actor.GetCVarString()
https://forum.zdoom.org/viewtopic.php?t=72334
2021-05-20 12:01:52 +03:00
Christoph Oelckers
a3da915812 - gave the Raven invulnerability items the BIGPOWERUP flag to ensure proper respawning behavior. 2021-05-19 19:46:04 +02:00
Christoph Oelckers
28dab3889b - moved the handling of ending PowerWeaponLevel2 into PlayerPawn.Tick and restored the immediate weapon switch.
This got changed because switching weapons in EndPowerup is not safe - this can be called from weapon states where the player can end up with a different weapon being active than the one running the state.
The actual weapon switch has to be delayed until the state processing has ended.
2021-05-19 17:59:44 +02:00
Christoph Oelckers
97b8c0ccfb Revert "- fixed some uses of postincre,ment/decrements on narrow types."
This reverts commit 668f8f2cf6.

Revert "- added a proper error message when '--' or '++' gets used on 8 or 16 bit values."

This reverts commit a94f5dd1b3.

None of this was necessary - the triggered assert was bogus and had to be removed.
2021-05-17 18:13:30 +02:00
Christoph Oelckers
668f8f2cf6 - fixed some uses of postincre,ment/decrements on narrow types.
THe VM has no opcode for this, all these places produced code with undefined behavior.
2021-05-17 12:42:22 +02:00
Christoph Oelckers
a94f5dd1b3 - added a proper error message when '--' or '++' gets used on 8 or 16 bit values. 2021-05-17 12:27:27 +02:00
Christoph Oelckers
ebbc94280e - fixed: The PrisonPass's TryPickup method did not properly report successful pickup. 2021-05-17 11:51:06 +02:00
Christoph Oelckers
cf3c573222 - give the first 16 DEHEXTRA states proper content.
No idea where this BLD2 stuff came from...
2021-05-07 23:03:46 +02:00
Blue Shadow
55ce0510c2 - added a A_SetFriendly function 2021-04-04 08:57:56 +02:00
sgrunt
0c776e3acd Move the modified behaviour to a new "resetvel" parameter 2021-03-19 20:12:20 +01:00
Blue Shadow
acd553aa6f - account for KEEPDEPLETED flag when destroying items with InterHubAmount of 0 upon leaving a level 2021-03-19 20:10:25 +01:00
nashmuhandes
229b065289 Add missing tag for Strife's KneelingGuy. 2021-03-18 19:11:37 +01:00
nashmuhandes
43937e4338 Add missing tag for the sub-Entity bosses. This was missed in the previous commit. 2021-03-15 22:05:25 +01:00
nashmuhandes
b28e5cb917 Add GetCharacterName() to retrieve an NPC's name as defined in its dialogue script, if it exists. Otherwise it will just return the same output as GetTag(). 2021-03-15 21:31:16 +01:00
nashmuhandes
45c1cc8c08 Add tag properties to Strife's enemies. 2021-03-15 20:10:49 +01:00
nashmuhandes
c7edb9d22f Add a null check in PlayerPawn::CheckFOV 2021-02-28 20:01:59 +01:00
Xaser Acheron
41ab1e4994 adjust defaults for DEHEXTRA states to match other ports:
- sprite is TNT1
- duration is -1
- next frame is itself
2021-02-24 22:46:50 +01:00
Marisa Kirisame
44b4359ba5 Add alternate "Full" mode for PowerIronFeet that prevents leaky damage. 2021-01-16 17:09:57 +01:00
Rachael Alexanderson
c28e53511c - fix bonuscount as uint 2021-01-05 19:48:32 -05:00
Rachael Alexanderson
e6c71c2f0c - reimplement fix #1267 from @drfrag666 differently - fix damagecount overflow 2021-01-05 11:09:19 -05:00
Player701
a6a02a2a6c - Fixed: RandomSpawner spawning another RandomSpawner spawning a missile could result in the second RandomSpawner being erroneously destroyed. 2020-12-02 15:30:23 +01:00
Christoph Oelckers
e19b1b2ee7 - fixed: IceGuyFX2 set its owner too late. 2020-11-25 07:37:17 +01:00