Added weapon interpolation.
This commit is contained in:
parent
d786148ccf
commit
86e9504d04
8 changed files with 254 additions and 4 deletions
|
|
@ -316,6 +316,7 @@ 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)
|
||||
|
|
@ -371,6 +372,7 @@ 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;
|
||||
|
|
@ -435,6 +437,10 @@ 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<DInterpolation *>(rep), changed++;
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
||||
|
|
@ -454,6 +460,11 @@ size_t player_t::PropagateMark()
|
|||
{
|
||||
GC::Mark(PendingWeapon);
|
||||
}
|
||||
for (int i = 0; i < NUMPSPRITES; i++)
|
||||
{
|
||||
GC::Mark(pspinterp[i]);
|
||||
}
|
||||
|
||||
return sizeof(*this);
|
||||
}
|
||||
|
||||
|
|
@ -3049,7 +3060,11 @@ 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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue