Commit Graph

6007 Commits

Author SHA1 Message Date
Christoph Oelckers 5664cee2e5 - fixed: The check for leftover portal sectors was not correct. It only checked the sectors the portal thing was in and those were already processed in the first phase.
- improved: If there's an offset mismatch, do not print group numbers as they are utterly meaningless. Instead look for a sector in each group and report those.
- added a copyright notice and some comments to portals.cpp.
2016-02-15 12:35:40 +01:00
Christoph Oelckers afc631b537 - this wasn't saved for last night's commit. 2016-02-15 09:25:48 +01:00
Christoph Oelckers 6adb069506 - rewrote p_local.h so that it doesn't pull in the entire bunch of headers.
This was to resolve some circular dependencies with the portal code.
The most notable changees:

 * FTextureID was moved from textures.h to doomtype.h because it is frequently needed in files that don't want to do anything with actual textures.
 * split off the parts from p_maputl into a separate header.
 * consolidated all blockmap related data into p_blockmap.h
 * split off the polyobject parts into po_man.h
2016-02-15 02:14:34 +01:00
Christoph Oelckers 405db83393 - added a function which collects all portal group an actor would touch if standing in a given position. 2016-02-15 00:53:59 +01:00
Christoph Oelckers 0dce22ce85 - some portal considerations. 2016-02-14 21:02:18 +01:00
Christoph Oelckers 5af53c0e62 - fixed a few more sector movers which calculated their movement at (0,0) instead of inside the sector. 2016-02-14 18:53:00 +01:00
Christoph Oelckers 126c80d597 - create the portal group table. 2016-02-14 18:16:59 +01:00
Christoph Oelckers c338b9cde3 - some more portal preparation . 2016-02-14 16:26:27 +01:00
Christoph Oelckers d5a1004c41 - some preparations for portal stuff:
* set up linked sector portals so that everything that will eventually have to be considered is present, even though the software renderer currently can't handle those adequately.
* tag all skybox things with a type so that they can easily be distinguished at run time.
* fill in the linked portal types in xlat/eternity.txt.
2016-02-14 13:12:03 +01:00
Christoph Oelckers 993a840630 - bring formatting in line with GZDoom's version of this function. 2016-02-14 12:33:47 +01:00
Christoph Oelckers e42dbb5087 Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	src/sound/oalsound.cpp
2016-02-13 14:56:03 +01:00
Christoph Oelckers 340faef1ec - fixed a few 64-bit warnings. 2016-02-13 13:37:28 +01:00
alexey.lysiuk ce8b2974a3 Handle inability of OpenAL implementation to return number of available sources
OpenAL specification doesn't require alcGetIntegerv() to return meaningful values for ALC_MONO_SOURCES and ALC_MONO_SOURCES.
At least Apple's OpenAL implementation returns zeroes, although it can generate reasonable number of sources.
2016-02-13 11:11:02 +02:00
Randy Heit 01bed05275 Do not use fast math for the node builder
- The node builder generates data used by the playsim, so should be as
  consistant as we can manage across compilers and architectures.
2016-02-12 16:27:47 -06:00
Christoph Oelckers f7e27032dc - fixed: The default vertical spread for the BFG tracers was set to 32*FRACUNIT instead of 32*ANGLE_1. 2016-02-12 18:55:18 +01:00
Christoph Oelckers b818624f58 - enabled fast math for all known non-playsim files in the CMake project. 2016-02-12 12:51:09 +01:00
Christoph Oelckers e6328c8432 - enable fast floating point math in the subprojects that can benefit from it: dumb, gme and gdtoa. 2016-02-12 02:02:48 +01:00
Christoph Oelckers d25455736a - store floating point parameters for DECORATE properties as doubles. 2016-02-12 01:21:29 +01:00
Christoph Oelckers 73cbc59dd9 - replaced double2fixed function with FLOAT2FIXED macro. 2016-02-11 22:57:26 +01:00
Christoph Oelckers bf03ea496e - fixed: instant sector movement actions must actually delete the created interpolation right away and not wait until it deletes itself. 2016-02-11 22:03:09 +01:00
Christoph Oelckers c5c4ec83c2 - ensure thar PRINTNAME_LEVEL always uses uppercase. 2016-02-11 21:45:34 +01:00
Christoph Oelckers 158caf78a0 - more float to double conversion.
In particular this removes all assignments of FIXED2FLOAT to double variables because they not only lose precision but also generate unnecessary code.
2016-02-11 21:33:30 +01:00
Christoph Oelckers 34255908b0 - fixed: Initialization of spawn IDs from MAPINFO and DECORATE was in the wrong order. (looks like a badly resolved merging conflict) 2016-02-11 20:41:04 +01:00
Christoph Oelckers 584147b8bb - removed all occurences of FVector2 and FVector3 from the playsim code. 2016-02-11 20:01:12 +01:00
Christoph Oelckers 64dabc3c0b Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-11 19:13:48 +01:00
Christoph Oelckers 33cdb4d816 - replaced all single precision floats in p_slopes.cpp with doubles.
I don't think we want to have precision and reliability issues in such a vital part of the engine...
2016-02-11 19:13:29 +01:00
MajorCooke dcfdb50307 - Fixed: checkz wasn't used.
- Use 0 instead of false.
2016-02-10 18:04:59 -06:00
MajorCooke fefdb266cd - Fixed: The coordinates need to be converted to doubles first. Also use length instead of length squared. 2016-02-10 17:48:17 -06:00
MajorCooke e04fe06226 GetDistance Non-Action (Double version)
- Added GetDistance(bool checkz, ptr = aaptr_target).
- Returns the distance of an actor. Must be target, master or tracer.
2016-02-10 17:13:50 -06:00
Christoph Oelckers 646f7a1f90 Merge branch 'ChaseDontTurnScript' of https://github.com/MajorCooke/zdoom 2016-02-10 22:47:41 +01:00
Christoph Oelckers d712686122 - fixed: A_CountdownArg could no longer access the first arg.
The latest bit of refactoring turned a '<0' check into '>0', while it should have been '>=0'.
2016-02-10 21:56:45 +01:00
Christoph Oelckers 7e45c49c2f - fixed: The expression evaluator must ignore the action function symbol for ACS_NamedExecuteWithResult.
This is necessary because otherwise the incompatible action function will take precedence over the special handling for this inside FxFunctionCall.
2016-02-10 21:48:28 +01:00
Christoph Oelckers 4428d073d5 - fixed: code generation for floating point negation was wrong. 2016-02-10 20:08:19 +01:00
Christoph Oelckers 1c0cd16d3f - fixed: AActor::SetState must restore the 'state' member to the actual calling state after it detected OF_StateChanged.
This is needed to decide how the '####' and '----' placeholders should behave.
2016-02-10 18:13:20 +01:00
Christoph Oelckers d18a839836 - to prevent further occurences of ValueType == 0 being misinterpreted, change it to signify unknown value type and ensure that any real type is non-zero. 2016-02-10 17:11:50 +01:00
Christoph Oelckers 85a3cd984d - fixed: ParseParameter should not make any assumptions about the necessity of a type cast between int and float.
With late resolving it cannot be guaranteed at this point and caused some incorrectly compiled code. Since the cast gets optimized away anyway when not needed there's no point being this selective with applying it.
2016-02-10 17:06:33 +01:00
Christoph Oelckers a7254a4af5 - removed the conversion operators from the fixedvec structs (again)
They must have been accidentally left in by not properly resolving a merge conflict, I guess.
2016-02-10 14:43:04 +01:00
Christoph Oelckers d1b2ef5368 - some refactoring of olddecorations.cpp to move some repeated code into a subfunction. 2016-02-10 14:38:08 +01:00
Christoph Oelckers b5029e0976 - call the native A_BossDeath directly instead of going through the VM-enabled action function.
- undo some formatting screwup in a_clericstaff.cpp.
2016-02-10 13:57:21 +01:00
Christoph Oelckers dd55e0a4c4 - cleaned up a_painelemental.cpp.
No need to expose VM stuff this openly here.
2016-02-10 13:34:16 +01:00
Christoph Oelckers e2de258498 - remove debug output. 2016-02-10 12:09:14 +01:00
Christoph Oelckers 3e5d1feecd - fixed: A_CheckProximity could return unmorphed player pawns of currently morphed players. 2016-02-10 11:58:54 +01:00
Christoph Oelckers dde9336235 - silence floating point conversion warnings in oalsound.cpp 2016-02-10 11:29:32 +01:00
Christoph Oelckers 15177c34f9 Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-10 10:05:14 +01:00
Christoph Oelckers bc616dbf06 - fixed: APowerupGiver::PowerupType also needs replacement handling for placeholder classes. 2016-02-10 10:04:52 +01:00
MajorCooke e043a89f15 Forgot to save this with the last commit. 2016-02-09 23:19:28 -06:00
MajorCooke e73a737350 When about to hit a new floor, don't change the direction of the actor if STOPIFBLOCKED is up. 2016-02-09 23:16:15 -06:00
MajorCooke ebe6cef7cc This was a little too far in. 2016-02-09 22:57:54 -06:00
MajorCooke 4fcc9efea0 - Fixed A_Wander calling --movecount too soon.
- Also added NORANDOMTURN flag accountability for A_Wander.
2016-02-09 22:45:59 -06:00
Braden Obrzut 65b70dedaa - Fixed: Heretic powered firemace balls didn't seek their target. 2016-02-09 23:34:14 -05:00
Braden Obrzut f33993dcb5 - Load OpenAL at runtime for all platforms because I can't think of a good reason not to handle them all the same right now. 2016-02-09 22:40:19 -05:00
Christoph Oelckers 3358181f18 - cleaned up the class data organization:
* moved RestrictedToPlayerClass and ForbiddenToPlayerClass arrays to AInventory.
 * moved all copy-from-parent code into DeriveData functions.
2016-02-10 00:46:51 +01:00
Christoph Oelckers 6ce0c9f78e - split up PClass::Derive and its child functions because part of them is also needed when initializing an inherited native class with the properties of its parent - but calling the base version in PClass is not possible.
- moved a few AActor properties out of the EXE so that I could easily test if it works.
2016-02-10 00:17:00 +01:00
Christoph Oelckers b484cbf18a - fixed: It is not guaranteed that the class object that is created by FindClassTentative actually matches the real object that is required later, so it needs to be replaced wherever it could be referenced once the real object is created.
- removed some unneeded code from earlier attempts to fix the class type resolving issue.
2016-02-09 23:08:51 +01:00
Christoph Oelckers ff70cf1ee7 - fixed: Resolving non-constant DECORATE expressions must be delayed until everything has been parsed.
If done as before, forward-declared classes cannot be found, and the immediate resolving is only needed for constant expressions, so explicitly enabling it in the 4 places where it is needed ensures that those unresolvable expressions remain intact until the final processing pass righr before the code generator is started.
2016-02-09 19:02:44 +01:00
Christoph Oelckers 5261acce1d - undid incorrect part of CheckClass fix. 2016-02-09 17:55:43 +01:00
Christoph Oelckers bcfb437302 - fixed message output. 2016-02-09 15:06:55 +01:00
Christoph Oelckers 78ac944242 - allow optional terrain definitions
... because any Doom terrain WAD would otherwise spam the logfile with messages when running an error log batch.
2016-02-09 14:38:42 +01:00
Christoph Oelckers 4d2a52418f - added an errorlog option.
This cuts down on as much message noise as possible, outputs everything to a file specified as a parameter and then quits immediately, allowing this to run from a batch that's supposed to check a larger list of files for errors.
Multiple outputs get appended if the file already exists.
2016-02-09 14:20:49 +01:00
Christoph Oelckers 6c92525fcd - added an option to FindClassTentative to make eventual failure to declare the missing class non-fatal.
Damn those old mods with broken actor references. Thanks to those FxClassTypeCast may not throw fatal errors.
2016-02-09 12:26:00 +01:00
Christoph Oelckers 26b657b637 Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-09 11:51:39 +01:00
Christoph Oelckers 8823b60c0d - fixed: FxClassTypeCast must use FindClassTentative to get the class type.
This function may well be invoked before a class is actually defined, so it needs to create a placeholder to be filled in later.
2016-02-09 11:51:19 +01:00
John Palomo Jr 88f6157984 Fixed: Player color slider size/position was wrong when using language strings. 2016-02-09 02:49:28 -05:00
Randy Heit f0b4962052 Fix: CountInv must return a value if the caller's expecting one 2016-02-08 22:21:42 -06:00
Randy Heit 8d159b8506 Add OF_StateChanged handling to NoDelay 2016-02-08 22:11:42 -06:00
coelckers 1ca2293983 Merge pull request #538 from MajorCooke/CountInv
CountInv(itemtype, ptr_select)
2016-02-08 21:06:30 +01:00
Christoph Oelckers 0a7b17c469 Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-08 21:01:46 +01:00
Christoph Oelckers ceba4b0dae - fixed: old style DECORATE must use exactly the same method to store the damage function as the modern version.
The difference in handling crashed with Daedalus.
2016-02-08 21:01:25 +01:00
MajorCooke 124e0458cf - Fixed: A_CheckProximity could trigger an assert because the flags and ptr were not flagged as optional.
- Fixed: CPXF_ANCESTOR no longer worked for some reason because apparently the IsAncestorOf() functionality has changed. Use IsKindOf instead.
2016-02-08 10:26:18 -06:00
Christoph Oelckers c940c2ba81 - fixed: The counters for the whirlwind were initialized too late, the first time they are needed is in P_CheckMissileSpawn, which gets called from inside P_SpawnMissile. Also took the opportunity and moved them to properties that are accessible from DECORATE. 2016-02-08 13:34:54 +01:00
Christoph Oelckers 43b4d452db Merge branch 'ChaseThresholdScript' of https://github.com/MajorCooke/zdoom
# Conflicts:
#	src/version.h
2016-02-08 13:06:08 +01:00
Christoph Oelckers 6d0ef7a9da - added conversion macros to convert floating point angles to angle_t, using xs_Float.h, and replaced all occurences in the code with them (let's hope I found everything.)
Converting a floating point value that is out of range for a signed integer will result in 0x80000000 with SSE math, which is used exclusively for this purpose on modern Visual C++ compilers, so this cannot be used anywhere.
On ARM there's problems with float to unsigned int conversions.

xs_Float does not depend on these
2016-02-08 12:10:53 +01:00
Randy Heit 7b42093dc9 Revert "- fixed incorrect code generation for '||' operator (at least I hope it's fixed now.)"
This reverts commit 2a89a9f1d8.
2016-02-07 21:59:45 -06:00
Randy Heit ecef5647d4 Merge branch 'scripting' 2016-02-07 21:58:38 -06:00
Randy Heit 138cdccaf9 Fix code generation for && and ||
- The test condition should be the same for both sides of the operators.
2016-02-07 21:56:56 -06:00
Christoph Oelckers 2a89a9f1d8 - fixed incorrect code generation for '||' operator (at least I hope it's fixed now.) 2016-02-07 21:36:02 +01:00
Christoph Oelckers 5b74d417fa Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-07 16:32:11 +01:00
Christoph Oelckers e3bf1dd92b - for ARM compatibility, direct float -> unsigned int conversions should be avoided. 2016-02-07 16:31:55 +01:00
alexey.lysiuk 7fa5cb788b Fixed regression with getting/setting user variables
See http://forum.zdoom.org/viewtopic.php?t=50727
2016-02-07 15:32:55 +02:00
Christoph Oelckers f625be61a2 - fixed: CMake should not disable OpenAL on Windows if it can't find the library (which is neither needed nor requested anymore.) 2016-02-07 13:30:28 +01:00
Christoph Oelckers 111e97e47c Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-07 12:27:29 +01:00
Christoph Oelckers fcb7553166 - fixed offset calculation in A_VileAttack. 2016-02-07 12:27:11 +01:00
coelckers f2f65d7f31 Merge pull request #545 from MajorCooke/facefix
A_Face Fix
2016-02-07 11:49:19 +01:00
Christoph Oelckers 7226a23d08 Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-07 11:36:28 +01:00
Christoph Oelckers 3675492ab4 - fixed DEHACKED code pointer validation for real.
The first fix missed a second place where this happened and was incomplete.
Anything usable by Dehacked must be VARF_ACTION and VARF_MEMBER in order to work as intended.
2016-02-07 11:36:09 +01:00
John Palomo Jr 0619245280 Fixed: ValueText didn't read language strings from OptionValues when using the third parameter. 2016-02-07 03:21:18 -05:00
MajorCooke 10fec95cd5 - Fixed: the last FAF_NODISTFACTOR flag was never removed. 2016-02-07 01:36:59 -06:00
Randy Heit 5ee988f607 Fixed: Applying reverb with FMOD 4.36.yy killed sound
- It turns out that the FMOD_REVERB_PROPERTIES structure actually changed
  with 4.36.00 and not with 4.38.00.
2016-02-06 19:29:13 -06:00
Randy Heit cbfb24ef33 Disable -file ""
- This isn't a real file or even a name, but the game would try and load
  it, including running through various permutations, potentially resulting
  in loading the current directory as an archive.
2016-02-06 17:51:09 -06:00
Christoph Oelckers 20aa7c75de - added the case '0: switch the portal of to P_ChangePortal. 2016-02-07 00:30:27 +01:00
Christoph Oelckers e726143c15 Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-06 21:17:19 +01:00
Christoph Oelckers 77b9f41dff - added Line_SetPortalTarget action special so that portals can be assigned new targets. Setting the target to 0 disables the portal.cpp. Static linked portals can not be reassigned.
Please note that these still require the portal to be set up in the map with Line_SetPortal. It will not create a new portal if none exists on any line with the given ID.
2016-02-06 21:16:57 +01:00
MajorCooke 63735e4118 Turns out this token wasn't needed. 2016-02-06 13:52:08 -06:00
MajorCooke ccf887c978 Fixed wrong type. 2016-02-06 13:49:16 -06:00
coelckers 1480fa7579 Merge pull request #542 from alexey-lysiuk/fix_openal_nonwin
Fixed build with OpenAL on non-Windows systems
2016-02-06 20:11:48 +01:00
Braden Obrzut 1101546e9c - Fixed: Possible CMake wrong number of parameters configuration error. 2016-02-06 13:06:25 -05:00
alexey.lysiuk 46267f52d6 Fixed build with OpenAL on non-Windows systems
We still need to link with OpenAL library on OSes other than Windows
2016-02-06 10:58:25 +02:00
Christoph Oelckers 0ab3051f75 - fixed: Heretic's timebombs were spawned at the wrong place. 2016-02-06 08:52:37 +01:00
Christoph Oelckers 34216ddd8e Merge branch 'master' of https://github.com/rheit/zdoom
# Conflicts:
#	src/CMakeLists.txt
2016-02-06 05:28:53 +01:00
Christoph Oelckers 275ced288b - we no longer link to the OpenAL import library so the respective handling can be removed from CMakeLists.txt. 2016-02-06 05:26:37 +01:00
Randy Heit 47d33c1ef5 Fixed: A_Set(Float)Speed take FIXED speed, not INT 2016-02-05 22:24:12 -06:00
Randy Heit c978aa32b1 Fix FxRandomPick code generation for floats 2016-02-05 22:18:54 -06:00
Randy Heit 48dcbabd60 Emit a message when trying to use something non-integral as a boolean
- It's not exactly optimal, since it silently removes the offending
  expression, but it's better than crashing.
2016-02-05 22:18:54 -06:00
Randy Heit 09a17c2198 Quiet some narrowing conversion warnings from VS2015 2016-02-05 22:18:53 -06:00
Randy Heit 0892650465 Don't add /delayload for OpenAL stuff if OpenAL is disabled
- Also, I believe openal32.dll no longer needs a /delayload flag since
  it's dynamically loaded now.
2016-02-05 22:18:53 -06:00
Christoph Oelckers d50e874d9b Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-06 05:16:53 +01:00
Christoph Oelckers d76bcee393 - added some line portal restrictions:
* linked portals may never have a z-offset so the parameter for that needs to be ignored.
* for interactive portals, handling z-displacements when some distance calculation reaches through a portal is way too extensive and problematic to ever have a chance of really working. If such a portal gets defined it will be changed to a teleport-only portal and a message printed.
2016-02-06 05:16:35 +01:00
Braden Obrzut dce3f0f757 - Bump CMake version requirement to 2.8.7. This means that generator expressions must be supported as well as empty else and endif expressions (like most sane languages). ZDoom probably didn't work with 2.4 anymore anyway. 2016-02-05 21:19:29 -05:00
Randy Heit 4fb65d74fd Fix address NO_SANITIZE macro for Clang
- Oops. In fixing it for GCC (since it doesn't like
  __has_feature(address_sanitizer), I broke it for Clang.
2016-02-05 18:06:45 -06:00
Christoph Oelckers 501af18168 - added missing include. 2016-02-06 01:04:15 +01:00
Christoph Oelckers ed7b7fc0ba - fixed: The backlink portal for EE-style definition needs to be done along with the first portal because the code won't find the anchor line itself. 2016-02-06 00:21:44 +01:00
Christoph Oelckers ee3c41bf7b - fixed: The minimum parameter count for an action function is 3, so the DEHSUPP parser needs to take this into account when validating the code pointers. 2016-02-06 00:19:38 +01:00
Christoph Oelckers 95f3a9909c Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-05 23:51:50 +01:00
Christoph Oelckers e88901f4b7 - added the EE-Extradata parser I wrote for GZDoom so I can use the Vaporware demo map for testing portal stuff. 2016-02-05 23:51:28 +01:00
Randy Heit cb6504669d Add return statements for DECORATE. 2016-02-05 16:34:51 -06:00
Christoph Oelckers 1201ad0366 Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-05 23:16:06 +01:00
Christoph Oelckers 94b7ef72ca - more cleanup on portal implementation:
- store portal data in a separate structure.
- store portal data in savegames because some of this will be changeable later.
- run a cleanup pass after all portals have been created to weed out broken ones.
- add a definition type that's compatible with Eternity Engine's line portal types.
- swapped arg[2] and arg[3] of Line_SetPortal, because the type is more significant than the alignment.
2016-02-05 23:15:56 +01:00
Randy Heit 3ad2e4191d Remove fudging from the end of (O)WallMost
- This might have been added in an effort to fix problems caused by mixing inclusive
  and exclusive right edges. It might not be needed anymore. Let's find out...
2016-02-05 16:08:20 -06:00
Randy Heit 26eb335622 Quiet a couple GCC warnings 2016-02-05 16:07:18 -06:00
Randy Heit 4228721351 Enable running when built with Clang's -fsanitize=address 2016-02-05 16:04:50 -06:00
Christoph Oelckers 9eaefc3685 - initialize portals with all other static line specials instead of doing it separately in P_FinishLoadingLineDefs when the map isn't fully set up yet.
- replace all float use in portal.cpp with doubles.
2016-02-05 16:58:57 +01:00
Christoph Oelckers a85a8c1465 - changed mirror handling so that it works without attaching a portal to the mirror line and removed line_t::portal_mirror member.
- did some cleanup on the portal interface on linedefs: All checks should go through isLinePortal (gameplay related) and isVisualPortal (renderer related) which then can decide on the actual data what to return.
- removed portal_passive because it won't survive the upcoming refactoring.
- removed all direct access to portal members of line_t.
- always use the precise (and fast) version of P_PointOnLineSide inside the renderer.
2016-02-05 16:14:45 +01:00
Christoph Oelckers 00895c245e - mpved all software renderer specific code for the portals into the render sources. 2016-02-05 15:39:06 +01:00
Christoph Oelckers 01b075660d - removed the option to toggle portals with SetLineSpecial.
This is to keep some people from jumping the gun on this and preventing the implementation of a proper toggling mechanism.
The feature itself will come back, but differently.

- removed portal setup from Build maps

they don't define it anyway so it makes no sense to have it there. Once this code gets refactored this will be in a different place that's identical for all map types.
2016-02-05 14:34:01 +01:00
Christoph Oelckers 6639984772 - removed Line_SetVisualPortal special. This will be folded into Line_SetPortal later 2016-02-05 14:24:20 +01:00
Randy Heit 2516b8f8af Adjusted the assert conditions in DoJump()
- With multiple A_Jump calls possible in a single action now, it is now
  possible for DoJump() to be called with a callingstate that does not
  match self->state because the state had been changed by a prior A_Jump
  in the same action function.
2016-02-05 06:41:27 -06:00
Christoph Oelckers 9d77244b3f - we are past 2.8 now so the version numbers should reflect that. 2016-02-05 12:03:59 +01:00
coelckers 297ffc5889 Merge pull request #536 from edward-san/pclass_alloc_mismatch
- Fixed alloc/dealloc mismatch in PClass code.
2016-02-05 11:24:06 +01:00
Christoph Oelckers 3a57036f60 - a simple command line parameter is probably more suitsble for controlling the disassembly output. 2016-02-05 11:20:32 +01:00
Christoph Oelckers 312117b0bc - disable script disassembly output by default. It's now controlled by a CVAR. 2016-02-05 10:56:15 +01:00
Christoph Oelckers 353608f2b9 - added a few FString variants for frequently called functions. 2016-02-05 10:52:10 +01:00
Christoph Oelckers 76c5039c63 Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-05 10:41:05 +01:00
Christoph Oelckers 8da6483223 - fixed some places where FStrings were incorrectly used.
- replace all implicit conversions from FString to const char * in the header files (so that it can be test compiled with the implicit type conversion turned off without throwing thousands of identical errors.)
2016-02-05 10:40:45 +01:00
Christoph Oelckers c8d25378d5 - fixed type confusion with ?: operator in FMugShot::GetFace. 2016-02-05 10:08:49 +01:00
Braden Obrzut ba54d73e07 Merge branch 'portals2_visual' 2016-02-05 00:10:46 -05:00
MajorCooke 35b7a5ccc1 Updated for scripting branch merge. 2016-02-04 22:41:02 -06:00
MajorCooke 1f8d425a1e - Added CountInv(itemtype, [ptr_select]).
- Returns an inventory item count.
2016-02-04 21:45:31 -06:00
MajorCooke 3399ed60e0 Updated to scripting branch merge. 2016-02-04 20:17:46 -06:00
Edoardo Prezioso 002177e33f - Fixed alloc/dealloc mismatch in PClass code.
The function 'PClassActor::InitializeNativeDefault' is the only one which didn't allocate the 'Defaults' member variable with M_Malloc. Reported by the Address Sanitizer.
2016-02-05 03:03:34 +01:00
Christoph Oelckers 4751bffd5f - replaced malloc.h with stdlib.h in thingdef_expression.cpp. 2016-02-05 01:26:29 +01:00
Christoph Oelckers 995169de58 Merge branch 'csgwhy' of https://github.com/Edward850/zdoom 2016-02-05 01:21:01 +01:00
Christoph Oelckers 0b7a06c714 Merge branch 'NewEESpecials'
# Conflicts:
#	src/fragglescript/t_fs.h
2016-02-05 01:01:39 +01:00
Edward Richardson f2025e6a2f Fixed possible issue with GCC/Clang 2016-02-05 12:52:29 +13:00
Randy Heit b3b0886b64 Merge branch 'scripting'
Conflicts:
	src/actor.h
	src/g_doom/a_doomweaps.cpp
	src/g_hexen/a_blastradius.cpp
	src/p_enemy.cpp
	src/p_enemy.h
	src/thingdef/thingdef.h
	src/thingdef/thingdef_codeptr.cpp
	wadsrc/static/actors/constants.txt
2016-02-04 15:17:22 -06:00
rheit 56359b6f23 Merge pull request #342 from marrub--/fastweaponsfix
sv_fastweapons extension
2016-02-04 13:31:47 -06:00
Christoph Oelckers bf066763b7 - fixed: The FPS display should use the actual font info to calculate its size, not just assume that each character is 8*8 pixels. 2016-02-04 01:20:35 +01:00
alexey.lysiuk b9b0029373 Fixed overlapping of active artifacts with time/latency
Active artifacts are now displayed below time and/or latency on alternative HUD
2016-02-03 12:06:32 +02:00
alexey.lysiuk 1bf1fc199b Adjust latency position depending on time visibility
Latency placement is no longer fixed:
* If time is visible, it is placed on top of the screen and latency is placed below
* If time is not visible, latency is placed on top of the screen
Both are displayed on alternative HUD only
2016-02-03 12:06:20 +02:00
MajorCooke a1c1de9edb Fixed merge conflicts. 2016-02-02 18:26:20 -06:00
Christoph Oelckers 66f053f131 - on second thought: this shouldn't explode the speakers with too high values. 2016-02-02 15:02:06 +01:00
Christoph Oelckers c002c2fde9 - added a mastervolume setting for DUMB because its default volume is far less than all the other music options. 2016-02-02 14:45:32 +01:00
coelckers 5d19901cb7 Merge pull request #529 from alexey-lysiuk/fix_creative_openal
Fixed build with Creative Labs OpenAL SDK
2016-02-02 12:01:25 +01:00
Christoph Oelckers 0db679c90d - fixed clang compile error. 2016-02-02 10:53:56 +01:00
alexey.lysiuk 90dd6b61b4 Fixed build with Creative Labs OpenAL SDK
Tested with
* Creative OpenAL from https://www.openal.org/downloads/OpenAL11CoreSDK.zip
* OpenAL Soft from http://kcat.strangesoft.net/openal-binaries/openal-soft-1.17.1-bin.zip
2016-02-02 10:29:23 +02:00
Randy Heit c9d81dff53 Use absolute value of Y scale for 3D midtex
- Somebody might want to set a midtexture's Y scale negative to flip it
  vertically. I'm pretty sure this would mess up 3D mid textures if we
  don't make it positive again for those.
2016-02-01 21:07:09 -06:00
Randy Heit 6b6c1af0dc Add support for Y flipped non-vertically tiling masked midtextures 2016-02-01 21:07:09 -06:00
Randy Heit 03f0e1dc5c Remove something that looks like 3D floor development garbage 2016-02-01 21:07:08 -06:00
Christoph Oelckers 6b75f14c0f - fixed some Linux/GCC warnings. 2016-02-02 01:04:59 +01:00
Christoph Oelckers fe3e56c6bc - fixed: oalload.h should only do stuff is NO_OPENAL is not defined. 2016-02-01 18:49:12 +01:00
Christoph Oelckers ee045371a3 - On Windows, use LoadLibrary/GetProcAddress to load OpenAL function addresses.
The reason for this is that on my system, the static or delay loaded method always picks the (obsolete) system-installed OpenAL version (needed for some old games) which is not wanted here if there's another one in the local ZDoom directory.
This also removes the dependency on the broken import library that comes with OpenAL Soft which causes compile errors with more modern MSVC compilers on default settings.
2016-02-01 14:02:25 +01:00
Christoph Oelckers e0608f50d1 - create a separate translation table for Heretic's rain pillar.
These objects are supposed to be bright, but the standard translations for player do not take this into account, creating dark and/or invisible projectiles depending on the color being used.
The new translation uses hue and saturation from the player color, but combines brightness from the original color with the one for the player in an 8:2 ratio, so that no matter for the player color, these always remain bright and visible.
2016-02-01 10:45:33 +01:00
Christoph Oelckers 58196f77ff Merge branch 'master' of https://github.com/rheit/zdoom 2016-02-01 10:00:39 +01:00
Christoph Oelckers fd2828b1fe - fixed typo in monster movement code. 2016-02-01 10:00:19 +01:00
Randy Heit 2f4dc17954 Add support for face sprite Y flipping 2016-01-31 22:05:32 -06:00
Randy Heit 809a9d801c Got a flag backwards 2016-01-31 21:23:45 -06:00
Randy Heit 0b9aeb33e1 Fixed potential divide by 0 when drawing voxels
- Since voxels can have their origin behind the viewer and still have a
  portion visible in front of the viewer, they aren't clipped to MINZ like
  face sprites are. The 3D floor handling in R_DrawSprite() neglected to
  clamp it when recalculating the diminished light colormap.
  - Aside, but R_DrawSprite() probably shouldn't be messing with these
    properties at all. Why isn't this done in R_ProjectSprite() before it
    ever gets to the drawing part?
2016-01-31 20:52:56 -06:00
Randy Heit 1d0a3d19c8 Fix a part in maskwallscan that was missed for right-edge exclusivity 2016-01-31 20:45:37 -06:00
Edoardo Prezioso 4cbf752b4d - Fixed uninitialized variable in level info code.
Found with Valgrind.
2016-01-31 23:19:34 +01:00
Christoph Oelckers a1cd0401e4 - fixed: noclip2 should only set some minimal velocity if the player has none. 2016-01-31 22:38:08 +01:00
Christoph Oelckers 8068fca601 - fixed: player_t::Uncrouch should only reset the view height if the player is actually crouched. 2016-01-31 22:36:37 +01:00
coelckers c3cc98b5f3 Merge pull request #523 from alexey-lysiuk/osx_fullscreen
Final touches to fullscreen mode on OS X
2016-01-31 16:56:35 +01:00
coelckers 09e2f212a0 Merge pull request #524 from alexey-lysiuk/hexen_mac_beta
Added support for Hexen Mac beta
2016-01-31 16:55:23 +01:00
MajorCooke eb2829ad5e - Added CBF_DROPOFF to A_CheckBlock. Checks for actors stuck in tall ledges or dropoffs. 2016-01-31 09:45:41 -06:00
Randy Heit 219b6f7c5d Fix R_DrawFogBoundary for right-edge exclusivity 2016-01-31 06:51:11 -06:00
alexey.lysiuk 1798fab973 Added support for Hexen Mac beta
It's very similar to Mac demo but also contains MAP41: Maze like DOS full version 1.0
2016-01-31 12:53:22 +02:00
alexey.lysiuk 7b0f557514 Enabled zoom window button on OS X
Independently from OS version the game will enter fullscreen mode when zoom button is clicked
Window zooming behavior introduced in Yosemite is available on all supported versions of OS X
2016-01-31 10:42:16 +02:00
Randy Heit 240ca2af4c Use consistant right-edge rules in the renderer.
- The original Doom renderer was inclusive for all right edges. This was
  fine for the wonky projection it did. This was not fine for a standard
  perspective divide, so I had to change walls to be right-edge exclusive
  when I changed the projection. I only touched what was needed. Until
  now. The right edge is always exclusive now, which should prevent any
  more bugs related to mixing the two clusivities incorrectly.
2016-01-30 21:27:35 -06:00
Randy Heit c1b2861362 Merge the boolean args to EV/P_Teleport into a single flags arg
- The flags use TELF_ since DECORATE has an A_Teleport with its
  own set of TF_ flags.
- TELF_KEEPVELOCITY is used instead of TELF_HALTVELOCITY, because
  there was only one call that ever set bHaltVelocity to false.
2016-01-30 21:27:34 -06:00
Christoph Oelckers 939989dc8c - fixed crash when trying to cache nodes for a map that has no two-sided walls and no minisegs.
Under these conditions there are no partner segs and the glsegextras array is NULL.
2016-01-31 01:05:31 +01:00
Christoph Oelckers 46024398fe - fixed: Change FCheckPosition::LastRipped to a TMap so that it can track multiple overlapping actors being ripped during the same tic. 2016-01-30 22:06:04 +01:00
Christoph Oelckers 06fdb6ca45 - fixed: The reverb editor failed to open in fullscreen mode at desktop resolution.
According to Blzut3:

The issue happens when the fullscreen resolution is the same as the desktop resolution. In this case WM_DISPLAYCHANGE doesn't occur so the editor never appears. This appears to be fixable by also catching WM_STYLECHANGED since at the very least the window caption will appear/disappear.
2016-01-30 21:49:03 +01:00
alexey.lysiuk 6bce5ddc4b Scale of player's skin is now preserved on corpses after reborn 2016-01-30 18:30:20 +02:00
coelckers ccce6f44a2 Merge pull request #518 from Edward850/Particle-clamp
Clamped r_maxparticles to the internal limit
2016-01-30 15:21:55 +01:00
Christoph Oelckers 36911bac4b - fixed memory allocation type mismatch in demo code. 2016-01-30 15:17:46 +01:00
Christoph Oelckers afcd755c7a - changed autoaim menu option to a slider which allows a more precise control of the property.
- having a value of 5000 as the default for autoaim makes no sense, since this is an angle value that will always be clamped to [0..35]. So now 35 is both the default and the maximum.
2016-01-30 13:43:39 +01:00
Christoph Oelckers 3b5af8484c Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-30 12:59:37 +01:00
Christoph Oelckers 0a0a2c4a41 - removed a warning. 2016-01-30 12:59:15 +01:00
Christoph Oelckers fab186786e Merge branch 'PlayerTransition' of https://github.com/Edward850/zdoom 2016-01-30 12:52:50 +01:00
Christoph Oelckers 0ddf9db8dd - fixed: Uncrouching a player also needs to reset the viewheight to its default. 2016-01-30 12:51:15 +01:00
alexey.lysiuk 6166520b33 Do not respawn on damaging floors when sv_samespawnspot is enabled
See http://forum.zdoom.org/viewtopic.php?t=47191
2016-01-30 12:50:19 +02:00
Christoph Oelckers 1285dde615 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-30 11:34:13 +01:00
Christoph Oelckers b84207a089 - use scaling, render style and alpha when drawing the cast call. 2016-01-30 11:33:55 +01:00
Edward Richardson 40d90ba325 Game still needs to abort if no starts exist at all 2016-01-30 22:26:47 +13:00
Edward Richardson fe52f98459 Clamped r_maxparticles to the internal limit 2016-01-30 22:04:09 +13:00
Edward Richardson c1e362ee83 Added level transition spawning for missing starts
- Additional player bodies are spawned for any absent starts in co-op.
- Removed now-redundant bot start limitation
2016-01-30 22:02:27 +13:00
Braden Obrzut 5317a92d11 Merge branch 'RadiusGiveExp2' 2016-01-30 00:27:44 -05:00
Braden Obrzut 5d6e8a7338 - Fixed: Possible timer overflow in PowerTimeFreezer. 2016-01-30 00:18:38 -05:00
Braden Obrzut a34a7ace18 - Some resolutions between 320x200 and 640x400 had non-square clean scaling factors. Maybe there was a reason for this in the past, but I can't think of a case where it'd actually look better to have 1:2 scaling in the menus and someone reported it. 2016-01-29 23:37:38 -05:00
Braden Obrzut 1fcb9fcf06 - Fixed: Crash when automatically switching sound backends due to failure. 2016-01-29 23:10:10 -05:00
MajorCooke eeca536d9a Clean up a few things. 2016-01-29 10:41:05 -06:00
Christoph Oelckers a41dc24086 - fixed: 3D lights should override the sidedef's regular light completely, that includes relative light added by UDMF's 'light' property.
- Renamed the 'noabsolute' parameter in side_t::GetLightLevel to 'is3dlight', what it actually is, to avoid the confusion that caused the abovementioned error.
- fixed: The Down2Up render path for sides of 3D floors had the 'is3dlight' check inverted.
2016-01-29 14:55:31 +01:00
Christoph Oelckers c6c15fe83c - fixed: AActor::SpawnPoint[2] must store the actor's height above the sector's floor, not above floorz. floorz will represent the current floor the actor is standing on, which may be a 3D floor or a 3D midtexture, but both respawn functions which use this value work from the actual sector floor. 2016-01-29 13:40:37 +01:00
Christoph Oelckers 08e5e1c145 - restored the velocity threshold checks in A_MaceBallImpact2 and A_DeathBallImpact to their original Heretic form, minus the check for floorz, to account for potential positioning issues with slopes.
These checks had some major issues:

 * they calculated incorrect positive values for hitting a ceiling
 * the way they used the plane equations made some incorrect assumptions.
 * velz has the velocity reduction from bouncing already factored in from the calling code so doing it here again is not necessary.
2016-01-29 12:44:38 +01:00
Christoph Oelckers fe271b4e78 - fixed: A_MaceBallImpact2 was missing a check for hitting some liquid terrain. 2016-01-29 12:21:35 +01:00
Christoph Oelckers 7b1fbe0a02 - fixed: P_TeleportMove was missing checks for THRUACTORS and THRUSPECIES flags. 2016-01-29 11:29:47 +01:00
Christoph Oelckers f8d5430c06 - fixed: When changing 'noclip2' some minor lateral velocity should be set to ensure that all internal variables contain proper values. 2016-01-29 11:11:10 +01:00
Christoph Oelckers 94611588d5 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-29 10:55:04 +01:00
Christoph Oelckers 674b81a6b1 - fixed: The 3D floor light list should use the last light starting above the ceiling, not the first one.
- fixed: ExtraFloor_LightOnly type 2 was behaving like type 0. Instead anything interrupting it should reset to the sector's own light level.
2016-01-29 10:54:44 +01:00
Randy Heit 87dee5c611 Fixed: Co-op players could spawn at (0,0) if no start spots for them
- Check if a co-op start exists. If not, pick one at random.
- Don't telefrag other players when spawning in co-op games, since
  you're allowed to move out of other players now.
2016-01-28 20:08:09 -06:00
Christoph Oelckers c5161ee748 - fixed: A_Face* mixed angle and distance values in the same parameter. Fixed by separating these into two.
- removed the intermediate A_Face* functions, except a bare-bones A_FaceTarget as needed by the monster AI code.
2016-01-28 20:44:10 +01:00
MajorCooke 772f086a5e Fixed broken aiming with A_CheckLOF. 2016-01-28 12:24:40 -06:00
Christoph Oelckers 6715a97d6e - removed debug output from previous commit. 2016-01-28 12:04:47 +01:00
Christoph Oelckers dfcee625db - fixed: The ACS String garbage collector only looked at the active script's stack but never considered a recursive call from another script.
Fixing this required adding an external list of active stack objects that the garbage collector can access.
A nice side effect: It's no longer necessary to pass around the stack info to various functions that might end up triggering a garbage collection.
2016-01-28 11:56:47 +01:00
Christoph Oelckers 1a4b3bbe11 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-28 09:20:55 +01:00
Christoph Oelckers 724e625f16 - fixed: Loading an old savegame from before the sector damage refactoring cleared the extended Boom sector flags before processing them. 2016-01-28 09:20:27 +01:00
MajorCooke 2da868656e Finalize loop and prioritize missile searching. 2016-01-27 15:22:05 -06:00
MajorCooke 846f14c03d Remove the loop. 2016-01-27 14:56:06 -06:00
MajorCooke 79177cf98e Set up the subfunction. 2016-01-27 14:54:46 -06:00
rheit f36bdc474d Merge pull request #421 from alexey-lysiuk/video_mode_menu
Fixed selection of empty items in Video Mode menu
2016-01-27 13:30:05 -06:00
Randy Heit 2d40874cfa Make finishgame CCMD net-aware 2016-01-27 13:19:15 -06:00
MajorCooke 9a422245f3 - Fixed a couple issues with calling P_NewChaseDir from wrongful P_Move priority. 2016-01-27 13:11:22 -06:00
Randy Heit b22a909829 Add nodelay handling to FastProjectile 2016-01-27 13:08:23 -06:00
MajorCooke f6b3b269a7 Fixed missing movecount decrement with blocked actors. 2016-01-27 10:51:51 -06:00
MajorCooke 7798eadb8b Moved the P_Move back inside to where it was beforehand. 2016-01-27 10:47:36 -06:00
MajorCooke 275cdcd958 Renamed A_FaceVelocity to A_FaceMovementDirection. 2016-01-27 10:12:13 -06:00
coelckers c5379c749e Merge pull request #428 from MajorCooke/A_CheckSPecies
Added A_CheckSpecies(state jump, name species, ptr = AAPTR_DEFAULT)
2016-01-27 16:45:16 +01:00
MajorCooke ece6fa776c - Renamed CHF_DONTANGLE to CHF_NODIRECTIONTURN.
- A_Wander now shares CHF_NODIRECTIONTURN and CHF_NORANDOMTURN instead of having its own flags.
2016-01-27 09:35:19 -06:00
Christoph Oelckers 7c6e070244 - fixed: line spacing was taken from a different variable in conversation display and mouse coordinate code. 2016-01-27 11:19:30 +01:00
Christoph Oelckers 4eb38f0381 - fixed: plane heighr calculations for Floor_Lower/RaiseByValue should be done at a point that's actually near the affected sector, not at (0,0), otherwise there's a risk of fixed point overflow. 2016-01-27 11:01:38 +01:00
Christoph Oelckers c3047f448e - fixed: When MIDI->Open returns failure, the MIDI device needs to be deleted. Otherwise the dead device object can trigger an assert later. 2016-01-27 10:39:21 +01:00
Christoph Oelckers f2666f70dd - removed unneeded check for 'listenactor' in S_UpdateSounds. 2016-01-27 09:56:40 +01:00
Christoph Oelckers d2beec4585 - ensure that AInventory::Touch attributes everything to the correct player, even if the touching action results in a morph. 2016-01-27 00:56:40 +01:00
Christoph Oelckers 8993f84087 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-26 22:27:42 +01:00
Christoph Oelckers 2a1fa60aa6 Merge branch 'CheckProxExpPruned' of https://github.com/MajorCooke/zdoom 2016-01-26 18:49:03 +01:00
MajorCooke 1c0ef1d367 Removed CPXF_NODISTANCE. 2016-01-26 10:00:20 -06:00
coelckers e397b5a475 Merge pull request #511 from MajorCooke/CheckLOFpitch
A_CheckLOF Pitch FIx
2016-01-26 14:44:05 +01:00
MajorCooke cb43ce9cfc - Fixed: A_CheckLOF was doubling up on its pitch and reversing it when without a target. 2016-01-26 07:20:55 -06:00
Christoph Oelckers 4f0cfa29b4 - missed a '!'. 2016-01-26 10:50:31 +01:00
Christoph Oelckers 623276f5a6 - fixed: All access to weapon info in DECORATE functions should be restricted to when they get called from an actual weapon, not from a CustomInventory item.
Issues this fixes:

 * all original Doom attack functions unconditionally altered the flash state.
 * A_FireOldBFG, A_RailAttack and A_Blast never checked for a valid ReadyWeapon.
 * CustomInventory items could deplete an unrelated weapon's ammo.
2016-01-26 09:43:47 +01:00
Randy Heit 9f8dee45c4 Fixed: 0 was accidentally not allowed as transparent for grayscale
- I don't know what I was thinking when I wrote that.
2016-01-25 21:44:08 -06:00
Randy Heit 450b6de384 cRGBT::A should return 255, not 1. Whoops. 2016-01-25 21:31:21 -06:00
Randy Heit 0fc40cff0a Fix some rare PNG tRNS chunk cases
- For grayscale images drawn with the paletted renderer, the value here
  was treated as always full range [0,65535]. The max value is actually
  determined by the bit depth.
- For RGB images drawn with the paletted renderer, the tRNS chunk was
  ignored.
- For grayscale images drawn with the RGB renderer, having a tRNS chunk
  present resulted in undefined behavior.
- For RGB images drawn with the RGB renderer, the tRNS chunk was ignored.
2016-01-25 21:23:53 -06:00
Randy Heit 61d033328b Don't show "exited the level" messages after the level has exited 2016-01-25 20:18:33 -06:00
Randy Heit 774c136532 Fixed: Player.FallingScreamSpeed used minz as the maxz as well 2016-01-25 18:55:05 -06:00
Christoph Oelckers 29c38b23f3 - last commit was missing actionspecials.h. 2016-01-26 00:39:25 +01:00
MajorCooke 0be09f54bd Particles can now scale up to 65535. 2016-01-25 15:44:11 -06:00
Christoph Oelckers 316389c7f9 - fixed: Ceiling_LowerByValue(Times8) were missing the 'crush' parameter.
- fixed typo in 5 minute door sector type (it used FRACUNIT instead of TICRATE.)
2016-01-25 21:27:19 +01:00
Christoph Oelckers cf43eb6c6d - limit particle size to 127 2016-01-25 21:08:09 +01:00
Christoph Oelckers 73ee500bea Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-25 18:58:42 +01:00
Christoph Oelckers cef2cf4e6d fixed parameter count for Sector_SetDamage. 2016-01-25 18:58:23 +01:00
Christoph Oelckers 7b5a77a8d8 - added various action specials and parameter extensions defined by Eternity Engine.
The reason for defining them is to be able to fill out the Eternity translation table for GZDoom's Extradata parser.
Most of the new specials are mere specializations of ZDoom's Generic_* functions and occupy positions above 255 to avoid filling up the last remaining free slots available for Hexen format maps.
Allowing action specials greater than 255 required a few changes:
 * all access to action specials is now through a small set of access functions.
 * Two new PCodes were added to ACC to handle these new specials from scripts.
 * a minor change to the network protocol, so netgame  and demo version numbers were bumped.
 * FS_Execute is now properly defined in p_lnspec.cpp.
Two of the newly added specials - generalizations of the special 'close Door in 30 seconds' and 'raise door in 5 minutes' sector types, will also be available to Hexen format maps. The rest are limited to use in ACS, UDMF and DECORATE.
This also adds 'change' and 'crush' parameters to most Floor_* and Ceiling_* specials, again to match Eternity's feature set.
2016-01-25 18:49:56 +01:00
MajorCooke ced35e98fb Remove needless check. 2016-01-25 10:07:00 -06:00
Braden Obrzut 4d225e7a00 - Fixed: Mac GCC errors due to not recognizing the newly disabled warnings. 2016-01-24 23:03:59 -05:00
coelckers 3c790a80eb Merge pull request #508 from ChillyDoom/wi_stuff-common-code
- Removed duplicate autoskip code.
2016-01-24 16:54:51 +01:00
Chris 1721d70212 - Removed duplicate autoskip code. 2016-01-24 14:44:47 +00:00
alexey.lysiuk 4b210a839a Fixed uninitialized variable in IOKit controller handler 2016-01-24 14:43:55 +02:00
Christoph Oelckers be3b84e751 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-24 11:50:54 +01:00
Christoph Oelckers 67f644c898 - fixed inverted NULL pointer check in A_SetAngle.
- let COPY_AAPTR check the most common case AAPTR_DEFAULT first instead of running through all the other cases for it.
2016-01-24 11:50:21 +01:00
Braden Obrzut fd4440cfe4 - Fixed: Intermissions with no screens (such as EndTitle) would result in a double wipe. 2016-01-23 23:34:07 -05:00
Braden Obrzut fc15be8689 - Improved DrawSwitchableImage keyslot condition to include key species.
- Fixed: currentpos command would crash if not in game.
2016-01-23 22:24:12 -05:00
Braden Obrzut 5abacf0b2f - Fixed: Uninitialized variable on DrawSelectedInventory. 2016-01-23 21:40:19 -05:00
Braden Obrzut 20f7f524ca - Don't link against sndfile and mpg123 if not compiling with OpenAL support. 2016-01-23 20:09:39 -05:00
Braden Obrzut 88a616da75 - Removed what appears to be a debug breakpoint.
- Cleared some GCC and Clang warnings. Mostly static analysis false positives, but one of them generated a pretty massive warning in a release build.
- Use -Wno-unused-result since I doubt we're going to address those unless they actually prove to be a problem (and they only appear in release builds).
2016-01-23 19:36:13 -05:00
Christoph Oelckers 0dabaca7df - added some range checks to PgUp(PgDown code for option menus. 2016-01-23 21:23:02 +01:00
Christoph Oelckers c4377b7039 - removed the implicit fixedvec -> TVector conversions because they caused too many problems. Also reviewed all uses of these and made the necessary adjustments. Problems were present in P_SpawnMissileXYZ and P_Thing_Projectile.
- replaced some single precision float math with doubles.
2016-01-23 20:44:33 +01:00
Christoph Oelckers f860a344cc Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-23 17:50:01 +01:00
Christoph Oelckers 5c8fd4750f - fixed: FInterpolator::DoInterpolations did not handle terminated interpolations properly. 2016-01-23 17:00:24 +01:00
Randy Heit c63f65d441 Merge remote-tracking branch 'origin/master' into scripting
Conflicts:
	src/thingdef/thingdef_codeptr.cpp
	wadsrc/static/actors/constants.txt
2016-01-22 20:53:27 -06:00
MajorCooke 88f96950b5 Projectiles should set their z to floor, not add it. 2016-01-22 11:47:41 -06:00
Christoph Oelckers da6fe6cad6 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-22 18:24:36 +01:00
Christoph Oelckers f4f7bd5d34 - fixed a double/fixed_t mixup in P_SeekerMissile 2016-01-22 18:24:15 +01:00
coelckers 8a9df31db9 Merge pull request #501 from Edward850/MF5_NOINTERACTION-velz-fix
Fixed cmf_aimdirection doubling up the spawn Z
2016-01-22 12:32:08 +01:00
Christoph Oelckers 01aaef1528 - fixed: The P_DamageMobj call for damaging sectors should be skipped completely if godmode is on, so that instant damage sectors don't kill an invulnerable player. 2016-01-22 12:16:17 +01:00
Edward Richardson 2034f4e49f Fixed cmf_aimdirection doubling up the spawn Z 2016-01-22 23:06:09 +13:00
Edward Richardson 2dff9a743c Fixed Z-Velocity movement for MF5_NOINTERACTION 2016-01-22 22:26:21 +13:00
MajorCooke 823edc4a69 - Cleaned up leftovers. 2016-01-21 21:23:43 -06:00
MajorCooke b51bbf66b0 - Fixed pointer setting not working due to requiring more than the SET* flags.
- Changed search algorithm to be square and utilize fixed_t instead.
2016-01-21 21:15:50 -06:00
MajorCooke 793fc90716 Once more homogenized!
- DECORATE: color, flags, lifetime, size, angle, xyz offset/vel/accel, startalpha, fadestep.
- ACS: Similar, minus the angle parameter.
2016-01-21 19:59:33 -06:00
MajorCooke 28502b9a80 - Reorganized A_SpawnParticle parameters.
- Decorate order is now color, x/y/zoff, velx/y/z, lifetime, angle, flags, size, startalphaf, fadestepf, accelx/y/z.
- ACS order is now color, xyz offset, xyz velocity, lifetime, fullbright, size, startalpha, fadestep, xyz accel
2016-01-21 18:34:39 -06:00
Christoph Oelckers 841c7b275e Merge branch 'ParticleFlags' of https://github.com/MajorCooke/zdoom
Conflicts:
	wadsrc/static/actors/actor.txt
2016-01-22 00:58:42 +01:00
Christoph Oelckers 3b4ed8d7cd - made A_SpawnParticle's fadestep parameter a fixed point value as well. 2016-01-22 00:54:09 +01:00
MajorCooke 13dc6be5a1 - Added flags for A_SpawnParticle and angle parameter.
- SPF_FULLBRIGHT makes the particle full bright.
- SPF_RELATIVE encapsulates the following flags:
- SPF_RELPOS: Position is relative to angle.
- SPF_RELVEL: Velocity is relative to angle.
- SPF_RELACCEL: Acceleration is relative to angle.
- SPF_RELANG: Add caller's angle to angle parameter for relativity.
2016-01-21 16:36:58 -06:00
Christoph Oelckers 39014b1732 - make the startalpha parameter of A_SpawnParticle a float to be consistent with other functions that want an alpha value. 2016-01-21 20:13:55 +01:00
Randy Heit 9744b9e0d9 Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/dobject.h
	src/dobjgc.cpp
	src/p_local.h
	src/thingdef/thingdef_codeptr.cpp
2016-01-21 12:45:06 -06:00
MajorCooke 9638cbb844 Updated A_CheckProximity Expansion Pruned Edition. 2016-01-21 11:39:13 -06:00
Christoph Oelckers 995721836b Merge branch 'SpawnParticle' of https://github.com/Edward850/zdoom
Conflicts:
	src/actor.h
2016-01-21 17:04:52 +01:00
alexey.lysiuk f10dd68ca6 Fixed actors intersection check 2016-01-21 16:21:09 +02:00
coelckers 65662a9cfa Merge pull request #493 from alexey-lysiuk/dialog_fixes
Fixes for Strife dialog
2016-01-21 14:57:21 +01:00
Christoph Oelckers 68fcbc0c92 - fixed: loading sector damage information from an old savegame could retrieve invalid data due to an uninitialized variable. 2016-01-21 14:54:14 +01:00
alexey.lysiuk 598bccbe93 Added warning when next dialog page is incorrect 2016-01-21 15:53:58 +02:00
alexey.lysiuk 673ac1295c Fixed broken 'closedialog' property in Strife dialogs
See http://forum.zdoom.org/viewtopic.php?t=50524
2016-01-21 15:53:35 +02:00
Christoph Oelckers 5421213711 - typo in interpolation stuff. 2016-01-21 12:37:26 +01:00
Christoph Oelckers cf2ee1eb3f - fixed: Interpolations were deleted too early.
They were immediately deleted when the associated thinker was destroyed. But this was too early because it missed the final tic of movement, resulting in a visible jump when a moving platform with a player on it came to a halt.
Changed it so that DelRef no longer destroys the interpolation itself. Instead the ::Interpolate method will check if the reference count is 0, and if so and there was no more movement, will then destroy the interpolation.
This ensures that it keeps running until it has interpolated all remaining bits of movement induced by the thinker.

Now moving up a lift is 100% smooth, even with movement interpolation on.
2016-01-21 11:58:44 +01:00
Christoph Oelckers d347415aee - fixed some garbage collection issues with interpolations:
* FInterpolator depended on external references to prevent its content from getting GC'd.
* none of the pointers in the interpolation objects were declared to the GC.

The result of these issues was that changing anything about the life cycle of interpolation objects caused corrupted memory crashes when a level was changed.
2016-01-21 11:36:37 +01:00
Christoph Oelckers e4982b1ced Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-21 10:24:03 +01:00
Christoph Oelckers 03d7418f51 - fixed: Since sector movement is done after P_PlayerThink is called, any player position change induced by this is not factored into player_t::viewz and needs to be added explicitly.
This fixes the infamous 'view squats down a bit when riding up an elevator' effect. It is also there in the other cases but far less pronounced.
2016-01-21 10:23:20 +01:00
coelckers 8b4194a3e0 Merge pull request #491 from MajorCooke/TF_SensitiveZ2
A_Teleport TF_SensitiveZ
2016-01-21 09:10:33 +01:00
MajorCooke 09733d8083 - Don't set both self and pointer's z to spotz when teleporting. 2016-01-20 18:50:30 -06:00
Randy Heit 710fa55288 Port recent SMF changes to XMI and HMI:
- Handle SysEx messages instead of ignoring them.
- Don't lose time for unhandled events with delays.
2016-01-20 18:37:05 -06:00
Randy Heit 7f6b421e87 Make sure all unhandled delayed MIDI events generate NOPs
- Looking over the code again, I see that discarded SysEx messages can
  cause the same issue as unhandled meta events, so generalize the
  returning of a NOP for everything.
2016-01-20 18:27:04 -06:00
MajorCooke 93aff2413f Fixed an issue which caused A_Teleport to set the caller and itself to SpotZ's z position. 2016-01-20 18:18:00 -06:00
MajorCooke 116e157447 Nevermind this. 2016-01-20 15:52:56 -06:00
MajorCooke d20a7516c9 Updated A_FaceVelocity to remove conflicts. 2016-01-20 15:51:11 -06:00
Edward Richardson e5c67cee83 Merge branch conflicts fix
- CONFLICT (content): Merge conflict in src/p_acs.cpp
- Updated position variables
2016-01-21 10:49:57 +13:00
Randy Heit 1a356dfa51 Fixed: MIDI meta events were completely discarded, including their delays
(unless the event was for setting the tempo) This left the following
events in the track to happen at the wrong time.
2016-01-20 14:53:56 -06:00
Christoph Oelckers 98a9d7210a - fixed the definitions for script access to AActor::x, y, z.
(Note: These should be made read only when real scripting becomes available!)
2016-01-20 15:19:35 +01:00
Christoph Oelckers c78344c19d Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/p_user.cpp
	src/thingdef/thingdef_expression.cpp
2016-01-20 15:16:06 +01:00
Christoph Oelckers 68c0f929dc - refactoring complete. The source compiles again with the renamed position variable. 2016-01-20 15:12:51 +01:00
Christoph Oelckers 13e25faea7 - p_sight.cpp, p_spec.cpp and p_switch.cpp refactored. 2016-01-20 14:20:14 +01:00
Christoph Oelckers 4d8070927d - p_maputl.cpp done. 2016-01-20 14:04:47 +01:00
Christoph Oelckers 25107ed421 - since I had to shuffle around the first variables in AActor, let's better commit that change. 2016-01-20 13:49:52 +01:00
Christoph Oelckers 35271187a5 - took care of the rest of p_map.cpp. 2016-01-20 13:48:05 +01:00
Christoph Oelckers 4b9647e539 Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/g_hexen/a_hexenspecialdecs.cpp
	src/g_strife/a_thingstoblowup.cpp
	src/thingdef/thingdef_codeptr.cpp
2016-01-20 11:45:57 +01:00
Christoph Oelckers 83cbf6cae5 Merge branch 'master' of https://github.com/rheit/zdoom
Conflicts:
	src/g_hexen/a_wraith.cpp
2016-01-20 11:41:27 +01:00
Christoph Oelckers 500bc2b852 - fixed two refactoring errors:
* A_BridgeOrbit had its radius as an int, not a fixed_t.
* PIT_CheckThing used the wrong coordinate for checking actor distance.
2016-01-20 11:39:41 +01:00
Christoph Oelckers e9b23cf833 - keep evaluation order of Random() calls defined. 2016-01-20 09:25:30 +01:00
Edward Richardson 5c8ebf487d Fixed load order for saves
- Make sure the PRNG tables are restored after the base level is loaded,
otherwise the tables will restore in a modified state.
2016-01-20 19:14:43 +13:00
Christoph Oelckers 7ea3e49332 - refactored p_mobj.cpp and the first half of p_map.cpp. 2016-01-20 01:48:57 +01:00
Randy Heit 9b9008ecc7 Restore original offset range for WraithFX5 spawn 2016-01-19 18:00:46 -06:00
Christoph Oelckers b73e1e65f5 Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/p_local.h
	src/thingdef/thingdef_codeptr.cpp
2016-01-19 20:17:34 +01:00
Christoph Oelckers 7658111566 - refactoriung of thingdef_codeptr.cpp - probably the ugliest file in the entire project... 2016-01-19 20:15:45 +01:00
Christoph Oelckers 97620b0645 - fixed some leftover unused variable warnings.
- match the variable names in thingdef_codeptr.cpp to the ones in the scripting branch to reduce the amount of merge conflicts in upcoming changes.
2016-01-19 16:09:44 +01:00
Chris 119c2f36b2 - Fixed an incorrect memset parameter in wi_stuff.cpp.
- Removed some whitespace from wi_stuff.h.
2016-01-19 13:20:32 +00:00
Christoph Oelckers 1faf68794b - fixed the merge. 2016-01-19 13:59:53 +01:00
Christoph Oelckers bc63b70d88 Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/fragglescript/t_func.cpp
	src/g_doom/a_bossbrain.cpp
	src/g_doom/a_revenant.cpp
	src/g_heretic/a_hereticartifacts.cpp
	src/g_heretic/a_hereticweaps.cpp
	src/g_heretic/a_knight.cpp
	src/g_hexen/a_bishop.cpp
	src/g_hexen/a_clericholy.cpp
	src/g_hexen/a_dragon.cpp
	src/g_hexen/a_firedemon.cpp
	src/g_hexen/a_flechette.cpp
	src/g_hexen/a_heresiarch.cpp
	src/g_hexen/a_hexenspecialdecs.cpp
	src/g_hexen/a_iceguy.cpp
	src/g_hexen/a_korax.cpp
	src/g_hexen/a_magelightning.cpp
	src/g_hexen/a_serpent.cpp
	src/g_hexen/a_spike.cpp
	src/g_hexen/a_wraith.cpp
	src/g_raven/a_minotaur.cpp
	src/g_shared/a_bridge.cpp
	src/g_shared/a_pickups.cpp
	src/g_shared/a_randomspawner.cpp
	src/g_strife/a_alienspectres.cpp
	src/g_strife/a_crusader.cpp
	src/g_strife/a_entityboss.cpp
	src/g_strife/a_inquisitor.cpp
	src/g_strife/a_loremaster.cpp
	src/g_strife/a_programmer.cpp
	src/g_strife/a_sentinel.cpp
	src/g_strife/a_spectral.cpp
	src/g_strife/a_strifestuff.cpp
	src/g_strife/a_strifeweapons.cpp
	src/g_strife/a_thingstoblowup.cpp
	src/p_local.h
	src/r_utility.cpp
2016-01-19 13:43:11 +01:00
Christoph Oelckers 27aeb6a656 - g_shared refactored 2016-01-19 13:26:05 +01:00
Christoph Oelckers 9f78bcd1e6 - Strife game code refactored for coordinates. 2016-01-19 11:50:07 +01:00
Christoph Oelckers c02d922014 Merge branch 'master' of https://github.com/rheit/zdoom 2016-01-19 01:11:13 +01:00
Christoph Oelckers 2326928ff7 - the last bits of Hexen refactored
This also fixes a problem with some of Hexen's Wraith's effects which did some repositioning without properly linking them into the blockmap.
2016-01-19 01:10:57 +01:00
coelckers 5c7f72278b Merge pull request #483 from kevans91/ndebug-fixes
*BinPack fixes -- disjointRects only defined #ifdef _DEBUG
2016-01-18 22:39:40 +01:00
Christoph Oelckers ef7be016c4 - all those 'actor->SetZ(actor->Z() +...) calls weren't pretty so now there's an AddZ method, too. 2016-01-18 22:32:36 +01:00
Christoph Oelckers c8052ce1b8 - 4 more Hexen files processed. 2016-01-18 22:26:02 +01:00
Christoph Oelckers 61b66904da - more Heretic and Hexen refactoring. 2016-01-18 22:11:18 +01:00
Braden Obrzut d94aaf1fcf - Fixed: Undefined negative double to unsigned int conversion in FNodeBuilder::PointToAngle. 2016-01-18 16:03:37 -05:00
Kyle Evans 7358817975 *BinPack fixes -- disjointRects only defined #ifdef _DEBUG 2016-01-18 14:45:23 -06:00
Christoph Oelckers ca5ac72364 - added missing FIXED2DBL call in A_Face. 2016-01-18 21:17:11 +01:00
Christoph Oelckers c1b44a5694 - let's make some use of AActor::Pos and get rid of some of those X() and Y() calls...
- restore proper actor.h file.
2016-01-18 21:01:52 +01:00
Christoph Oelckers 460751653d - refactored most of Heretic's game code. 2016-01-18 20:13:20 +01:00
Christoph Oelckers 57ab1387f2 - yet more refactoring.
Note about A_SkelMissile: The direct change of the missile's position was changed to use SetOrigin. If this is later supposed to be portal-aware, such direct coordinate changes are a no-go to ensure that everything is properly maintained.
2016-01-18 18:52:24 +01:00
Christoph Oelckers 2b5e5b6bc3 - next round of refactoring.
This contains some advance work for handling line-to-line portals in A_PainShootSkull.
This function is special because it performs a map check itself instead of using one of the common functions from p_map.cpp, like most of the rest of the game code.
2016-01-18 16:49:24 +01:00
Braden Obrzut b6cdcddf30 - Fixed: Static mirrors in hexen format maps were broken. 2016-01-18 10:30:56 -05:00
Braden Obrzut f3f77a1ba0 Merge branch 'master' into portals2_visual 2016-01-18 09:45:42 -05:00
Christoph Oelckers b63eb391f7 - refactored two mire files.
- fixed: FraggleScript's SetObjPosition function did not properly set the moved actor's properties. Better use SetOrigin for changing the position.
2016-01-18 12:37:39 +01:00
Christoph Oelckers e8ee8c5c97 - fixed: secspecial_t was left uninitialized, causing its damage type being an invalid name. 2016-01-18 01:21:20 +01:00
Christoph Oelckers 43314f0c0d - started refactoring p_map.cpp
- added AActor::Top function to replace the frequent occurences of actor->z + actor->height.
2016-01-18 00:59:16 +01:00
Christoph Oelckers b735138332 - forgot the changes to actor.h. 2016-01-17 22:56:16 +01:00
Christoph Oelckers a65ff39872 - more coordinate refactoring in p_enemy.cpp. 2016-01-17 22:13:17 +01:00
Christoph Oelckers bf747075e8 Merge branch 'master' into scripting
Conflicts:
	src/actor.h
	src/g_hexen/a_clericstaff.cpp
	src/p_enemy.cpp
	src/p_interaction.cpp
	src/p_local.h
	src/p_mobj.cpp
	src/thingdef/thingdef_codeptr.cpp
2016-01-17 20:57:55 +01:00
Christoph Oelckers cfcd2668cc Merge commit '772a5724313f2ad0bd6828fcc28545a9ee5e6068' into scripting
Conflicts:
	src/p_pspr.cpp
	src/thingdef/thingdef_codeptr.cpp
2016-01-17 20:00:45 +01:00
Christoph Oelckers fbaab5044d Merge commit '38df0665e3a2018cf1d0028a36357df6c7e908e9' into scripting
Conflicts:
	src/d_dehacked.cpp
	src/decallib.cpp
	src/g_hexen/a_clericstaff.cpp
	src/p_interaction.cpp
	src/p_local.h
	src/thingdef/thingdef_codeptr.cpp
	wadsrc/static/actors/constants.txt
	wadsrc/static/actors/shared/inventory.txt
2016-01-17 19:50:34 +01:00