diff --git a/src/p_mobj.c b/src/p_mobj.c index 6c9dc59af2ac3a5a390ed10ea83a8092c45a0675..cda1c3cf7947037fc182b9c5ec11d8991817d8ad 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -48,7 +48,7 @@ static size_t interpolated_mobjs_capacity = 0; // NOTE: This will NOT check that the mobj has already been added, for perf // reasons. -static void AddInterpolatedMobj(mobj_t *mobj) +void P_AddMobjInterpolator(mobj_t *mobj) { if (interpolated_mobjs_len >= interpolated_mobjs_capacity) { @@ -11010,7 +11010,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type) if (CheckForReverseGravity && !(mobj->flags & MF_NOBLOCKMAP)) P_CheckGravity(mobj, false); - AddInterpolatedMobj(mobj); + P_AddMobjInterpolator(mobj); return mobj; } diff --git a/src/p_mobj.h b/src/p_mobj.h index 5ba79e7179ceeafd1f966c86b07833e38cd99b3b..9b5a215a2e8199192203edfa3336bfa00d9fffbf 100644 --- a/src/p_mobj.h +++ b/src/p_mobj.h @@ -506,6 +506,8 @@ void P_EmeraldManager(void); // Initialize internal mobj interpolator list (e.g. during level loading) void P_InitMobjInterpolators(void); +// Add interpolation state for the given mobj +void P_AddMobjInterpolator(mobj_t *mobj); void P_UpdateMobjInterpolators(void); void P_ResetMobjInterpolationState(mobj_t *mobj); void P_ResetPrecipitationMobjInterpolationState(precipmobj_t *mobj); diff --git a/src/p_saveg.c b/src/p_saveg.c index 46b509d19ce94e7c32f8e5174ef56453661c73ac..eed5941988b657aa60f838401973bfc908673dc2 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -2969,6 +2969,8 @@ static thinker_t* LoadMobjThinker(actionf_p1 thinker) mobj->info = (mobjinfo_t *)next; // temporarily, set when leave this function + P_AddMobjInterpolator(mobj); + return &mobj->thinker; }