Commit graph

6677 commits

Author SHA1 Message Date
Leonard2
c4eafc1c38 DECORATE can now handle jump statements
break and continue were added but are not yet useable anywhere
This was made general enough so that loops and switch statements that accept breaks/continues can be done without much difficulty as well as goto statements with explicit labels if those are ever wanted
2016-07-30 00:26:41 +02:00
Major Cooke
dfed6ac1fb Added SpriteAngle and SpriteRotation properties.
- Includes four functions, A_SetSprite(Angle/Rotation) and GetSprite(Angle/Rotation).
- SpriteRotation offsets the angle of the sprite, allowing for actors to move backwards or sideways for example.
- SpriteAngle requires +SPRITEANGLE and sets the actor's sprite to the absolute rotation found at that angle. Overrides SpriteRotation once the flag is on.
2016-07-30 00:26:40 +02:00
Major Cooke
6ada8aa644 Fixed A_CopySpriteFrame not working under certain circumstances. 2016-07-28 15:55:49 -05:00
Leonard2
5907ff662d Added a new state that the weapon jumps to when it is lowered all the way and the player is currently dead
The state is undefined by default to preserve the original behavior of having the weapon layer deleted which modders can now avoid by defining it properly
2016-07-28 17:42:22 +02:00
Christoph Oelckers
759753eadc - replaced more copystrings with FString. 2016-07-28 09:06:49 +02:00
Christoph Oelckers
66006a5c14 - use an FString to handle the new message. 2016-07-28 08:54:51 +02:00
yqco
58a6d7df1f Added optional prompt argument to MENUDEF's SafeCommand 2016-07-28 08:41:55 +02:00
MajorCooke
3d9591229e Added A_CopySpriteFrame(from, to, flags)..
- Copies a sprite/frame from one actor pointer to another. Sprite and/or frame copying can be disabled with flags CPSF_NO<SPRITE/FRAME>.
2016-07-28 08:39:32 +02:00
Jordon Moss
c0eb8f3b96 Added KILL Script type and associated flags and GameInfo keyword.
This is different from the original "Death Scripts" idea. This tackles
some issues I've found with the original idea (now you can have as many
scripts as you want, not just global and actor-defined). Also takes care
of other complaints about the original idea and push request. Flags and
their use are in code comments.
2016-07-28 08:34:23 +02:00
MajorCooke
1322ef2449 Renamed NODEATHJUMP to NODEATHDESELECT. 2016-07-28 08:29:47 +02:00
Leonard2
797f3aec0a Added a weapon flag to ignore a player's input when dead
The reason this is not set by default is because before that anyone could call A_WeaponReady within their Deselect state which would have allowed players to fire even when dead
2016-07-28 08:29:46 +02:00
Leonard2
bcb18cf7d8 Added a flag to prevent the weapon from jumping to its Deselect state when the player dies 2016-07-28 08:29:46 +02:00
alexey.lysiuk
f38f7adf17 Automatic layout for ammo images in alternative HUD
When ammo icon is displayed before text its position depends on number of digits in current and maximum amounts
2016-07-28 08:19:31 +02:00
Christoph Oelckers
f67243a40f - fixed: The NO_CHANGE constant shouldn't have been floatified because this is an input value for action specials which will remain integers. 2016-07-27 08:23:00 +02:00
alexey.lysiuk
4345623e28 Fixed incorrect scaling of particles
http://forum.zdoom.org/viewtopic.php?t=52906
2016-07-24 14:25:31 +03: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
Blue-Shadow
121db8fd37 Fixed: The player failed to unmorph upon resurrection
This happened if the morphing was triggered by a PowerMorph power-up.
2016-07-24 00:59:35 +02:00
Blue-Shadow
69a00ddabb Added TRANSFERTRANSLATION morph flag 2016-07-24 00:56:57 +02:00
alexey.lysiuk
a1a0bdefff Added support for older versions of DeHackEd patches
Patches from DeHackEd 2.3 and 2.4 are now loaded without warnings/errors
2016-07-23 11:09:52 +03:00
yqco
4d6532d303 Added RGF_NORANDOMPUFFZ flag for A_CustomRailgun and A_RailAttack 2016-07-22 02:46:41 -06:00
Christoph Oelckers
fa22acca5d - fixed: Dehacked's 'Speed' value should be treated as signed when being assigned to a double variable. 2016-07-21 12:01:06 +02:00
Blue-Shadow
c428e376cd Added INFLICTORDMGTYPE flag to A_Damage* action functions
It forces the use of the inflictor's damagetype instead of whatever is
passed to the functions.
2016-07-19 08:34:55 +02:00
Blue-Shadow
d09ec5a930 Added DamageType ACS actor property 2016-07-19 03:16:12 +03:00
Christoph Oelckers
d4352dd1a7 - fixed slope calculation error. 2016-07-17 23:13:10 +02:00
alexey.lysiuk
8369833dc5 Fixed setting of custom color for static text in menu 2016-07-17 17:28:46 +02:00
Leonard2
446bc1018c Fixed: weapons didn't clear their flash layer when the player died 2016-07-17 17:28:45 +02:00
Leonard2
e482a54389 Fixed a crash with A_ClearOverlays 2016-07-17 14:27:56 +02:00
alexey.lysiuk
39042dc4bf macOS application controller is now using proper delegate protocol
Fixes compilation error with Xcode 8:
cannot initialize a parameter of type 'id<NSApplicationDelegate> _Nullable' with an lvalue of type 'ApplicationController *'
2016-07-17 08:02:55 +02:00
Christoph Oelckers
c150116f79 - fixed: When changing weapons due to starting or ending a Tome of Power effect, the PSprite's caller needs to be changed.
In this case the PSprite animation won't be changed, only the ReadyWeapon. But in order to work, the PSprite's caller needs to change as well so that the next weapon check does not fail.
2016-07-16 19:55:00 +02:00
MajorCooke
7544adfc91 Combined the target/master/tracer checking into AimBulletMissile. 2016-07-16 17:43:00 +02:00
MajorCooke
376c9b0306 - Optimized handling of puffs in the event they're null.
- Only spawn the puff as needed again if the projectile actually spawns.
2016-07-16 17:41:28 +02:00
MajorCooke
02064437c5 Fixed wrong angle/slopes being used and one too many &s for NOINTERACT. 2016-07-16 17:34:17 +02:00
MajorCooke
10fabc3ab7 Cleaned up code. Puffs no longer need ALWAYSPUFF.
- A_CustomBulletAttack and A_FireBullets will perform a second P_LineAttack to get a puff which only returns to the previous function after a tracer.
2016-07-16 17:34:17 +02:00
MajorCooke
4750dfd8b6 Added ability to set the puffs directly as the spawned projectile's target, master, and/or tracer. 2016-07-16 17:34:16 +02:00
MajorCooke
cc8e7f8de6 Cleaning finished. 2016-07-16 17:34:16 +02:00
MajorCooke
791852a6bd Cleaned up. 2016-07-16 17:34:15 +02:00
MajorCooke
3c7e1e0528 - Added the tracer actor spawning for A_FireBullets and A_CustomBulletAttack.
The projectiles spawning conditions rely upon the puff successfully spawning.

# Conflicts:
#	wadsrc/static/actors/actor.txt
2016-07-16 17:34:15 +02:00
alexey.lysiuk
ee72760f3a libc++ is now used by the linker too (when applicable) 2016-07-16 17:04:38 +02:00
alexey.lysiuk
58fb993402 Added ability to select ammo image and text display order in alternative HUD
Controlled via hud_ammo_order CVAR:
* 0 (default): image and text
* any other value: text and image
2016-07-16 16:15:59 +02:00
alexey.lysiuk
74fc45d7b7 Fixed instant boss brain spawning
There was a possibility of division by zero which led to nonsensical spawn time
http://forum.zdoom.org/viewtopic.php?t=52760
2016-07-16 15:39:57 +03:00
MajorCooke
b121284fc0 Added GAF_SWITCH to GetAngle, inverting the function to get the caller's angle on the pointer instead. 2016-07-14 17:14:17 +02:00
MajorCooke
09175a6a7a This wasn't supposed to be committed... 2016-07-14 09:55:13 -05:00
MajorCooke
59593e57c6 - Fixed: RGF_ITEMS wasn't considered a part of the RGF_MASK flag. 2016-07-14 09:27:29 -05:00
Leonard2
5c182c7fd7 Fixed a crash with heretic's ChickenPlayer class 2016-07-13 13:01:32 +02:00
Leonard2
05d1df3571 Fixed crashes with the A_CrispyPlayer and A_HandLower action functions
Simply using FindPSprite in those functions wouldn't be enough because if a mod is using the firehands layer when they are called this would go very wrong
2016-07-13 13:01:32 +02:00
Leonard2
3ea70980f9 Fixed: the strife firehands were interpolated if a mod used the layer before them
The flags were also already reset, no need to do it twice
2016-07-13 13:01:32 +02:00
Leonard2
b8e1bead0a Removed unneeded checks
GetPSprite cannot return a null pointer and calling setstate with a null pointer destroys it
2016-07-13 13:01:32 +02:00
Leonard2
da6e12d5bc Fixed: the weapon layer offsets were interpolated even after the player switched his weapon 2016-07-13 13:01:32 +02:00
Leonard2
75cb8c00a6 Fixed: the flags weren't properly reset if a mod used the old layers before the code used them 2016-07-13 13:01:32 +02:00
MajorCooke
7ded355d5d Added rollcenter compatibility. 2016-07-13 09:29:36 +02:00
Christoph Oelckers
79264cb8cd - fixed missing QuakeEx parameter conversion. 2016-07-12 19:57:32 +02:00
Leonard2
bdeb233849 Fixed: conditionals didn't properly compile to vm code 2016-07-12 19:50:37 +02:00
Leonard2
bbdc64a955 Fixed bad serialization of float types
The value was written twice if it couldn't be reduced to a single precision value
2016-07-12 19:37:00 +02:00
Leonard2
af53f5a825 Properly use the boolean type in function declarations
This will get rid of useless casts like 'if (isPointerEqual(x))'
It will also allow for proper casting in parameters like using a state as a boolean which is allowed in if statements for example
2016-07-12 19:36:59 +02:00
Leonard2
371896b2cc Properly use the boolean type in expressions
This fixes things like 'if (GetCVar(x))' not working
2016-07-12 19:36:59 +02:00
subenji
7d1dc46665 Implemented fix discussed in http://forum.zdoom.org/viewtopic.php?f=2&t=52428 rearding UserVar corruption in savegames 2016-07-12 19:36:59 +02:00
Blue-Shadow
1f2c8181bb Added IfWaterLevel SBARINFO command 2016-07-12 19:36:58 +02:00
Braden Obrzut
e401588f40 - Set -stdlib=libc++ and disable inconsistent-missing-override warning with OS X Clang (the latter may be useful for recent versions of Clang in general, but I can't tell at the moment.) 2016-07-11 01:22:37 -04:00
Christoph Oelckers
b2a88c1abd - fixed: mapthinghexen_t::flags needs to be unsigned.
This is necessary so that an incorrectly set 0x8000 bit won't enable all high flags.
2016-07-05 01:17:12 +02:00
Christoph Oelckers
b81876698f - changed P_ChangeSector so that for bridges it only keeps the floorz and ceilingz of the spawn position.
This is necessary to prevent moving sectors from altering the bridge's z-position. The bridge should remain at its current z, even if the sector change would cause floorz or ceilingz to be changed in a way that would make P_ZMovement adjust the bridge.
2016-07-04 22:36:27 +02:00
Christoph Oelckers
0b93e9b897 Merge branch 'roll' of https://github.com/MajorCooke/zdoom 2016-07-04 00:43:16 +02:00
Christoph Oelckers
d87665bfe0 - fixed: A_CheckTerrain must add to the actor's current velocity, not set it. 2016-07-04 00:39:35 +02:00
Christoph Oelckers
d6d9057f1f - removed the old way to stop the AnimatedDoor interpolation, now that the parent class can be told that we do not want one. This old code was no longer functionsl. 2016-07-03 13:42:54 +02:00
Christoph Oelckers
1b6a850bf6 - fixed: DAnimatedDoor's main constructor did not disable ceiling interpolation. 2016-07-03 13:39:33 +02:00
Christoph Oelckers
7bdb98cc0b - removed debug stuff. 2016-06-30 11:31:00 +02:00
Christoph Oelckers
fc3682006a - fixed PointOnSide functions to consider 'on the line' as 'in front of'.
The bad code was taken from the 2005 floating point rewrite that, by comparing the value with '> -EQUAL_EPSILON', returned 1 for any value close to 0 (as 'on the line') so it was mistakenly reported as 'behind the line'.
2016-06-30 11:30:32 +02:00
Christoph Oelckers
c6fb35ed52 - added per-item colors for static text items in the menu.
For option menus this replaces the 'highlighted' parameter with an actual color, for list menus it adds a new parameter.
2016-06-30 10:27:14 +02:00
Edoardo Prezioso
4defb6e967 - Fix myoffsetof using misaligned pointer access.
That could be a problem for particularly pedantic platforms.
2016-06-29 13:04:31 +02:00
MajorCooke
41d20fa6cf Fixed freeze with A_ClearOverlays. 2016-06-29 12:46:50 +02:00
Christoph Oelckers
6cf96372ba - fixed: incorrect flag masking for polyobjects disabled all line portals. 2016-06-29 12:46:20 +02:00
Christoph Oelckers
f8ae166281 - fixed return value inversion of FS's ceilingheight and floorheight functions. 2016-06-29 12:46:20 +02:00
Christoph Oelckers
a3450ab824 - removed unused cruft in FS code. 2016-06-29 12:46:19 +02:00
Christoph Oelckers
c6d8125b45 - fixed FraggleScript's resurrect function to call AActor::Revive to ensure that everything gets reset. 2016-06-29 12:46:19 +02:00
Christoph Oelckers
4899c405c3 - fixed: all non-ZDoom compatibility profiles need compat_maskedmidtex set.
This was neither fixed in Boom nor MBF.
2016-06-21 10:45:17 +02:00
MajorCooke
613fa4c9e4 Fixed: GetDistance was missing the original Z check disabling introduced in commit bd16ccb. 2016-06-21 10:14:25 +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
MajorCooke
26408a5043 Switched the pointer to AAPTR_DEFAULT. 2016-06-20 09:11:38 -05:00
MajorCooke
85a34bbb88 Added GetPlayerInput(int numinput, int ptr = AAPTR_PLAYER1).
- Works exactly like the ACS version, but with pointers instead. The pointer can be anything, so long as it can be identified as a player.
2016-06-20 08:49:57 -05:00
Edoardo Prezioso
6384e81d0f - Add support for Skulltag ACS IsNetworkGame.
Once known as PlayerOnTeam, then it became IsMultiplayer, but Skulltag code ignored emulated multiplayer, hence the new and clearer name.
2016-06-20 09:34:41 +02:00
MajorCooke
e02ed3a6f7 Take in the targeter layers if someone disables the safety and uses 0 for start and stop. 2016-06-20 01:15:51 +02:00
MajorCooke
ecfa7415b3 This small change was left out by mistake. 2016-06-20 01:15:51 +02:00
MajorCooke
30880aab79 And a bit more optimization... 2016-06-20 01:15:50 +02:00
MajorCooke
2b91db7b3a Refactored A_ClearOverlays. 2016-06-20 01:15:50 +02:00
MajorCooke
dd410876cf Added A_ClearOverlays(int start, int stop, bool safety).
- Clears a set of overlays in ranges [start,stop]. If unspecified, wipes all non-hardcoded layers. Safety determines whether to affect core layers or not (i.e. weapon). Returns the number of layers cleared.

Added no override boolean to A_Overlay and a boolean return type.

- If true, and a layer already has an active layer, the function returns false. Otherwise, sets the layer and returns true.
2016-06-20 01:15:49 +02:00
Edoardo Prezioso
2f6c98ead3 - Added support for old Skulltag ACS PlayerTeam. 2016-06-19 22:57:42 +02:00
Edoardo Prezioso
de55d693f9 - Fixed ACS Singleplayer for non-net multiplayer. 2016-06-19 12:59:46 +02:00
Christoph Oelckers
8cf150e68a - set up portal rotations in the finalizing step, not during initialization.
Anything earlier may miss some information required to do this correctly.
2016-06-19 12:40:38 +02:00
Christoph Oelckers
da05dfa72e fixed: Polyobject-based line portals may not cache their angle as it may change at any time. 2016-06-19 12:32:45 +02:00
Edoardo Prezioso
4e148f00e6 - Fixed wrong Skulltag ConsoleCommand pcode name.
Also report this pcode as not supported by the program.
2016-06-19 12:01:29 +02:00
Christoph Oelckers
cebd877191 - fixed the center point calculation for triangular sectors.
The old method does not work as expected with the higher precision of doubles, so instead just average the 3 vertex positions to get the triangle's center.
2016-06-19 11:48:20 +02:00
Edoardo Prezioso
56508a2d82 - Avoid issues with misused Strife actions. 2016-06-17 23:09:34 +02:00
Leonard2
24c73071f4 Fixed a crash with A_JumpIfNoAmmo
Non-weapon layers can pass the caller check even when there is no ReadyWeapon
2016-06-17 18:36:57 +02:00
Leonard2
68c483c041 Renamed the weapon action function caller check to ACTION_CALL_FROM_PSPRITE to avoid confusion
This was always checking for every psprites rather than just weapon layers
2016-06-17 18:36:57 +02:00
Leonard2
abc7113e09 Removed the INSTATECALL flag because it is now unused and was replaced by stateinfo 2016-06-17 18:36:57 +02:00
Christoph Oelckers
05fabbe294 - fixed: G_InitNew may only clear the hub statistics when it is not called during loading of a savegame. 2016-06-17 16:14:58 +02:00
Christoph Oelckers
2c928a2cda - fixed: Strife's firehands' coordinates need WEAPONTOP being added because it cannot be taken from the main weapon layer which no longer exists when the hands appear. 2016-06-17 15:26:00 +02:00
Christoph Oelckers
018615ca0d - fixed weapon-based Psprite adjustment to always use the weapon this was called from and make non-weapon specific checks only exclude the targeter. 2016-06-17 14:14:35 +02:00
Edoardo Prezioso
574f2936d4 - Fixed GCC/Clang compiler errors and warnings. 2016-06-17 10:19:03 +02:00
Christoph Oelckers
cfaa3e3fa9 - changed action function interface so that callers can be identified directly, instead of guessing it from looking at the parameters.
With arbitrary PSP layers the old method was no longer safe because the layer ID was not available in the action function.
2016-06-16 16:16:27 +02:00
Christoph Oelckers
7ccdbf9b62 Merge branch 'PSprites' 2016-06-16 16:16:16 +02:00