Commit graph

4804 commits

Author SHA1 Message Date
Benjamin Moir
cf43bd969d Added Warp to ACS 2015-07-30 16:56:54 +09:30
MajorCooke
9319854590 Small bugfixes
- Fixed a couple tiny bugs with A_ScaleVelocity and A_ChangeVelocity using self instead of ref.
2015-07-27 12:20:32 -05:00
MajorCooke
ce1037af95 - Missing check for RGF_PLAYERS/VOODOO. 2015-07-24 13:48:46 -05:00
MajorCooke
41b4df71c2 Use IsKindOf instead of MF_SPECIAL to check for an inventory item. 2015-07-22 17:12:42 -05:00
MajorCooke
b4f05ee89b - Significant A_RadiusGive update.
- Added filter and species parameter.
- Added new flags: RGF_INCLUSIVE, RGF_ITEMS, RGF_KILLED, RGF_EXFILTER, RGF_EXSPECIES, and RGF_EITHER.
- RGF_ITEMS: Items can receive inventory.
- RGF_KILLED: Actors who are truly dead might not be corpses, and vice versa.
- RGF_EXFILTER: Blacklists the specified actor filter. All but the filtered actor can receive the item.
- RGF_EXSPECIES: Blacklists the specified species. All but the filtered species can receive the item.
- RGF_EITHER: The actor can receive the item if it satisfies either the filter or the species. Only useful when both are used.
- RGF_INCLUSIVE: An actor marked as more than one pointer to the calling actor can ignore the exclusion pointers, but only if at least one is missing. I.e. an actor who is a target and tracer of the calling actor can still receive the item, if the calling actor doesn't pass RGF_NOTARGET and NOTRACER at the same time. RGF_INCLUSIVE only works with the pointer filtering flags. By default, if not specified, the actor will not be loopholed the item if they are under any one of the three filters.
- Fixed discrepancies and dependencies upon several flags and actor conditions which caused the function to fail.
2015-07-22 16:46:14 -05:00
coelckers
7be6041f57 Merge pull request #347 from edward-san/xs_float_infinite_loop
- Fixed a dangerous typo in xs_Float code.
2015-07-16 20:26:21 +02:00
coelckers
e857d875cc Merge pull request #346 from edward-san/uninitialized_build_stairs
- Fixed an uninitialized variable in stairs code.
2015-07-16 20:25:46 +02:00
Edoardo Prezioso
f57e23989b - Fixed a dangerous typo in xs_Float code.
The function 'xs_CeilToUInt' would call itself, leading to infinite loop, due to a typo. It should call 'xs_CeilToInt' instead.
2015-07-16 19:54:27 +02:00
Edoardo Prezioso
1bd23150aa - Fixed an uninitialized variable in stairs code.
'floor->m_Hexencrush' was left uninitialized in all the floor movers after the first one.
2015-07-16 19:46:54 +02:00
Edoardo Prezioso
99683f0e7d - Fixed a KEYCONF parser issue with empty lines.
The code attempted to access an array outside its bounds when it tried to parse empty lines.
Discovered with the Address Sanitizer.
2015-07-16 19:43:30 +02:00
Christoph Oelckers
add52d48cd - fixed: INPUT_XInput must also be available when compiling without XInput support so that the corresponding JoyDevice can be accessed. 2015-07-15 14:44:37 +02:00
Christoph Oelckers
47303b26c7 - define GET_XBUTTON_WPARAM for MinGW in all file which need it. 2015-07-15 14:09:21 +02:00
Christoph Oelckers
c677dd37f5 - changed I_PrintStr so that it doesn't add everything to the RichEdit control right away.
The RichEdit control can become quite slow with large amounts of text being added constantly.
Since anything that gets added while the game is running can't be seen anyway unless a fatal error is produced, it buffers the text locally now, without any processing, and only adds it to the RichEdit control in case a fatal error causes the control to be displayed again.
2015-07-15 12:53:58 +02:00
Christoph Oelckers
1e4bec25c5 - fixed the distance check for unblocking overlapping monsters. It tested for half the radius as distance threshold when it should have used the full radius 2015-07-15 10:15:12 +02:00
Christoph Oelckers
19d15d7fc8 - fixed: Levels could be exited multiple times, triggering special exit actions for each one. 2015-07-15 09:25:04 +02:00
Christoph Oelckers
b5033d2940 - fixed a bad check from pull request #325. 2015-07-15 09:11:08 +02:00
Christoph Oelckers
585366f872 - fixed signedness warning. 2015-07-15 09:08:15 +02:00
Christoph Oelckers
fe2e293d02 - added some error checks for trying to create unsupported animations for textures with full path names. 2015-07-13 09:08:08 +02:00
Christoph Oelckers
eeaea59828 - fixed: FTagManager::RemoveSectorTags must check if the StartForSector array is large enough to contain the sector whose information is to be removed. 2015-07-13 08:42:42 +02:00
Marrub
9e1a82a830 fix menus muting themselves when the volume is changed 2015-07-10 08:45:15 +00:00
Braden Obrzut
3adda344b6 - Missing common resolution 1680x1050 added to resolution list of SDL and Cocoa. 2015-07-06 02:58:01 -04:00
Randy Heit
0fa0dc5f9e Add support for alias parameter substitution in quoted strings
- For backward compatibility, you need to indicate that substitution is
  allowed in the string by prepending it with a % character:

    alias asay "say %\"%1\""

  The above will substitute the alias parameter.

    alias asay "say \"%1\""

  The above will not substitute the alias parameter but use the string
  literal "%1" directly.
2015-06-30 13:01:48 -05:00
coelckers
f0b73b30c0 Merge pull request #341 from Edward850/railfix
Add missing MF7_FORCEDECAL flag for rail attacks, and changed operation to doubles
2015-06-25 08:57:03 +02:00
Edward Richardson
2a69ae2a43 Change all float calcs in rails to doubles 2015-06-25 13:57:36 +12:00
Edward Richardson
8670b7ecf7 Use puff decal with MF7_FORCEDECAL 2015-06-25 12:53:46 +12:00
Christoph Oelckers
85449a6b8a - fixed: A_BFGSpray checked the spray actor's class for MTHRUSPECIES, not the actual shooter. 2015-06-21 13:04:47 +02:00
Eevee (Alex Munroe)
911b35370e Let's go wild and do it for the ceiling, too. 2015-06-09 13:41:48 -07:00
Eevee (Alex Munroe)
3b2126ba95 Don't allow pressing a checkswitchrange switch that's in the floor. 2015-06-09 13:20:10 -07:00
alexey.lysiuk
2200569793 Fixed build on OS X without FMODEx 2015-06-07 11:31:53 +03:00
Christoph Oelckers
4444d3c0c5 - removed the _3DFLOOR #define because we really do not want to comment this out anymore, right? 2015-06-07 09:41:44 +02:00
Christoph Oelckers
3fea074d35 - respect FF_INVERTSECTOR when checking a 3D floor's terrain. 2015-06-07 09:33:15 +02:00
Christoph Oelckers
2b59a35e84 Merge branch 'texture-scaling-3d-floors' of https://github.com/eevee/zdoom 2015-06-07 09:09:55 +02:00
Eevee (Alex Munroe)
15b97c1409 Fix scaling of 3D floor wall textures.
The scale factors are now taken from the same part of the sidedef that
provides the texture.
2015-06-06 18:26:13 -07:00
Eevee (Alex Munroe)
8fa9aa2627 Use the correct sidedef's middle scaling when drawing 3D floors.
This wants `curline->sidedef`, which is the 3D sidedef currently being
drawn.  `sidedef` appears to be the last regular sidedef that happened
to be drawn?  The perils of globals.
2015-06-06 18:17:50 -07:00
Eevee (Alex Munroe)
221c2d2d82 Transfer flat-based damage (P_PlayerOnSpecialFlat) to 3D floors. 2015-06-06 16:07:48 -07:00
Eevee (Alex Munroe)
8a428e69b6 Don't play a terrain splash if the player didn't take damage. 2015-06-06 16:07:48 -07:00
Eevee (Alex Munroe)
a87a86198c Transfer friction to swimmable 3D floors. 2015-06-06 16:07:48 -07:00
Braden Obrzut
662345adb8 - Fixed: More endian issues in the ACS VM. 2015-06-05 22:22:54 -04:00
Christoph Oelckers
ae3b52a68a - fixed: Software renderer's colormap variables should not be accessed from common renderer interface code. 2015-06-04 09:20:55 +02:00
MajorCooke
4c390d92a4 -...forgot this one. 2015-06-02 12:22:26 -05:00
MajorCooke
22570e079e * Added LAXTELEFRAGDMG. This flag forces all damage to be factored, regardless being above or below the telefrag threshold.
- This only affects damage calculations being received by the end result. If the original damage was not a million or more, from the start, it will not hurt invulnerable-flagged or kill buddha-flagged monsters.
- Fixed: Damage was inconsistent by the time the function checked for player cheats/invulnerability and (monster and player) buddha, yet monster invulnerability checked the original damage prior to factor processing. This means a damage source that intended to damage another below the threshold could accidentally increase with a powerdamage multiplier or the recipient with a weakness for it, resulting in invulnerability/buddha foiling. Now, checks for telefrag damage using the raw original value on player godmode, player/monster invulnerability and buddha.
2015-06-02 12:10:45 -05:00
Christoph Oelckers
c1e3c16232 Merge branch 'master' of https://github.com/rheit/zdoom 2015-05-28 09:23:14 +02:00
Christoph Oelckers
65cc361e9b - added Zandronum's text input menu items. 2015-05-28 09:22:48 +02:00
Edoardo Prezioso
4546df7dc3 - Fixed SetActorPitch and ChangeActorPitch issue.
The code did not take into account the player's limited pitch.
2015-05-28 00:41:07 +02:00
Christoph Oelckers
733873351a Merge branch 'master' of https://github.com/rheit/zdoom 2015-05-25 19:58:02 +02:00
Christoph Oelckers
9f208409f2 - fixed: The tag check in Sector_CopyScroller was inverted (it should reject sectors with the given tag, but it rejected everything else.) 2015-05-25 19:57:36 +02:00
Braden Obrzut
c9214c1ce9 - Fixed: Hexen's status bar top graphic was drawn 1 pixel too low.
- Fixed: Artiflash played on initial save loading. I seem to recall this looking like an intentional change, but perhaps I broke it since it's completely pointless to play the animation only on the first load of a save game if nothing has been loaded beforehand.
2015-05-20 13:10:08 -04:00
Braden Obrzut
e46b25f628 - Fixed: god2 didn't trigger invulnerability in SBarInfo. 2015-05-20 12:54:13 -04:00
Braden Obrzut
354ec022b3 - On Windows resizing a window just renders the image to the size of the window, so lets do the same for SDL (makes mouse coordinate scaling easier). 2015-05-20 12:32:17 -04:00
Braden Obrzut
4d082d93cd - Use SDL_RenderSetLogicalSize to handle animorphic ratios in fullscreen with SDL backend.
- Reuse the old window in the SDL backend since in some instances switching windows causes issues (OS X fullscreen for instance (while using the SDL backend of course)).
- Clear the SDL render before copying in the framebuffer to remove HOM-like effect.
2015-05-19 17:09:20 -04:00
Christoph Oelckers
4d496f8b04 Merge branch 'master' of https://github.com/rheit/zdoom 2015-05-17 21:41:09 +02:00
Christoph Oelckers
1e3230486e - Fixed: FTagManager::Clear did not clear the line ID hashing index. 2015-05-17 21:40:25 +02:00
Braden Obrzut
f10416af8a - Fixed: Missing WINAPI macro in SHGetFolderPathA (MSDN documentation didn't include it so I didn't. Apparently Microsoft is just incosistent since it's documented in functions like GetLongPathName.) 2015-05-07 23:52:58 -04:00
Christoph Oelckers
87ff82dba6 - fixed: Trying to remove sector tags for line-less sectors crashed when there were no sector tags at all in a map. 2015-05-07 13:05:18 +02:00
Christoph Oelckers
b587c85a81 - fixed: On Windows the cache path could end up with double slashes when no AppData folder could be found. 2015-05-07 00:45:36 +02:00
Christoph Oelckers
535102ae6e - fixed: NULLing the flash state in P_BringUpWeapon should be done before setting the main weapon state so that it doesn't cancel any flash state effects that get initiated there. 2015-05-05 11:23:41 +02:00
Christoph Oelckers
f8fd28118b Merge branch 'master' of https://github.com/rheit/zdoom 2015-05-04 08:56:04 +02:00
Christoph Oelckers
6f0caee4ba - fixed: Searching for tag 0 was no longer possible.
The new tag manager considers tag 0 'untagged' and won't create entries in its tag list for it, so the normal search algorithm can not find any such sector.
It now uses a linear search over all sectors instead, if tag 0 is looked for.
2015-05-04 08:55:31 +02:00
MajorCooke
6639f871c6 - Fixed A_SetRipMin/Max not working properly. 2015-05-03 17:55:01 -05:00
Edoardo Prezioso
353ace8be7 - Improve the code readability in LookupLevelName. 2015-05-02 14:18:52 +02:00
Edoardo Prezioso
4217c2ccd6 - Fixed a very old bug in LookupLevelName code.
If the map name neither matched 'ExMy', 'MAPxy' or 'LEVELxy', 'checkstring' was left uninitialized before using as argument to 'strstr', leading to undefined results.

Spotted with Valgrind.
2015-05-02 13:46:34 +02:00
MajorCooke
dc00d61f4d - Added TF_OVERRIDE to A_Teleport.
- Overrides the NOTELEPORT flag so actors with velocity don't need to disable it in order to perform A_Teleport, which could be screwed up by a teleporting line or sudden ACS interference.
- Ensure that the result is set to false if it fails prematurely. Wasn't sure if this was needed, but with the upcoming if/else statements, better safe than sorry.
2015-05-01 08:32:07 -05:00
MajorCooke
1ecc048441 - Change the pointer to be at the end instead of the start. 2015-04-30 08:28:41 -05:00
MajorCooke
492ef1b716 - Added A_JumpIfHigherOrLower.
- (int ptr = AAPTR_TARGET, state high, state low, float offsethigh = 0, float offsetlow = 0, bool includeHeight = true)
- Jumps if the pointer of the calling actor is higher or lower than itself, adding offsethigh or offsetlow depending on the circumstance.
- includeHeight works twofold.
- Includes the height of the calling actor if the pointer is higher to truly determine if they are completely above them or not.
- Includes the height of the pointer if the pointer is lower.
- Disable it to only check z differences without adding height.
2015-04-30 08:15:48 -05:00
coelckers
a6dcd20447 Merge pull request #321 from edward-san/tflags_fix
- Fixed compiler errors and warnings from TFlags.
2015-04-30 13:01:59 +02:00
Christoph Oelckers
4316740ee9 - some color coding of error messages during ACS loading. (not that I expect that the people these are meant for will read them anyway...) 2015-04-30 12:59:26 +02:00
Christoph Oelckers
97e63b1319 - split up FBehavior constructor to better be able to weed out broken ACS modules.
Please note that this WILL break old savegames from mods which put ACS sources or unrelated data in the ACS namespace!
2015-04-30 12:53:44 +02:00
Edoardo Prezioso
cda4fece1b - Fixed compiler errors and warnings from TFlags. 2015-04-30 12:35:29 +02:00
Christoph Oelckers
50a3f8a3d2 - fixed copy/paste error. 2015-04-30 12:31:47 +02:00
Christoph Oelckers
84351419a3 Merge branch 'master' of https://github.com/crimsondusk/zdoom
Conflicts:
	src/actor.h
2015-04-30 10:03:50 +02:00
Christoph Oelckers
9880af1b0c - this line got lost during conflict resolution. 2015-04-30 09:18:13 +02:00
Christoph Oelckers
405fc31e81 Merge branch 'master' of https://github.com/DaZombieKiller/zdoom
Conflicts:
	src/actor.h
2015-04-30 09:14:31 +02:00
coelckers
691855e19b Merge pull request #304 from MajorCooke/morphundoalways
- Added MORPH_UNDOALWAYS for morph powerups.
2015-04-30 09:05:41 +02:00
coelckers
c2e91293d2 Merge pull request #310 from MajorCooke/telefogfix
- Allow teleport fogs to set the teleporting actors as their targets, so...
2015-04-30 09:02:10 +02:00
Christoph Oelckers
7d90c65427 - mask out Strife mapthing flags when starting an original Hexen map. 2015-04-29 08:42:54 +02:00
Christoph Oelckers
3c1fa3bed9 - fixed some GCC warnings. 2015-04-29 00:19:21 +02:00
Christoph Oelckers
a2100410f2 - fix in GL nodes loader. 2015-04-28 22:13:50 +02:00
Christoph Oelckers
f087903fca - remove some redundancy from TeleportFog code. 2015-04-28 22:11:43 +02:00
coelckers
15fbf2510a Merge pull request #320 from edward-san/clang_3_5_crash_solved
- Clang 3.5.1+ fixed the compiler bug in ACS code.
2015-04-28 22:06:50 +02:00
coelckers
ce4adc48a7 Merge pull request #319 from edward-san/inventory
Little TakeInventory refactoring.
2015-04-28 22:06:31 +02:00
Christoph Oelckers
319671b54a - let cheats only give weapons in weapon slots.
This avoids problems which replace the entire arsenal and don't want the original weapons in there.
2015-04-28 22:05:43 +02:00
Edoardo Prezioso
92fe265abe - Clang 3.5.1+ fixed the compiler bug in ACS code.
Referring to commit 1c96039d7a .
2015-04-28 19:25:06 +02:00
Edoardo Prezioso
b51fac344d Little TakeInventory refactoring.
Introduce AActor::TakeInventory, which unifies DoTakeInv from ACS and DoTakeInventory from Decorate, and AInventory::DepleteOrDestroy, which is extracted from the DoTakeInv core function, and use both where they're needed.
I don't know if the differences between DoTakeInv and DoTakeInventory were intentional, so I kept both behaviors.
2015-04-28 15:45:11 +02:00
Christoph Oelckers
a93c30238b Merge branch 'master' of https://github.com/rheit/zdoom 2015-04-27 20:38:09 +02:00
Christoph Oelckers
c6fe0835d3 - fixed: The check for unblocking overlapping actors was a bit too lax.
The code never checked the starting position of the move and could be erroneously triggered in rare situations where the distance increased between actors but the hit boxes started overlapping because x or y distance got below the radius.
Changed it so that the code only gets executed when there's already an overlap before the move.
2015-04-27 20:37:01 +02:00
Braden Obrzut
9ba5e30bed - Moved autoload initialization to a separate function so that the rest of the ini can be loaded as before. Some platforms do indeed place zdoom.pk3 elsewhere. 2015-04-27 14:15:03 -04:00
Edoardo Prezioso
346fcf584c - Fixed C++11 warnings from recent commits. 2015-04-27 15:22:09 +02:00
Christoph Oelckers
47e7a30cab - reshuffled some stuff to satisfy Linux compilers (hopefully) 2015-04-27 13:19:34 +02:00
Randy Heit
68e43fe65d You never want to blindly switch between widechar and ANSI functions 2015-04-26 20:53:16 -05:00
Randy Heit
0380ba642b Blur de hur 2015-04-26 20:43:01 -05:00
Christoph Oelckers
13fb76db21 - changed lump reader setup for music so that for uncompressed data it opens a new FILE instead of caching the lump.
This reinstates behavior of pre-OpenAL versions but still uses the FileReader interface to keep the simplified code of the OpenAL branch.
2015-04-26 23:28:05 +02:00
Christoph Oelckers
4294b94728 - since Wads.ReopenLumpNum already performs caching on the lump data it is not really necessary anymore to maintain a separate musiccache, so this code can be removed. 2015-04-26 22:09:19 +02:00
MajorCooke
43053b89a5 - Set the morphing and unmorphing actor as target for the teleport fog. This will allow for better interactions on what should happen between the morphee without needing to make monster AI needing to search for them in particular or rely upon TIDs. 2015-04-26 10:06:13 -05:00
Christoph Oelckers
aecff68a4d - cleanup of sound system startup and menu handling:
* added global functions that check whether FMod and OpenAL are present, without initializing the sound backend.
* make sound init code more fault tolerant. It will now try to switch between FMod and OpenAL if the currently active one cannot be found but the other one can.
* added 'ifoption' checks for sound backend to menu code.
* only show sound backends which are present and hide the options for the ones which are not.
2015-04-26 12:13:21 +02:00
Christoph Oelckers
8e70a9b894 - added a NULL check to FMODStreamCapsule destructor, just to be safe. 2015-04-26 09:58:10 +02:00
Christoph Oelckers
a23afbd7ce Merge branch 'master' into openal 2015-04-26 09:37:49 +02:00
Christoph Oelckers
46e975418d - fixeed: Sound sequence overrides took the parameter from the wrong data structure. 2015-04-26 08:48:49 +02:00
Christoph Oelckers
6bb79be85c - got rid of std::auto_ptr, courtesy of Blzut3's patch. 2015-04-25 17:50:57 +02:00
coelckers
b9fdc21547 Merge pull request #317 from Edward850/master
Slightly more information on ACS serialize errors
2015-04-25 13:14:58 +02:00
Christoph Oelckers
d880783784 - make OpenAL and the decoder libraries delay loaded so that ZDoom can still start without them being present.
This required the addition of a few exception handlers so to avoid #ifdef overuse I also added some #defines for non-Windows systems that allow using __try and __except directly in the code without #ifdef'ing them out.
2015-04-25 12:25:10 +02:00