From b613db4ae5c05655a93792671b50b41d4b4c80d4 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Fri, 18 Sep 2015 17:41:16 +0200 Subject: [PATCH] Revert "Merge pull request #359 from Leonard2/master" This reverts commit 364ca11b43d8f4cd736506918f5c1fdb63721235, reversing changes made to dae0e217d1f16260c6e94a3d5db5a8dfcf117ecb. Conflicts: src/r_data/r_interpolate.cpp --- src/d_player.h | 1 - src/g_game.cpp | 9 -- src/p_pspr.cpp | 21 ---- src/p_pspr.h | 6 -- src/p_saveg.cpp | 5 - src/p_user.cpp | 15 --- src/r_data/r_interpolate.cpp | 196 +---------------------------------- src/version.h | 2 +- 8 files changed, 4 insertions(+), 251 deletions(-) diff --git a/src/d_player.h b/src/d_player.h index 2ac2ad0d5..e27bf1087 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -427,7 +427,6 @@ public: short fixedcolormap; // can be set to REDCOLORMAP, etc. short fixedlightlevel; pspdef_t psprites[NUMPSPRITES]; // view sprites (gun, etc) - TObjPtr pspinterp[NUMPSPRITES]; // view sprite interpolations int morphTics; // player is a chicken/pig if > 0 const PClass *MorphedPlayerClass; // [MH] (for SBARINFO) class # for this player instance when morphed int MorphStyle; // which effects to apply for this player instance when morphed diff --git a/src/g_game.cpp b/src/g_game.cpp index f77949687..8101ca23d 100644 --- a/src/g_game.cpp +++ b/src/g_game.cpp @@ -1726,15 +1726,6 @@ void G_DoPlayerPop(int playernum) players[playernum].mo = NULL; players[playernum].camera = NULL; } - // Now's the ideal time to remove his psprite interpolations. - for (int ii = 0; ii < NUMPSPRITES; ii++) - { - if (players[playernum].psprites[ii].interpolation != NULL) - { - players[playernum].psprites[ii].StopInterpolation(); - players[playernum].pspinterp[ii] = NULL; - } - } // [RH] Let the scripts know the player left FBehavior::StaticStartTypedScripts(SCRIPT_Disconnect, NULL, true, playernum); } diff --git a/src/p_pspr.cpp b/src/p_pspr.cpp index d2bf8cc87..63f3bc648 100644 --- a/src/p_pspr.cpp +++ b/src/p_pspr.cpp @@ -1104,32 +1104,11 @@ void P_MovePsprites (player_t *player) P_CheckWeaponZoom (player); } } - - psp = &player->psprites[0]; - for (i = 0; i < NUMPSPRITES; i++, psp++) - { - if (psp->state == NULL) - { - if (psp->interpolation != NULL) - { - player->pspinterp[i] = NULL; - psp->StopInterpolation(); - } - } - else if (psp->interpolation == NULL) - { - player->pspinterp[i] = psp->SetInterpolation(player - players, i); - } - } } FArchive &operator<< (FArchive &arc, pspdef_t &def) { arc << def.state << def.tics << def.sx << def.sy << def.sprite << def.frame; - - if (SaveVersion >= 4525) - arc << def.interpolation; - return arc; } diff --git a/src/p_pspr.h b/src/p_pspr.h index 62c2a6fe4..ca9b45ee8 100644 --- a/src/p_pspr.h +++ b/src/p_pspr.h @@ -26,7 +26,6 @@ // Basic data types. // Needs fixed point, and BAM angles. #include "tables.h" -#include "r_data/r_interpolate.h" #include "thingdef/thingdef.h" #define WEAPONBOTTOM 128*FRACUNIT @@ -72,11 +71,6 @@ struct pspdef_t int sprite; int frame; bool processPending; // true: waiting for periodic processing on this tick - - TObjPtr interpolation; - DInterpolation *SetInterpolation(int player, int position); - void UpdateInterpolation(int player); - void StopInterpolation(); }; class FArchive; diff --git a/src/p_saveg.cpp b/src/p_saveg.cpp index f16bdb0f9..480494320 100644 --- a/src/p_saveg.cpp +++ b/src/p_saveg.cpp @@ -297,11 +297,6 @@ static void CopyPlayer (player_t *dst, player_t *src, const char *name) { dst->mo->player = dst; } - // Fix the psprite interpolation pointers too. - for (int i = 0; i < NUMPSPRITES; i++) - { - dst->psprites[i].UpdateInterpolation(dst - players); - } // These 2 variables may not be overwritten. dst->attackdown = attackdown; dst->usedown = usedown; diff --git a/src/p_user.cpp b/src/p_user.cpp index ced6732a3..0d5cdce20 100644 --- a/src/p_user.cpp +++ b/src/p_user.cpp @@ -316,7 +316,6 @@ player_t::player_t() memset (&cmd, 0, sizeof(cmd)); memset (frags, 0, sizeof(frags)); memset (psprites, 0, sizeof(psprites)); - memset (pspinterp, 0, sizeof(pspinterp)); } player_t &player_t::operator=(const player_t &p) @@ -372,7 +371,6 @@ player_t &player_t::operator=(const player_t &p) fixedcolormap = p.fixedcolormap; fixedlightlevel = p.fixedlightlevel; memcpy(psprites, &p.psprites, sizeof(psprites)); - memcpy(pspinterp, &p.pspinterp, sizeof(pspinterp)); morphTics = p.morphTics; MorphedPlayerClass = p.MorphedPlayerClass; MorphStyle = p.MorphStyle; @@ -437,10 +435,6 @@ size_t player_t::FixPointers (const DObject *old, DObject *rep) if (*&ConversationNPC == old) ConversationNPC = replacement, changed++; if (*&ConversationPC == old) ConversationPC = replacement, changed++; if (*&MUSINFOactor == old) MUSINFOactor = replacement, changed++; - - for (int i = 0; i < NUMPSPRITES; i++) - if (*&pspinterp[i] == old) pspinterp[i] = static_cast(rep), changed++; - return changed; } @@ -460,11 +454,6 @@ size_t player_t::PropagateMark() { GC::Mark(PendingWeapon); } - for (int i = 0; i < NUMPSPRITES; i++) - { - GC::Mark(pspinterp[i]); - } - return sizeof(*this); } @@ -3063,11 +3052,7 @@ void player_t::Serialize (FArchive &arc) for (i = 0; i < MAXPLAYERS; i++) arc << frags[i]; for (i = 0; i < NUMPSPRITES; i++) - { arc << psprites[i]; - if (SaveVersion >= 4525) - arc << pspinterp[i]; - } arc << CurrentPlayerClass; diff --git a/src/r_data/r_interpolate.cpp b/src/r_data/r_interpolate.cpp index 6c2221520..3ca3b557c 100644 --- a/src/r_data/r_interpolate.cpp +++ b/src/r_data/r_interpolate.cpp @@ -151,35 +151,6 @@ public: }; -//========================================================================== -// -// -// -//========================================================================== - -class DPSpriteInterpolation : public DInterpolation -{ - DECLARE_CLASS(DPSpriteInterpolation, DInterpolation) - - pspdef_t *psp; - int player, position; - fixed_t oldx, oldy; - fixed_t bakx, baky; - fixed_t ofsx, ofsy; - fixed_t nfsx, nfsy; - -public: - - DPSpriteInterpolation() {} - DPSpriteInterpolation(pspdef_t *psp, int player, int position); - void UpdatePointer(int player); - void Destroy(); - void UpdateInterpolation(); - void Restore(); - void Interpolate(fixed_t smoothratio); - void Serialize(FArchive &arc); -}; - //========================================================================== // // @@ -191,7 +162,6 @@ IMPLEMENT_CLASS(DSectorPlaneInterpolation) IMPLEMENT_CLASS(DSectorScrollInterpolation) IMPLEMENT_CLASS(DWallScrollInterpolation) IMPLEMENT_CLASS(DPolyobjInterpolation) -IMPLEMENT_CLASS(DPSpriteInterpolation) //========================================================================== // @@ -658,6 +628,7 @@ void DSectorScrollInterpolation::Serialize(FArchive &arc) arc << sector << ceiling << oldx << oldy; } + //========================================================================== // // @@ -853,113 +824,6 @@ void DPolyobjInterpolation::Serialize(FArchive &arc) if (arc.IsLoading()) bakverts.Resize(oldverts.Size()); } -//========================================================================== -// -// -// -//========================================================================== - -//========================================================================== -// -// -// -//========================================================================== - -DPSpriteInterpolation::DPSpriteInterpolation(pspdef_t *_psp, int _player, int _position) -: psp(_psp), player(_player), position(_position), - ofsx(0), ofsy(0), nfsx(0), nfsy(0) -{ - UpdateInterpolation (); - interpolator.AddInterpolation(this); -} - -//========================================================================== -// -// -// -//========================================================================== - -void DPSpriteInterpolation::UpdatePointer(int _player) -{ - player = _player; - psp = &players[player].psprites[position]; -} - -//========================================================================== -// -// -// -//========================================================================== - -void DPSpriteInterpolation::Destroy() -{ - psp->interpolation = NULL; - Super::Destroy(); -} - -//========================================================================== -// -// -// -//========================================================================== - -void DPSpriteInterpolation::UpdateInterpolation() -{ - if ( position == ps_weapon ) - P_BobWeapon( &players[player], psp, &ofsx, &ofsy ); - - oldx = psp->sx + ofsx; - oldy = psp->sy + ofsy; -} - -//========================================================================== -// -// -// -//========================================================================== - -void DPSpriteInterpolation::Restore() -{ - psp->sx = bakx - nfsx; - psp->sy = baky - nfsy; -} - -//========================================================================== -// -// -// -//========================================================================== - -void DPSpriteInterpolation::Interpolate(fixed_t smoothratio) -{ - if ( position == ps_weapon ) - P_BobWeapon( &players[player], psp, &nfsx, &nfsy ); - - bakx = psp->sx + nfsx; - baky = psp->sy + nfsy; - - psp->sx = oldx + FixedMul(bakx - oldx, smoothratio) - nfsx; - psp->sy = oldy + FixedMul(baky - oldy, smoothratio) - nfsy; -} - -//========================================================================== -// -// -// -//========================================================================== - -void DPSpriteInterpolation::Serialize(FArchive &arc) -{ - Super::Serialize(arc); - arc << player << position << oldx << oldy << ofsx << ofsy; - UpdatePointer(player); -} - -//========================================================================== -// -// -// -//========================================================================== //========================================================================== // @@ -1080,62 +944,6 @@ void FPolyObj::StopInterpolation() } } -//========================================================================== -// -// -// -//========================================================================== - -DInterpolation *pspdef_t::SetInterpolation(int player, int position) -{ - if (interpolation == NULL) - { - interpolation = new DPSpriteInterpolation(this, player, position); - } - interpolation->AddRef(); - GC::WriteBarrier(interpolation); - return interpolation; -} - -//========================================================================== -// -// -// -//========================================================================== - -void pspdef_t::UpdateInterpolation(int player) -{ - if (interpolation != NULL) - { - barrier_cast(interpolation)->UpdatePointer(player); - } -} - -//========================================================================== -// -// -// -//========================================================================== - -void pspdef_t::StopInterpolation() -{ - if (interpolation != NULL) - { - interpolation->DelRef(); - } -} - -//========================================================================== -// -// -// -//========================================================================== - -//========================================================================== -// -// -// -//========================================================================== ADD_STAT (interpolations) { @@ -1143,3 +951,5 @@ ADD_STAT (interpolations) out.Format ("%d interpolations", interpolator.CountInterpolations ()); return out; } + + diff --git a/src/version.h b/src/version.h index 168cb7519..913c9bd18 100644 --- a/src/version.h +++ b/src/version.h @@ -76,7 +76,7 @@ const char *GetVersionString(); // Use 4500 as the base git save version, since it's higher than the // SVN revision ever got. -#define SAVEVER 4525 +#define SAVEVER 4524 #define SAVEVERSTRINGIFY2(x) #x #define SAVEVERSTRINGIFY(x) SAVEVERSTRINGIFY2(x)