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
MajorCooke
c9f4620702
Reimplemented P_SetPsprite.
2016-06-16 07:24:00 -05:00
Xaser Acheron
de0301a704
split bfg self-damage code into its own function, A_RadiusDamageSelf
2016-06-16 00:43:07 +02:00
Xaser Acheron
481ef7a5b5
added SMMU-BFG11k-style 'damrad' property to A_BFGSpray
2016-06-16 00:43:07 +02:00
Xaser Acheron
8e8248284a
added BFGF_HURTSOURCE and BFGF_MISSILEORIGIN to A_BFGSpray
2016-06-16 00:43:06 +02:00
MajorCooke
2d4eb8dde4
- Added limit parameter to A_RailAttack and A_CustomRailgun.
2016-06-14 18:20:43 -05:00
Christoph Oelckers
f1597a5d26
- fixed: Trace should set CrossedWater only if a water surface actually is crossed, i.e. the start of the trace and the end of the trace are on different sides of the surface.
...
This was incorrectly spawning splashes when shooting inside a deep water sector, but in most cases the splash just was not visible. It could become visible if its position got clipped by a nearby one-sided wall.
2016-06-13 21:30:58 +02:00
MajorCooke
82bc5e7bd1
Fixed wrong token for Light keyword.
2016-06-13 09:50:12 -05:00
Christoph Oelckers
d74584e5b2
- fixed: DAnimatedDoor must not start an interpolation on the door sector's ceiling.
2016-06-13 13:58:39 +02:00
Braden Obrzut
624c935385
- Fixed: Floating point conversion error in SBarInfo DrawBar which broke interpolation.
2016-06-12 06:28:50 -04:00
Christoph Oelckers
b8e392eaa5
- do not try to load empty BEHAVIOR lumps.
...
These would otherwise print an error message but there's a lot of maps out there which only have an empty entry to mark the map as Hexen format.
2016-06-12 11:45:25 +02:00
Christoph Oelckers
373c59f924
- fixed inverse sign for rocket trail particle movement.
2016-06-12 00:05:23 +02:00
Christoph Oelckers
db2cef96d6
- removed unnecessary FLOAT2FIXED call in particle code.
2016-06-11 23:43:07 +02:00
MajorCooke
4c8028d64b
- Fixed a discrepancy with A_FaceMovementDirection involving pitch adjustments going the wrong way both in motion, and standing still.
2016-06-11 14:07:27 -05:00
MajorCooke
fb286d1737
- Changed endsize to sizestep. Endsize affected more things than I thought it would.
2016-06-11 08:05:29 -05:00
Leonard2
ebe3f23677
Added GetCVar(string name)
...
Works like ACS's GetCVar
2016-06-11 10:15:49 +02:00
MajorCooke
d8bf958a06
Fixed: Frozen particles would still be deleted when frozen instead of doing nothing with.
2016-06-11 10:00:50 +02:00
MajorCooke
f787056198
- Added endsize parameter and SPF_NOTIMEFREEZE for A_SpawnParticle.
...
SPF_NOTIMEFREEZE processes particles with this flag regardless of time freeze. The endsize parameter changes the scale of the particle to that size throughout its lifetime linearly.
2016-06-11 10:00:50 +02:00
Christoph Oelckers
c4d8950a7f
- fixed: APROP_Friction was missing a 'break'.
2016-06-10 13:23:23 +02:00
Christoph Oelckers
ef86b3975a
- added 'strictdecorate' CVAR. If this is set to 'true', any DECORATE error that had to be demoted to a warning for backwards compatibility will be treated as an actual error.
2016-06-08 10:56:11 +02:00
Christoph Oelckers
cf21bb1524
- reinstated abort-on-error for any problem that gets reported during DECORATE code generation.
...
- fixed: DECORATE allowed a silent conversion from names to integers.
In old versions the name was converted to 0, since the scripting branch to the name index. Reverted to the old behavior but added a warning message.
2016-06-08 10:46:35 +02: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
MajorCooke
53837de17d
Added DONTFLIP flag.
...
- By default, when viewing a flat sprite from behind, the image is flipped around on the X axis. This may not always be desired, so this flag disables it.
2016-06-05 15:21:19 -05:00
Christoph Oelckers
8a08fb2f6a
- fixed nullptr/bool mixup.
2016-06-04 20:52:56 +02:00
Leonard2
0b88bae458
The strife firehands now make proper use of the psprite layers
2016-06-03 19:46:31 +02:00
Leonard2
afa708c138
Allow psprite layers to be manipulated directly from the player's own body
2016-06-03 19:18:58 +02:00
Leonard2
eeff17c550
Account for this on the renderer's side instead
...
This fixes the weapon's layer behaving differently when called from
A_Overlay (the flag would be set in this case breaking the offsets)
2016-06-03 00:50:12 +02:00
Leonard2
543414d31f
Added 2 new layer flags: PSPF_CVARFAST and PSPF_POWDOUBLE
...
These flags allowed to easily restore a lost part of the targeter layers
behavior
2016-06-03 00:50:11 +02:00
Leonard2
bc334ccc9f
Avoid creating the targeter layers if the inventory item isn't attached to
...
its owner yet
2016-06-03 00:50:11 +02:00
Leonard2
e1f139ddcd
The targeter layers now use a proper Caller
...
This will avoid having to check for certain stuff and also allow them to not be destroyed when the ReadyWeapon is null like before
2016-06-03 00:50:10 +02:00
Leonard2
8244d2c844
Make sure never to call GetPSprite when the ReadyWeapon is null
2016-06-03 00:37:55 +02:00
Leonard2
9ee5e57340
Call GetPSprite here to update the ReadyWeapon but avoid doing so if it
...
is null
TickPSprites will take care of destroying the weapon/flash layers if the
ReadyWeapon is null
2016-06-03 00:37:54 +02:00
Leonard2
f14a840777
The ReadyWeapon is now assumed to not be null
2016-06-03 00:37:54 +02:00
Leonard2
8668719bbc
Revert "- re-added P_SetPSrite."
...
This reverts commit e6d89b9f71
.
2016-06-02 20:02:03 +02:00
Leonard2
d933f77bf5
Fixed: the game could crash if some inventory items were destroyed in a
...
certain way
2016-06-02 20:00:22 +02:00
Christoph Oelckers
2afadb0108
- fixed: ADehackedPickup was missing NULL pointer checks in nearly all methods that used RealPickup.
...
Some DECORATE hacks make it possible that this does not contain a valid pointer when these methods are called.
2016-06-01 23:41:34 +02:00
Christoph Oelckers
26a15d0ccc
- delete thinkers before starting to restore the savegame data to avoid interference of the old thinkers' Destroy() method with the newly loaded data.
...
Note that even with this change it is still not possible to unarchive any thinker pointers before the thinker list has been loaded as it would create broken lists.
2016-06-01 11:43:56 +02:00
Christoph Oelckers
978e522fb4
- fixed: portal-related sound calculations offset the sound in the wrong direction.
2016-06-01 11:14:25 +02:00
Christoph Oelckers
14e4a64c82
- fixed: Destroying a SkyViewpoint disabled all sector portals.
2016-06-01 10:10:18 +02:00
alexey.lysiuk
5348a15b75
Added option to control dynamic loading of OpenAL
...
Dynamic loading is enabled by default, set DYN_OPENAL to OFF to link with static or dynamic library
# Conflicts:
# src/sound/oalsound.cpp
# src/sound/oalsound.h
2016-05-29 14:25:04 +02:00
Edoardo Prezioso
243030046a
- Fixed issues with invalid GetMaxInventory calls.
2016-05-29 12:50:37 +02:00
Christoph Oelckers
44f09edf4c
- fixed: monsters cannot crouch, so their crouch factor has to be 1, as 0 would yield incorrect results if the value is used in subsequent calculations (e.g. adjusting a trajectory to a target which can be or may not be a player.)
2016-05-29 12:48:27 +02:00
MajorCooke
bb91723174
- Added GetCrouchFactor(ptr).
...
Gets the crouch factor of a player. Can be set to target/master/tracer, as long as it's a player. Defaults to the first player.
2016-05-29 12:43:46 +02:00
MajorCooke
2719905ade
- Added source and inflictor parameters to all A_Damage/Kill functions.
...
- Source is the actor to blame for the cause of damage (monster infighting for example). For missiles, modders should consider setting to AAPTR_TARGET.
- Inflictor is the actor doing the damage itself. Note that by changing this, it will take into account the flags on the pointed actor.
2016-05-29 12:40:17 +02:00
MajorCooke
33ddbe8ab3
Added SKYEXPLODE support for P_LineAttack on horizons.
2016-05-29 12:38:37 +02:00
Benjamin Moir
6633e41cca
added CheckProximity to ACS
2016-05-29 12:38:37 +02:00
alexey.lysiuk
89016020a8
Used ISO Latin 1 encoding for title text in startup window on OS X
...
Windows version uses ANSI_CHARSET to handle the corresponding text
This solves the problem like in https://github.com/alexey-lysiuk/gzdoom/issues/63 :
*** Assertion failure in -[NSTextFieldCell _objectValue:forString:errorDescription:], /Library/Caches/com.apple.xbs/Sources/AppKit/AppKit-1404.47/AppKit.subproj/NSCell.m:1684
Invalid parameter not satisfying: aString != nil
2016-05-29 10:58:12 +03:00
Christoph Oelckers
fc25a74a03
- fixed: In case of a crash the buffered console output was not dumped to the rich edit control so it never got into the crash log.
2016-05-28 20:11:19 +02:00
Leonard2
360ad7a844
Replaced every remaining instances of the old layer names
2016-05-28 01:19:42 +02:00
Leonard2
2f5ae3b51e
Changed the default layer indices and renamed them
...
Note that this doesn't compile yet
2016-05-28 01:19:41 +02:00
Leonard2
c82620129c
Added A_OverlayFlags
...
Allows psprites to follow the weapon and/or the player's bobbing
2016-05-28 01:19:40 +02:00
Leonard2
8f360f3bea
Small refactor
2016-05-27 23:37:35 +02:00
Leonard2
b220db4ebe
Fixed: a layer's movements weren't interpolated in some cases
...
The old position members would be incorrectly updated if a layer sets another layer's offsets and this layer ticks before the other
2016-05-27 23:37:34 +02:00
Leonard2
bca9829950
Fixed: a few members weren't properly initialized
...
This could go wrong if a layer had only one state of -1 tics
2016-05-27 22:58:27 +02:00
Leonard2
599fa7cfd1
Fixed: it was no longer possible to set the flash state in the very first
...
weapon's state
This was due to an oversight in my first commit
2016-05-27 22:31:18 +02:00
Christoph Oelckers
d43ea33031
- fixed: A_CustomBulletAttack may not rely on the parameter default setter to get a valid puff. This must be checked explicitly in the functions body to ensure it is never NULL.
2016-05-27 11:39:44 +02:00
Christoph Oelckers
b926cf35d5
- fixed: The portal init code should only delete REJECT if there's actually some portals to consider.
2016-05-27 09:45:17 +02:00
Christoph Oelckers
19003a7973
- fixed: The node builder's FindMapBounds function included all vertices generated by the node builder.
...
This could cause problems on maps with bogus nodes so it's better to only check vertices that are referenced by a linedef.
2016-05-27 09:38:33 +02:00
Christoph Oelckers
34c67b9eae
- fixed: The NoiseList array was not cleared before use.
2016-05-27 00:00:27 +02:00
Christoph Oelckers
cc685e982b
- fixed: interactive line portals were always deactivated, regardless of alignment type.
2016-05-25 11:36:23 +02:00
Christoph Oelckers
f241d9773a
- made P_NoiseAlert non-recursive to avoid stack overflow problems in large open-area maps with a high sector count.
2016-05-25 11:30:11 +02:00
Christoph Oelckers
72a3257400
- fixed: DIntermissionScreen::Init did not handle non-existent strings in the string table and crashed on a NULL pointer.
2016-05-25 01:45:55 +02:00
Christoph Oelckers
49234b1fc3
- fixed: UpdateRenderSectorList did some bad calculations for checking portal plane order.
2016-05-24 13:53:29 +02:00
Christoph Oelckers
e6d89b9f71
- re-added P_SetPSprite.
...
For debugging purposes it's better to have this as a function.
2016-05-24 13:05:43 +02:00
Christoph Oelckers
d058820c65
- fixed scroll speed calculation for Heretic.
2016-05-24 10:01:57 +02:00
Christoph Oelckers
d70601471a
- fixed the spawn position of Strife's sentinel's attack's trail.
2016-05-24 09:37:01 +02:00
Christoph Oelckers
3bde8824a3
- fixed A_Burst's velocity calculation.
2016-05-24 09:32:30 +02:00
MajorCooke
1b1195df6a
- Added limit parameter to A_RadiusGive.
...
- The function ends operation if the number of successfully given actors reaches this count.
2016-05-23 21:11:26 -05:00
alexey.lysiuk
aa6753383d
Fixed fullscreen mode on non-default monitor in OS X backend
...
Fullscreen window was incorrectly placed on the main screen instead of the current one
Honestly I have no idea what was the reason behind that [NSWindow setFrameOrigin:] call
Apparently it's redundant and moreover it's incorrect for multi-monitor configuration
2016-05-22 13:22:07 +03:00
Christoph Oelckers
ae31e0ba72
- changed the default key name string because '#' is used as a comment in the config files.
2016-05-22 12:20:46 +02:00
Christoph Oelckers
db944df467
- fixed 3D floor rendering with nearby slopes.
2016-05-22 12:15:14 +02:00
Christoph Oelckers
eed32ee285
- fixed: The friction calculations for terrain based friction had some fixed/float mixups.
2016-05-22 12:11:39 +02:00
Christoph Oelckers
36dfa97802
- fixed: Polyobjects did not save their specialdata pointer.
...
- fixed: DMovePoly did not save its m_Speedv member.
# Conflicts:
# src/version.h
2016-05-22 01:27:05 +02:00
Christoph Oelckers
f184438032
- fixed: Polyobjects did not save their specialdata pointer.
...
- fixed: DMovePoly did not save its m_Speedv member.
2016-05-22 01:26:13 +02:00
Christoph Oelckers
d767d10322
- made PSprites submission GC aware.
2016-05-21 13:11:43 +02:00
Leonard2
8c205ebac3
Added A_OverlayOffset
...
Like A_WeaponOffset except it can access any psprites
2016-05-20 17:04:45 +02:00
Leonard2
1ecfb5897b
Added A_Overlay
2016-05-20 17:04:45 +02:00
Leonard2
1966b61b8f
Generalized the psprites implementation
2016-05-20 17:04:44 +02:00
Christoph Oelckers
bd396ccb7c
- made P_Move's multiple-step movement portal and teleporter-aware.
2016-05-20 13:30:10 +02:00
Christoph Oelckers
428bd52295
- fixed: It was not possible to step through a ceiling portal into the upper sector.
2016-05-20 13:10:42 +02:00
Gaerzi
68c5191798
Add GOG path for SVE
...
Since GOG.com is finally offering this game.
2016-05-20 02:18:48 +02:00
Christoph Oelckers
78055733c8
- fixed: automap markers were scaled too small
2016-05-18 21:25:58 +02:00
Christoph Oelckers
f22adcc398
- be more thorough with Eternal Doom MAP03. The compatibility option does not seem to fully solve the problem, so let's just clear the tags in the bogus stair sectors.
2016-05-18 21:06:07 +02:00
Christoph Oelckers
9e0301c1a1
- prevent message spam with no MIDI devices.
2016-05-18 13:11:01 +02:00
Christoph Oelckers
7642c2cdaa
- fixed: Opening a non-existent menu left the engine in an invalid state.
2016-05-18 12:02:54 +02:00
Christoph Oelckers
3dcb05e5d2
- fixed: Lock #255 was inaccessible for LOCKDEFS.
2016-05-18 11:56:39 +02:00
Christoph Oelckers
a7fd04a235
Merge branch 'master' of https://github.com/kcat/zdoom
2016-05-18 11:48:27 +02:00
MajorCooke
115dbd0b58
- Added A_WeaponOffset(x = 0, y = 32, flags).
...
- Places the weapon offset by the defined x and y. Both are floats. This stacks with weapon bobbing.
- WOF_KEEPX: Don't change the X offset.
- WOF_KEEPY: Don't change the Y offset.
- WOF_ADD: Add onto instead of replacing the coordinates.
2016-05-18 11:19:24 +02:00
Christoph Oelckers
661c2e5919
- added missing NULL pointer check to ACS's CheckInventory.
2016-05-18 09:39:19 +02:00
Chris Robinson
fe966916d7
Set head-relative for sources near the listener
...
This matches the behavior of the FMOD backend
2016-05-16 17:02:39 -07:00
Christoph Oelckers
9e847c252b
- fixed: When linking an actor into the blockmap multiple portal groups, AActor::LinkToWorld would delete the links to the previous nodes for each new group. This was causing random crashes when the affected actor was deleted by the garbage collector.
2016-05-15 23:24:30 +02:00
Christoph Oelckers
aff8b00575
- added NULL pointer checks to SpecialDropAction methods that call CheckLocalView.
2016-05-15 09:16:37 +02:00
Christoph Oelckers
6949afc334
- fixed: For allowing an unblocking move, PIT_CheckThing used the wrong actor's position. This was causing monster pile-ups with moving ceilings.
...
- don't let P_PushUp move any actors with the same z as the pushing actor. This should solve most monster pile-ups, but the entire logic here needs some serious rethinking. The only reason this doesn't cause more problems is some fudging in several other places.
2016-05-14 15:05:06 +02:00
Christoph Oelckers
ebca170e73
- fixed a few warnings in OpenAL code.
2016-05-13 10:07:18 +02:00
Christoph Oelckers
cd8213f067
- fixed: The skybox pointer in FSectorPortal must at least be initialized to nullptr when the struct is deserialized, to avoid an access violation if the partially initialized data is used. This can happen when P_SerializeThinkers destroys the original thinkers that were created on map load.
...
- removed the sector loop for deleting skybox references in ASkyViewpoint::Destroy. Since this only refers to the sectorPortals array it is completely redundant as the following code will clear them just as well.
2016-05-13 10:07:01 +02:00
MajorCooke
4998d4a84d
Use the direct pointer of P_PointInSector instead.
2016-05-12 22:15:06 +02:00
MajorCooke
2ba26693d1
- Added 3D Floor + Portal awareness, along with flags to turn off detection of both features.
2016-05-12 22:15:06 +02:00
MajorCooke
b91ed5dc5d
Added GetZAt DECORATE function.
...
- float GetZAt(x, y, angle, flags, pick_pointer);
- Gets the floor z at x distance ahead and y distance to the side in relative form from the calling actor pointer. Flags are as follows (GZF_ prefix):
- CEILING: Returns the ceiling z instead of floor.
- ABSOLUTEPOS: x and y are absolute positions.
- ABSOLUTEANG: angle parameter does not add the pointer's angle to the angle parameter.
2016-05-12 22:15:05 +02:00
MajorCooke
39f64383cb
Changed RTF_THRUSTZ to match RADF_THRUSTZ's bitmap.
2016-05-11 19:41:33 +02:00
MajorCooke
952219a018
Added RTF_THRUSTZ for A_RadiusThrust.
...
- Allows thrusting with Z velocity.
2016-05-11 19:41:33 +02:00
Christoph Oelckers
852ed6cd04
- un-revert P_CheckMove fix.
2016-05-11 19:39:08 +02:00
Edoardo Prezioso
769521b2e1
- Fixed second player lock after error in netgame.
2016-05-11 14:05:29 +02:00
Christoph Oelckers
078e27e61f
- fixed: The mugshot's angle was inverted.
2016-05-11 14:04:21 +02:00
Christoph Oelckers
d4b258f15b
- don't place the chasecam right at the hit position of the trace. This will be the intersection with a wall or sector plane and may cause clipping issues. Instead place it very slightly in front of the actual hit position.
2016-05-11 13:57:49 +02:00
MajorCooke
9ab620814d
- Fixed: Armor absorption did not take ALLOW/CAUSEPAIN flags into account.
2016-05-11 13:33:39 +02:00
Christoph Oelckers
0726a88ab9
- only return DWORD aligned addresses in openings because the 3D floor code stores floating point values in there which cannot be accessed on platforms with strict alignment rules.
2016-05-11 12:04:41 +02:00
Christoph Oelckers
220255e6a4
- fixed P_CheckMove's dropoff check and removed some unneeded code.
2016-05-11 11:56:03 +02:00
Christoph Oelckers
43d93a19a0
- fixed: P_AlignFlat had the 'dist' value negated. Also simplified the code a bit.
2016-05-11 11:36:53 +02:00
Christoph Oelckers
f8c12f4533
- fixed warning in s_sound.cpp
2016-05-11 10:32:57 +02:00
Christoph Oelckers
cc88130362
- fixed: P_CheckMove's dropoff check had the heights swapped. This also shouldn't in any way depend on COMPATF_DROPOFF and must be skipped entirely for actors with either MF_FLOAT or MF_DROPOFF set.
2016-05-11 10:09:13 +02:00
Christoph Oelckers
77e30bb7d7
- fixed: The line portal links were not deleted when an actor was destroyed.
2016-05-11 09:58:03 +02:00
Christoph Oelckers
966e6797e4
- fixed: The view path for checking whether the player sprite should be drawn during a portal transition was never set properly in the portal transitioning case.
2016-05-09 23:16:06 +02:00
Christoph Oelckers
2e4b8dd416
- fixed incorrect sign in P_TranslatePortalVXVY
2016-05-09 21:59:13 +02:00
Christoph Oelckers
841a5795ae
- savegame version bump for a GZDoom exclusive change (to avoid synchronization problems in the future.)
2016-05-08 09:27:42 +02:00
Chris Robinson
8334189d66
Merge remote-tracking branch 'zdoom/master'
2016-05-05 12:55:16 -07:00
Chris Robinson
ba1574e65a
Don't define OpenAL redirect macros with the IDE's parser
...
At least with KDevelop4, macros like this interefere with contextual info by
causing it to show information about the macro itself (where it's defined and
what it defines to), rather than the function (parameters, comments, etc). It
also gets in the way of auto-completion.
2016-05-05 21:00:30 +02:00
Chris Robinson
fa46965a71
Check for OpenAL device errors after pausing/resuming the device
2016-05-05 21:00:30 +02:00
Chris Robinson
0b7b78c5d2
Better handle channel configs when monoizing in LoadSound
2016-05-05 21:00:29 +02:00
Chris Robinson
e298f8389b
Avoid divide-by-0 when the area sound radius is less than the max distance
2016-05-05 21:00:29 +02:00
Chris Robinson
66c61a7c8b
Set the appropriate start offset for non-3D sounds too
2016-05-05 21:00:28 +02:00
Chris Robinson
26a8a8a1ba
Pause OpenAL processing using ALC_SOFT_pause_device when inactive
2016-05-05 21:00:28 +02:00
Chris Robinson
e1c8890c5e
Set the appropriate start offset for restarted sounds
2016-05-05 21:00:27 +02:00
Chris Robinson
c3cef91a4f
Properly sum the channels being downmixed to mono
2016-05-05 21:00:27 +02:00
Chris Robinson
12c9281a7e
Avoid redundantly setting DistanceScale
2016-05-05 21:00:26 +02:00
Chris Robinson
bf5ac9b476
Use AL_EXT_SOURCE_RADIUS for area sounds
2016-05-05 21:00:26 +02:00
Chris Robinson
55294c5806
Use the correct OpenAL lib name on Linux
2016-05-05 21:00:25 +02:00
Edoardo Prezioso
52995f8fc2
- Fixed missing sector light clamp in DFlicker.
...
For some reason, this code didn't care about the sector light limits. Found by code inspection.
2016-05-05 21:00:08 +02:00
Christoph Oelckers
c193bb7799
- removed the special case 0 in A_SpawnItem, meaning 'in front of the player'.
...
As it turned out this has been broken for many, many years, so one can assume that most content using this function depends on this special case not working. I could track it down to at least 2008.
2016-05-05 20:12:26 +02:00
Christoph Oelckers
0b833be06e
- removed accidentally added GZDoom specials.
2016-05-04 14:37:52 +02:00
Christoph Oelckers
2c88816577
- fixed parameters for warp type 2.
2016-05-04 13:25:26 +02:00
Christoph Oelckers
be3b126f7b
- fixed: Order of skybox and portal initialization was not well defined. It was always the last item to get initialized that got set. Changed it so that skyboxes cannot override portals at all.
2016-05-03 19:42:53 +02:00
Christoph Oelckers
a576243ff2
- fixed: ThrustThing should add to the velocity, not set it.
2016-05-03 10:26:29 +02:00
MajorCooke
def785e462
Removed PITCHFLATSPRITE. FLATSPRITE now encompasses its behavior.
2016-05-02 06:32:33 -05:00
MajorCooke
0bf7c3e362
- Removed FlatAngle. This will come back hopefully in another commit sometime in the future.
2016-05-01 17:19:39 -05:00
Randy Heit
4fbe77fb82
Very minor optimization for ACS str(i)cmp
...
- If the two strings compared both point to the same location in memory,
then we know they are the same string without having to bother actually
comparing their contents. Note that the opposite is not neccessarily
true: If they point to two different locations, they could still match a
case-sensitive comparison because there are still two ACS string tables:
the one that belongs to the map's script and the one that belongs to
everything else.
2016-05-01 16:55:28 -05:00
MajorCooke
f41dcc75d1
FlatAngle can now be defined directly via properties.
2016-05-01 16:33:00 -05:00
Christoph Oelckers
65e1589543
- allow specifying actor classes whose graphics to precache through MAPINFO.
...
- some reorganization of texture precaching so that the renderer can decide what to do with actors.
Just marking the sprite textures loses too much info if more is needed than just loading the images into memory.
2016-05-01 22:47:36 +02:00
Chris Robinson
0d402618a3
Load mono copies of multichannel sounds that are used in 3D
2016-05-01 21:44:03 +02:00
MajorCooke
3ed9551054
Fixed typo.
2016-05-01 14:33:22 -05:00
Christoph Oelckers
b443ac8f71
- let Trace() be a bit smarter about checking 3D slopes. If one matches right up with the floor or ceiling at the line where the trace enters a sector, check a second point to see whether we deal with something inside valid sector bounds or not.
2016-05-01 19:30:51 +02:00
MajorCooke
9ba547e6e3
Revert MINSAVEVER and added FlatAngle DECORATE property expression.
2016-05-01 11:38:20 -05:00
Edoardo Prezioso
3aee8a3eee
- Fixed a mistake in GiveInventory refactoring.
...
'give item' stopped working because commit 7b35f32f3d
and 6aca7604eb
didn't take account that give cheat with zero amount should not touch the item amount.
2016-05-01 17:07:39 +02:00
MajorCooke
a8248433e9
- Updated <pitch>/flat/roll/wall sprites submission to 2.9+. (ZDoom compatibility submission. )
...
- FLATSPRITE: An actor becomes flat as if they were a decal on the floor.
- PITCHFLATSPRITE: A flat sprite tilts up and down based on pitch.
- WALLSPRITE: Similar to a Y billboarded sprite. The degree of the flattening is determined by the FlatAngle property.
- ROLLSPRITE: The sprite of the actor is affected by the Roll property.
2016-05-01 08:45:50 -05:00
Edoardo Prezioso
a17ec55d0d
- Fixed drop style gameinfo inconsistency.
...
The gameinfo option was ignored when deciding the initial spawn height position.
2016-05-01 11:30:09 +02:00
Randy Heit
7d03ed4dc7
Use floating point node bounding boxes
2016-04-30 22:37:02 -05:00
Randy Heit
265783e1f6
Use doubles for intermediates in the nodebuilder's FindMapBounds()
2016-04-30 21:28:41 -05:00
Christoph Oelckers
f387199442
- extended the voxeldef parser to allow negative numbers where appropriate.
2016-04-30 14:33:15 +02:00
Christoph Oelckers
86b647ed41
- added map name display to IDMYPOS.
2016-04-30 13:03:08 +02:00
Christoph Oelckers
2161ad2c4b
- fixed: P_GetMapColorForKey did not check for keys that worked as an alias defined through their species.
2016-04-30 12:48:51 +02:00
Christoph Oelckers
c3759646e7
- merged FWarpTexture and FWarp2Texture, making the choice of effect a parameter of the WarpBuffer function.
...
Ideally the warping shouldn't be a property of the texture class itself but an effect processor that can get added to a texture. Unfortunately the current setup will not allow this, requiring some significant refactoring of texture access first.
2016-04-30 12:36:55 +02:00
Randy Heit
a95c6b9644
Draw upper/lower textures on two-sided portal lines
2016-04-29 21:54:29 -05:00
Randy Heit
09730bff73
Fix incorrect texture mapping vectors for slopes
2016-04-29 20:35:55 -05:00
Christoph Oelckers
8309d8f634
- fixed coordinate typo.
2016-04-29 23:14:04 +02:00
MajorCooke
b9687b4a57
Compiler fix
2016-04-29 06:33:38 -05:00
Christoph Oelckers
4a72c7d2f1
- fixed: Decals may not be serialized before thinkers.
...
Since decals may have thinkers attached this will crash when such a savegame gets loaded, because the thinker lists get reset in P_SerializeThinkers, deleting any thinker that already was processed.
I also added an error message that immediately aborts the save process if such an out-of-sequence thinker is attempted to be written out.
This obviously breaks savegame compatibility again...
2016-04-29 11:44:17 +02:00
Randy Heit
f3d273c94f
Fixed: Tiled midtextures could go up past the ceiling when a 3D floor is in view
2016-04-28 22:06:57 -05:00
Randy Heit
8f3921190f
Keep values in floats longer for visplane drawing
2016-04-28 21:21:49 -05:00
Randy Heit
96228ca15f
Trying to fix some rounding, not sure it's actually correct yet
2016-04-28 21:14:48 -05:00
Christoph Oelckers
3bbb5c7237
- moved the texture warping into templated subfunctions, so that the same code can be used for true color buffers as well.
2016-04-28 18:17:18 +02:00
Christoph Oelckers
af2a1769d8
- use the FP2005 method to calculate xtoviewangle, because it is far more straightforward than the old version.
2016-04-28 16:27:28 +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
9f0c5d5909
-let's better be cautious about precision and use the CRT sin and cos functions for rotated plane textures.
2016-04-28 14:49:59 +02:00
Christoph Oelckers
027b8d29b8
- make FieldOfView a real angle and remove all uses of finetangent.
2016-04-28 13:59:06 +02:00
Christoph Oelckers
f301cf7c57
- don't use finetangent for generating xviewtoangle.
2016-04-28 13:03:48 +02:00
Christoph Oelckers
26f54b0ba4
- eliminated tantoangle and cleaned up r_tables.h
2016-04-28 12:18:33 +02:00
Christoph Oelckers
8171637a57
- removed the last remaining uses of the finesine table from the rendering code.
2016-04-28 11:37:02 +02:00
Randy Heit
ae7d048057
Store FTransform in visplane_t, not just a pointer
...
- The transform values passed to R_CheckPlane might live on the stack, so
it's not safe to only store a pointer to them.
2016-04-27 23:07:25 -05:00
Randy Heit
44adff459a
Remove halfviewwidth
...
- Why I thought I needed this variable in addition to centerx has
long ago left my memory.
2016-04-27 22:49:36 -05:00
Randy Heit
31d842a894
Store FTransform in visplanes instead of converting to fixed_t
2016-04-27 22:17:33 -05:00
Randy Heit
ac69ed3361
Minimal wallmost changes
...
- Add comments
- Fixed: When WallMost() finds a line entirely above the screen, it should
set the most array to 0, not -1.
2016-04-27 22:17:33 -05:00
MajorCooke
6f11a65893
- Converted rollIntensity from int to double.
...
- It was already a double in the save version serialization so nothing had to be changed there.
2016-04-27 12:58:18 -05:00
MajorCooke
64d01a3bb1
Forgot to undo this.
2016-04-27 10:26:06 -05:00
MajorCooke
0fc7055f51
- Fixed: Quakes with rolling were not unique; they borrowed from any other quakes that didn't have rolling, thus preventing the rolling from falling off properly.
2016-04-27 10:13:30 -05:00
Christoph Oelckers
38d92b23b9
- fixed: ACS's GetSectorCeilingZ and GetSectorFloorZ expected integer coordinates.
2016-04-27 15:41:22 +02:00
Christoph Oelckers
3fd0d27efa
- removed some leftover fixed point handling from PType.
2016-04-27 15:35:01 +02:00
Randy Heit
a14c0c8063
Fix a couple missing structs in vissprite_t
2016-04-27 08:13:22 -05:00
Christoph Oelckers
3a17d6aa78
- fixed savegame compatibility.
2016-04-27 13:47:30 +02:00
MajorCooke
762d186657
Finished interpolation.
2016-04-27 13:42:16 +02:00
MajorCooke
be9b25e760
Use ViewRoll instead of CamRoll, and removed CamRoll entirely. Begin work on interpolation.
2016-04-27 13:42:15 +02:00
MajorCooke
c972caa9f3
- Added rollIntensity and rollWave to A_QuakeEx.
...
- Instead of moving the camera around, it rolls the camera.
- This only has an effect in GZDoom.
2016-04-27 13:42:15 +02:00
MajorCooke
660aff562d
- Added support for THRU flags on bullets and rails.
...
- ALLOWTHRUFLAGS must be used on the puffs, added for the sake of compatibility with older mods. This applies to the following:
-- Bullets: THRUACTORS, THRUSPECIES
-- Rails: Same as bullets, but includes THRUGHOST.
2016-04-27 13:38:27 +02:00
Christoph Oelckers
262f3575ae
- added a "custom" flag to drawmugshot so that the user-specified image can be forced to be used.
2016-04-27 13:16:35 +02:00
Christoph Oelckers
ebca8cc5b0
- added a portable config file option, for now only on Windows: If the engine finds a file named [GAMENAME]_portable.ini, it will use that instead of creating a user specific version, so that portable installs can carry their INI along.
2016-04-27 13:04:37 +02:00
Christoph Oelckers
934b1923d0
- fixed: CheckForPushSpecial did not check blocking 3D midtextures.
2016-04-27 12:37:38 +02:00
Christoph Oelckers
044bf4ada6
- fixed: P_CheckPosition must initialized tm.floorterrain.
2016-04-27 12:08:22 +02:00
Christoph Oelckers
f5afa30ee6
- added GetAngle(bool relative, int target) DECORATE function.
2016-04-27 11:52:52 +02:00
Randy Heit
d970be48f9
Use floating point xscale in R_RenderFakeWall()
2016-04-26 23:30:16 -05:00
Randy Heit
a029c7b664
Fix unneeded fixed_t height in R_3D_AddHeight()
2016-04-26 23:11:27 -05:00
Randy Heit
ee43c4ff95
Fixed: Accidentally left in /65536.0 in WallMost()
2016-04-26 23:00:41 -05:00
Christoph Oelckers
8bda356412
- fixed crash in slope drawing: Several overlooked occurences of fixed point math in R_CalcTiltedLighting. Slopes are still completely broken, though.
2016-04-27 04:08:06 +02:00
Christoph Oelckers
a26d81e060
- fixed incomplete float conversion in R_RenderFakeWallRange.
2016-04-27 02:28:45 +02:00
Christoph Oelckers
fab38d092b
- fixed: P_LineOpening could miss a 3D floor if an actor was centered right against its side.
...
- restored the original 3D floor code to retrieve the current floor in P_CheckPosition. The portal aware version was a bit too strict and could place the actor on the wrong side when moving at high speeds.
2016-04-27 02:13:35 +02:00
Chris Robinson
6e25d3f618
Use a background thread for processing OpenAL streams
2016-04-26 06:12:56 -07:00
Chris Robinson
204d0c8572
Don't try to define __try/__except on non-MSVC systems
...
They didn't do anything anyway, and can clash with other compilers since they
may be used internally (macros and keywords starting with __ are for compiler
use).
2016-04-26 05:55:18 -07:00
Christoph Oelckers
172290224b
- make modes 2 and 3 of Teleport_NoFog compatible with Eternity by defaulting to mode 1 when no line is available.
2016-04-25 01:01:28 +02:00
Christoph Oelckers
0f99d7d73f
- floatified the few remaining linedef and sector properties that still were fixed_t. The only fixed point things left in r_defs.h are the nodes and a fixed point setter function for vertex_t, which is still needed by the node builder.
2016-04-24 12:15:09 +02:00
Christoph Oelckers
31845cd16b
- fixed two fixed/float mixups.
2016-04-24 10:24:43 +02:00
Randy Heit
e96ed6bf8d
Add FBaseCVar::GetHumanString()
...
- For most cvars, this is equivalent to calling GetGenericRep() to get a
string.
- For float cvars, it uses %g instead of %H, because %H is generally more
information than is needed.
2016-04-23 22:30:08 -05:00
Randy Heit
fc54dd1ff0
Use %H when converting float cvars to strings to avoid information loss
2016-04-23 22:08:49 -05:00
Randy Heit
3a0d046f7e
Fix rendering with SW 2D: modf usage was backwards
2016-04-23 21:29:40 -05:00
Randy Heit
96a0bee651
Quiet two more warnings from GCC
2016-04-23 21:00:35 -05:00
Randy Heit
3cabd5f0ed
Fix compilation with GCC
...
- GCC is pickier than Visual C++. GCC requires that structs with constructors, etc that are
used in a union must be defined outside the union. VC++ lets you do it inline.
2016-04-23 20:58:15 -05:00
Randy Heit
991f49e321
Avoid copying vissprite_t in R_DrawPSprites()
2016-04-23 20:42:14 -05:00
Randy Heit
b8e3e1f095
Remove BAM_FACTOR from FAngle, because it takes up physical space in the struct
2016-04-23 17:27:36 -05:00
Christoph Oelckers
565bab8bd3
- removed some unnecessary temporary variables.
2016-04-23 22:55:44 +02:00
Christoph Oelckers
f420ccd287
- made Teleport_NoFog compatible with Hexen and Eternity.
...
ZDoom defaulted to Boom's (buggy) angle adjustment.
Changed it so that
* Mode 0 is like Hexen, performing no adjustment at all. This still should match all known maps using this special.
* Mode 1 remains unchanged.
* Mode 2 replicates Boom's broken angle adjustment and is used in the xlat file.
* Mode 3 implements the correct angle adjustment that Boom originally intended.
(Note: Should some map require something different it should be handled with compatibility.txt instead of reverting this back to the broken way it was before.)
2016-04-23 21:32:40 +02:00
Christoph Oelckers
eaabb5e986
- fixed vissprite_t &operator= declaration.
2016-04-23 15:51:46 +02:00
MajorCooke
6bba84458c
- Rail spawned actor trails now set their targets to the shooter and transfer pitch.
2016-04-23 08:19:59 -05:00
Christoph Oelckers
5fcdb7b80d
- bump savegame version for today's changes.
2016-04-23 14:20:40 +02:00
Christoph Oelckers
3c13d8085b
- removed unused R_PointToDist2 and R_PointToAngle2 functions.
2016-04-23 13:55:50 +02:00
Christoph Oelckers
2447f7bc38
- renamed FTransform access functions.
2016-04-23 13:40:02 +02:00
Christoph Oelckers
04e614daec
- removed some fixed point functions that are no longer needed.
...
- fixed: Visplane checks should only compare the plane flags that are relevant for rendering and mask out the rest.
- floatified FTransform and made the visplane checks a bit less verbose by moving the comparison as an operator into FTransform.
Note that this operator needs forceinline on Visual Studio so that it won't get called as a function.
2016-04-23 12:42:07 +02:00
Christoph Oelckers
35a6994d0a
- remove the 'F' prefix from the floating point access function to the sidedef texture info, now that the fixed point versions are gone.
2016-04-23 10:55:55 +02:00
Christoph Oelckers
be8d1b46a7
- remove the deleted functions, now that they are no longer needed.
2016-04-23 10:51:58 +02:00
Christoph Oelckers
4d4f31fd83
- floatified sidedef texture info and fixed two bugs involving this data.
2016-04-23 09:41:59 +02:00
Randy Heit
f1b3f59bcc
Renderer floatification: Use floating point for wall scale and yrepeat
2016-04-22 23:12:53 -05:00
Randy Heit
1f97488945
Renderer floatification: Use floating point for decals
2016-04-22 23:12:53 -05:00
Randy Heit
cb0fe38dfe
Renderer floatification: "fix for signed divide" isn't needed when using xs_RoundToInt
2016-04-22 23:12:53 -05:00
Randy Heit
b2b3e50c5c
Renderer floatification: Use floating point for geometry Zs
2016-04-22 23:12:53 -05:00
Randy Heit
3ef5a678d5
Renderer floatification: Use floating point for texturemids and Y scales
2016-04-22 23:12:53 -05:00
Randy Heit
4a1cc61822
Renderer floatification: Restore playersprite rendering
2016-04-22 23:12:27 -05:00
Randy Heit
ec8d038c99
Renderer floatification: Use floats for lighting values
2016-04-22 23:10:34 -05:00
Randy Heit
4416d88eb2
Renderer floatification: Use floating point for visibility values
2016-04-22 23:10:02 -05:00
Randy Heit
ded3f92452
Commence renderer floatification
2016-04-22 23:09:13 -05:00
Christoph Oelckers
3c7d0c971f
- fixed: It seems it is not allowed to serialize any thinker before the actual thinker chain is serialized. This means that sector_t::floordata, ceilingdata and lightdata's handling had to be moved to P_SerializeWorldActors.
2016-04-22 17:48:25 +02:00
Christoph Oelckers
382a6e8b9f
- link actors to touching line portals, for use by the renderer.
2016-04-21 22:59:07 +02:00
Edoardo Prezioso
afa3009f93
- Fixed a GCC/Clang compiler error and a warning.
2016-04-21 16:11:03 +02:00
Edoardo Prezioso
6cfd82f500
- Simplify more, found by code inspection.
2016-04-21 16:03:33 +02:00
Edoardo Prezioso
6aca7604eb
- Clean the code by using AActor::GiveInventory.
...
This fixes also a bug in FraggleScript GiveInventory, which tried to access the 'SaveAmount' member of 'ABasicArmorBonus' with the wrong cast.
2016-04-21 16:02:43 +02:00
Edoardo Prezioso
7b35f32f3d
- Added the 'GiveInventory' method to the actor.
...
This will help cleaning up the item giving code. Returns a bool, in case the pickup failure might turn to be interesting in the future.
2016-04-21 15:59:23 +02:00
Edoardo Prezioso
ad9b9479ec
- Fixed erroneous P_UndoPlayerMorph calls.
...
In some places, P_UndoPlayerMorph was called with the 'force' argument placed in the 'unmorphflag' parameter, so that 'forced' unmorphs would be not completely forceful.
I hope no mod relied on this weirdness...
2016-04-21 11:25:08 +02:00
Christoph Oelckers
27cc3d6289
- fixed: ACS's GetActorLightLevel didn't check 3D floors.
2016-04-21 11:17:28 +02:00
Christoph Oelckers
ba7260c176
- fixed overflow issue with large damage values in P_RadiusAttack.
2016-04-21 10:51:41 +02:00
Christoph Oelckers
c3eec6db4d
-fixed warnings
2016-04-21 10:38:42 +02:00
Christoph Oelckers
e5dc92f998
- some reshuffling of save data so that the actors won't get restored before the sectors.
...
Note that this required splitting P_SerializeWorld, because sector_t and FSectorPortal contain some actor pointers, for which the same rule applies: Portal linking can only be done after all sectors have been read, meaning it cannot be done along with the rest of the data in these structures.
Obviously such a change breaks savegame compatibility so the min. savegame version had to be increased again.
2016-04-20 19:42:00 +02:00
Christoph Oelckers
082042818b
- refactored sector portal data so that it does not rely on actors.
...
This is necessary because otherwise the level data cannot be serialized before the actors.
2016-04-20 19:20:11 +02:00
Christoph Oelckers
3532dd9ea1
- fixed coordinate correctness issues with P_CheckFor3DFloor/CeilingHit.
2016-04-20 13:28:19 +02:00
Randy Heit
60966f472f
Revert "Revert "Remove "action" from Actor functions that don't actually need it""
...
- This reverts commit 06216d733e
.
- I don't know what I was thinking. Since stateowner is always available
to the wrapper function, and this code is only generated for the wrapper
function, it's a nonissue. The state is already located before calling
any function that uses it.
2016-04-19 21:09:15 -05:00
Randy Heit
06216d733e
Revert "Remove "action" from Actor functions that don't actually need it"
...
- This reverts commit 39df62b20e
.
- Anything that needs to lookup a state also needs stateowner. See
FxMultiNameState::Emit(). I will need to be more selective when
de-actionifying functions.
2016-04-19 20:56:43 -05:00
Randy Heit
05843d3b13
Use "%#g" when disassembly floating point constants
...
- With "%g", there would be no decimal point if the number had no
fractional part, making the output indistinguishable from integers.
2016-04-19 20:48:12 -05:00
Randy Heit
5d3e413d42
Make A_Stop an action function again
...
- A_Stop takes no parameters, so it should be an action function to avoid
creating the wrapper when called.
2016-04-19 20:46:30 -05:00
Randy Heit
39df62b20e
Remove "action" from Actor functions that don't actually need it
...
- An actor function really only needs to be an action function if:
1. It can be called with no parameters specified, either because it takes
none or because all its parameters are optional. This lets SetState()
call it directly without creating a wrapper function for it.
2. It wants access to the callingstate or stateowner parameters. Most
functions don't care about them, so passing them is superfluous.
2016-04-19 20:28:49 -05:00
Christoph Oelckers
322b9fc0ae
- wrap access to portal properties into sector_t:: member functions.
2016-04-19 11:35:28 +02:00
Randy Heit
c795f29cc4
Reduce calling overhead for A_SetUser* functions by making them non-action functions
2016-04-18 23:18:34 -05:00
Randy Heit
e83bc53678
Add atan2, which was conspicuously absent, to the VM
...
- DECORATE now has atan2(y,x) and VectorAngle(x,y) functions. They are
identical except for the order of their parameters. The returned angle
is in degrees (not radians).
2016-04-18 23:06:17 -05:00
Christoph Oelckers
69cbb7a382
- fixed: The pitch calculation did not check the calling actor's height when retrieving the position to calculate the pitch from.
2016-04-19 00:52:08 +02:00
Christoph Oelckers
d2735d7632
- fixed: Trace considered any water surface a hit if nothing else was found.
2016-04-18 18:31:19 +02:00
Christoph Oelckers
5e822fd60b
- fixed: The starting position of sight checks was inconsistent in different parts of p_sight.cpp.
2016-04-18 16:46:56 +02:00
Edoardo Prezioso
8dee0be9ab
- Fixed the morphed player actor friendliness.
...
It wasn't inherited from the original player actor object.
2016-04-18 16:30:13 +02:00
nashmuhandes
a30eb4d709
Fixed a potential NULL assignment in FOptionMenuItemSafeCommand::Activate
2016-04-18 16:30:13 +02:00
nashmuhandes
6bfdd10a5c
Show the command label when choosing a SafeCommand (like Reset2Defaults) in the menu.
2016-04-18 16:30:12 +02:00
Christoph Oelckers
2327107f32
- fixed: Actors cannot be linked into the world until after all actors and sectors have been deserialized.
...
Two issues:
Portal linking requires all skyboxes in the sectors to be present, without them some info is not there when needed.
UpdateWaterLevel was called in AActor::Serialize, which operated on the freshly loaded level where lots of things haven't been set up yet and plane heights may be wrong.
2016-04-18 15:27:19 +02:00
Christoph Oelckers
961a4c8524
- optimized sector portal checks.
...
All the PortalBlocks* functions were turned into real function calls which for such a frequent check should be avoided. So now any linked portal sets a flag in the attached sectors so that it isn't necessary to check the skybox pointer each time which makes the functions subject to inlining again.
2016-04-18 13:40:09 +02:00
Christoph Oelckers
42e88ef120
- removed sector_t::FloorDisplacement and CeilingDisplacement.
...
Using the values these return directly is just as much code.
2016-04-18 13:40:09 +02:00
Christoph Oelckers
c30d5d42a2
- fixed: UpdateSectorRenderList may not be called when spawning mapthings.
...
At this time the portals have not been initialized yet and doing this here would trash the cached previous coordinate.
2016-04-18 13:40:08 +02:00
Christoph Oelckers
8c1eb201eb
- optimized P_PointInSubsector.
...
It costs more to convert the floating point coordinate for each node check than to convert it once up front and only use fixed point math afterward.
2016-04-18 13:40:08 +02:00
Randy Heit
c5c032911c
Let the temporary vissprite be stack local
2016-04-17 20:59:08 -05:00
Randy Heit
66c4bc1fee
Fixed various problems when drawing psprites in a camera texture
...
- When the camera texture for a player view was rendered, its psprites
would overwrite the ones stored for hardware acceleration.
* Use a temporary vissprite in R_DrawPSprite() until it's known that it
will be accelerated.
* Do not write to any of the VisPSprites*[] arrays until it's known that
the sprite will be accelerated.
2016-04-17 20:55:07 -05:00
Randy Heit
bf629d2590
Use a range instead of strict equality when deciding head sounds
...
- See http://forum.zdoom.org/viewtopic.php?f=7&t=51583
2016-04-17 20:14:25 -05:00
Christoph Oelckers
2661a94fe9
- call UpdateSectorRenderList from LinkToWorld as well, because this can be called from outside the actor's Tick function.
2016-04-18 01:35:37 +02:00
Christoph Oelckers
89b2cc45a2
- reverted P_CreateSecNodes to the regular FBlockLinesIterator.
...
This got accidentally committed. Even if this gets extended to reach through portals it needs to be done differently. FMultiBlockLinesIterator can't guarantee to get every sector that's being touched.
2016-04-18 00:02:07 +02:00
Christoph Oelckers
54d78df267
- added a new sector list to AActor that collects all portal-linked sectors the actor's center is in. (Inspired by Eternity's solution to the same problem.)
...
This is for rendering the sprite properly in all areas the actor touches. The original thinglist is not sufficient for this and Boom's touching thinglist has other purposes and collects too much data.
This new list will only get filled in when the actor is actually crossing a portal plane, for the normal sector thinglist will still be used.
This piggybacks on the msecnode_t code which has been extended to be able to handle more than one list by passing the sector's membert pointers as parameters.
2016-04-17 23:48:04 +02:00
Christoph Oelckers
f66202aef1
- fixed: If due to portal transitions, the chasecam cannot be interpolated, the entire view interpolation must be disabled for the current frame.
2016-04-17 18:42:54 +02:00