In FreezeTime mode, keep avatars that TP away.

If an avatar TP's away (or quits), he will not
disappear anymore from a frozen scene. Unfreezing
makes him disappear of course (and clean up).

Known bug: if during Freeze Time mode someone
TPs away and then back, then he becomes a cloud
after Freeze Time is ended, which can only be
reset by another teleport (or relog) from either
the cloud or the one seeing him as cloud.
I decided not to fix this, cause there are things
with a higher priority and this - if it happens
at all - is rare and easy to recognize and work
around.
This commit is contained in:
Aleric Inglewood
2012-12-15 21:53:08 +01:00
parent e0c0da7dff
commit a9963bcdb3
5 changed files with 37 additions and 19 deletions

View File

@@ -358,6 +358,8 @@ private:
S32 mVisualComplexity;
LLFrameTimer mFullyLoadedTimer;
LLFrameTimer mRuthTimer;
bool mFreezeTimeHidden; // True when this object was created during snapshot FreezeTime mode, and that mode is STILL active.
bool mFreezeTimeDead; // True when the avatar was marked dead (ie, TP-ed away) while in FreezeTime mode.
protected:
LLFrameTimer mInvisibleTimer;
@@ -453,6 +455,7 @@ private:
public:
U32 renderImpostor(LLColor4U color = LLColor4U(255,255,255,255), S32 diffuse_channel = 0);
bool isVisuallyMuted() const;
void resetFreezeTime();
U32 renderRigid();
U32 renderSkinned(EAvatarRenderPass pass);