Commit Graph

6994 Commits

Author SHA1 Message Date
Christoph Oelckers 77f05a0010 - fixed spawn positions for Korax's missiles. 2016-04-14 00:21:38 +02:00
Christoph Oelckers 0f7fce8bbb - removed portal offsetting from the sprite distance check.
This isn't necessary. When rendering no actors from other groups may ever come into view directly - only when the respective part of the level is rendered through a portal. But at that point the camera is in a position where it's already correctly placed with relation to that actor.
2016-04-13 19:32:54 +02:00
Christoph Oelckers d88a5ac353 - make distancecheck 3D and use the actual view position for calculation. 2016-04-13 10:48:39 +02:00
Christoph Oelckers 45cfea17f5 - removed unused variable. 2016-04-13 10:34:04 +02:00
Christoph Oelckers 21b45fc0eb - fixed: distancecheck as a class property needs to be copied manually to subclasses. 2016-04-12 22:42:02 +02:00
Christoph Oelckers 3f0ed5d252 - added a distancecheck property to AActor that allows a given CVAR to be used as maximum display distance for actors of this type.
This is for WolfenDoom: BOA, which has some scripted sprite distance checks that very negatively affected performance.
2016-04-12 19:44:12 +02:00
Christoph Oelckers e1a683b9ec - fixed minimum damage check in PowerDamage. 2016-04-12 15:49:13 +02:00
Christoph Oelckers 5d528fe317 - fixed: PCD_ENDTRANSLATION was missing a NULL pointer check. 2016-04-12 01:23:12 +02:00
Christoph Oelckers a97f67edb6 - fixed: P_GetMidTexturePosition needs to divide by scale, not multiply, to get the proper offset. 2016-04-11 23:12:35 +02:00
Christoph Oelckers aec1c85c08 - fixed: alpha for patches needs to be multiplied by 65536, not divided by. 2016-04-11 22:21:17 +02:00
Christoph Oelckers ae6df617ba - fixed: The FPathTraverse call in P_UsePuzzleItem was missing the PT_DELTA flag. 2016-04-11 22:10:46 +02:00
Christoph Oelckers e72bfa8add - fixed: For finding the listener's sector the sound code used the wrong coordinate. 2016-04-11 21:02:44 +02:00
Christoph Oelckers 99ca649930 - fixed NULL pointer access in SetAmmoCapacity. 2016-04-11 20:42:43 +02:00
Christoph Oelckers 77bfffaee0 - removed a few __cdecl's from the source. 2016-04-11 12:46:48 +02:00
Christoph Oelckers db86385cf6 - removed STACK_ARGS.
The only reason this even existed was that ZDoom's original VC projects used __fastcall. The CMake generated project do not, they stick to __cdecl.
Since no performance gain can be seen by using __fastcall the best course of action is to just remove all traces of it from the source and forget that it ever existed.
2016-04-11 10:46:30 +02:00
MajorCooke 76f00131ff - Fixed: A_CheckBlock's dropoff check ignored the specifications of NOACTORS and NOLINES due to P_CheckMove blindly failing if P_CheckPosition failed. This lead to false positives such as blocking actors being detected when they shouldn't be. 2016-04-10 20:11:04 +02:00
Christoph Oelckers 76c18820cb - moved the declarations for the lighting thinkers to p_light.cpp.
Aside from the init function they are not needed anywhere else and that could also be placed into this file.
2016-04-10 18:29:23 +02:00
Christoph Oelckers c12a85ee85 - removed some unused content from p_spec.h 2016-04-10 18:14:01 +02:00
alexey.lysiuk 93c334059a Made title text always visible in OS X startup window
Added temporary solution for the same foreground and background colors of the title in OS X startup window
It's used in graphical startup screen, with Hexen style in particular (for example WolfenDoom - Blade of Agony)
Native OS X backend doesn't implement this yet
2016-04-10 14:06:18 +02:00
Christoph Oelckers fe973ba442 - tried to add precompiled headers to fastmath sources as well, but VC++ doesn't seem to want to play along. So I left this stuff in but disabled the precompilation until a solution can be found. 2016-04-10 13:54:42 +02:00
Christoph Oelckers 08b0be11a6 - add the precompiled header file for the previous commit. 2016-04-10 13:10:41 +02:00
Christoph Oelckers 9cc873ecdd - enable use of precompiled headers for MSVC. Thanks to a small CMake script I recently found this could be done non-invasively.
Due to the VC++ 2015 headers being rather bloated (the average include size per source is 400-500kb) this provides a noticable compile speedup, although right now this only covers the game code, so there should be more room for improvement.
2016-04-10 13:08:54 +02:00
Christoph Oelckers 12129b0f07 - added a system-include independent wrapper for Windows's OutputDebugString, so that this can be used more easily in files that cannot include windows.h. 2016-04-10 13:03:44 +02:00
Christoph Oelckers ef08e29d51 - remove windows header #include from gameconfigfile.cpp, because it isn't needed. 2016-04-10 12:33:35 +02:00
Christoph Oelckers d48c0ce25c - fixed some particle positioning errors. 2016-04-10 10:57:48 +02:00
Christoph Oelckers 9a48adf81a - fixed: The software 2D drawer expected its translation pointer to be initialized by ParseDrawTextureTags. Removed the variable from DrawParms and made it and its initialization local to the software rendering code. 2016-04-09 22:56:12 +02:00
MajorCooke c79a1b6a45 thing->floorz --> thing->dropoffz 2016-04-09 22:33:55 +02:00
MajorCooke 8b8c879994 - CBF_DROPOFF Fixes
- Fixed: CBF_DROPOFF didn't actually check the coordinates passed to it for dropoff height values. It only checked to see if it was stuck in lines.
2016-04-09 22:33:54 +02:00
Christoph Oelckers dc72e7f3c2 - removed the check for VA_COPY from CMakeLists.txt.
This is because nothing uses va_copy anymore and it's a mandatory part of C++11, therefore always available.
2016-04-09 22:07:14 +02:00
Christoph Oelckers 1f1a0ca847 - fixed incorrect check for negative damage in APowerProtection::ModifyDamage. 2016-04-09 21:57:35 +02:00
Christoph Oelckers bcebeadedc - fixed: ACS's GetActorPitch needs to convert to a signed angle. 2016-04-09 21:44:09 +02:00
alexey.lysiuk daa112e2ac Fixed OS X compilation after floating point merge
Header files from Carbon framework caused a few symbol conflicts
2016-04-09 20:54:04 +02:00
Christoph Oelckers a827bab576 - refactored the use of tag lists so that they do not have to be passed around between functions.
This means that the varargs functions themselves are now responsible for parsing them into DrawParms.
This was done because DrawTextV made a blanket assumption that every single vararg has the size of a 32 bit integer and caused crashes when anything else was passed. It also failed to eliminate any tag that is incompatible with text display. These will now abort DrawText and trigger an assert.
2016-04-09 20:47:54 +02:00
Christoph Oelckers e2ae7d8f5d - removed the unused x and y parameters from DrawTextureParms. 2016-04-09 12:59:50 +02:00
Christoph Oelckers 43dd759859 - changed DrawTexture so that the parameters get parsed in the varargs function directly and that the virtual function that is getting called gets the fully prepared data.
In order to avoid passing around tag lists, DrawTextV needs to parse everything itself and then pass a fully initialized structure to DrawTexture. This cannot be done if all variants require a varargs tag list.
Apparently the only reason for the old approach was the 'hw' parameter which was never used.
2016-04-09 12:55:12 +02:00
Christoph Oelckers ca317a87ea - started working on tracking portal transitions for railgun shots. 2016-04-09 12:09:06 +02:00
Christoph Oelckers bc7e159be0 - cleaned up ceiling creation and moved the Create function out of the DCeiling class.
- did the same for floors so that FraggleScript no longer needs access to the thinkers themselves.
2016-04-09 12:07:34 +02:00
Christoph Oelckers caae61de4c - removed DMoveCeiling and let FS call DCeiling::Create instead. Made a minor change to DCeiling::Create to keep it compatible, because handling for instantly moving ceilings is a bit different. 2016-04-08 20:44:55 +02:00
Christoph Oelckers 919f99db61 - fixed typo in actor scale assignment when spawning. 2016-04-08 16:52:42 +02:00
Christoph Oelckers 39d03f12b1 - fixed float <-> fixed conversion errors in Fragglescript. 2016-04-08 15:14:26 +02:00
Christoph Oelckers 06dc96b062 - removed 64 bit warnings. 2016-04-08 14:21:20 +02:00
Christoph Oelckers 8535a973cf - made MoveAttached, MoveCeiling and MoveFloor members of sector_t instead of DMover.
- call MoveFloor and MoveCeiling directly in FS's floorheight and ceilingheight functions and remove the dummy thinkers it had to use before.
2016-04-08 14:18:46 +02:00
Christoph Oelckers e505bfd7a3 - took EResult out of DMover and made it an enum class. 2016-04-08 13:59:03 +02:00
Christoph Oelckers fb2234396c - split DSectorEffect::MovePlane into MoveFloor and MoveCeiling.
What was the point of this strange setup anyway? MoveFloor and MoveCeiling were inlines calling the universal MovePlane, which had nothing better to do than a switch/case with two cases - floor and ceiling!
2016-04-08 13:39:08 +02:00
Christoph Oelckers 74c9a7bf67 - fixed angle calculation in AdjustPlayerAngle for portals.
Normally this will adjust relative to the actual direction to the target, but with arbitrary portals that cannot be calculated so using the actual attack angle is the only option.
2016-04-08 13:08:08 +02:00
Christoph Oelckers 7404142edf - fixed incorrect center point calculation. 2016-04-08 12:51:00 +02:00
Christoph Oelckers 58002f7f96 - fixed: an 'if' that gets completely optimized away by a constant 'false' condition should not make the entire function disappear. 2016-04-07 20:31:12 +02:00
Christoph Oelckers 0cbdb9ab72 - handle display of player sprite during portal transition properly.
This checks if the current viewpoint lies on the interpolation path, translated by all active portals.
2016-04-07 19:35:01 +02:00
Christoph Oelckers 47e20aead4 - disallow crossable portals on one-sided linedefs which do not belong to a polyobject.
Sadly the mappers cannot be trusted to use a feature correctly. Despite repeatedly telling that portals on one-sided lines are problematic, everybody seems to do it this way - and then report bugs if it doesn't work. Under such circumstances the only safe option is to block such portals entirely.

See http://forum.zdoom.org/viewtopic.php?f=2&t=51511&p=898522#p898522 for a typical example of the problems this might cause.
2016-04-07 17:13:56 +02:00
Christoph Oelckers 32bbec7cad - fixed: the random offset that gets used when spawning blood applies to both sprites and particles, not just sprites. 2016-04-07 14:14:44 +02:00