Commit Graph

6298 Commits

Author SHA1 Message Date
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
coelckers ed0b740d8d Merge pull request #486 from Edward850/savePRNG-fix
Fixed load order for saves
2016-01-20 08:57:07 +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
coelckers 9282eda306 Merge pull request #484 from ChillyDoom/wi_stuff-sizeof-fix
Minor Intermission Fix
2016-01-19 16:39:32 +01:00
Christoph Oelckers 354b55c0a3 Merge branch 'master' into scripting
Conflicts:
	src/g_shared/a_debris.cpp
	src/g_strife/a_thingstoblowup.cpp
	src/thingdef/thingdef_codeptr.cpp
2016-01-19 16:11:05 +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