1
0
mirror of https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git synced 2025-07-18 19:29:09 +00:00

Mute the linking sound on client kicks

This commit is really quite awesome in that you can now propagate any
plLinkToAgeMsg that will mute the link out, link in sounds, or both. Some
garbage fields were repurposed for this functionality. The messages were
passed correctly on Cyan's MOULa server.

Conflicts:

	Sources/Plasma/PubUtilLib/plMessage/plLinkToAgeMsg.h
	Sources/Plasma/PubUtilLib/plNetClient/plLinkEffectsMgr.cpp
	Sources/Plasma/PubUtilLib/plNetClient/plNetClientMgr.h
	Sources/Plasma/PubUtilLib/plNetClient/plNetLinkingMgr.cpp
This commit is contained in:
2012-06-12 17:50:45 -04:00
parent 33d26ce29f
commit af1db55f67
10 changed files with 109 additions and 82 deletions

View File

@ -53,11 +53,11 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
//
// plLinkToAgeMsg
plLinkToAgeMsg::plLinkToAgeMsg() : fLinkInAnimName(nil)
plLinkToAgeMsg::plLinkToAgeMsg() : fLinkInAnimName(nil), fFlags(0)
{
}
plLinkToAgeMsg::plLinkToAgeMsg( const plAgeLinkStruct * link ) : fLinkInAnimName(nil)
plLinkToAgeMsg::plLinkToAgeMsg( const plAgeLinkStruct * link ) : fLinkInAnimName(nil), fFlags(0)
{
fAgeLink.CopyFrom( link );
}
@ -67,12 +67,22 @@ plLinkToAgeMsg::~plLinkToAgeMsg()
delete [] fLinkInAnimName;
}
// StreamVersion needed for back compatibility.
uint8_t plLinkToAgeInfo_StreamVersion = 0;
void plLinkToAgeMsg::PlayLinkSfx(bool linkIn, bool linkOut)
{
if (linkIn)
fFlags &= ~kMuteLinkInSfx;
else
fFlags |= kMuteLinkInSfx;
if (linkOut)
fFlags &= ~kMuteLinkOutSfx;
else
fFlags |= kMuteLinkOutSfx;
}
void plLinkToAgeMsg::Read(hsStream* stream, hsResMgr* mgr)
{
plMessage::IMsgRead( stream, mgr );
uint8_t ltaVer = stream->ReadByte();
fFlags = stream->ReadByte();
fAgeLink.Read( stream, mgr );
fLinkInAnimName = stream->ReadSafeString();
}
@ -80,7 +90,7 @@ void plLinkToAgeMsg::Read(hsStream* stream, hsResMgr* mgr)
void plLinkToAgeMsg::Write(hsStream* stream, hsResMgr* mgr)
{
plMessage::IMsgWrite( stream, mgr );
stream->WriteByte( plLinkToAgeInfo_StreamVersion );
stream->WriteByte( fFlags );
fAgeLink.Write( stream, mgr );
stream->WriteSafeString(fLinkInAnimName);
}
@ -185,6 +195,14 @@ plLinkEffectsTriggerMsg::~plLinkEffectsTriggerMsg()
{
}
void plLinkEffectsTriggerMsg::MuteLinkSfx(bool mute)
{
if (mute)
fFlags |= kMuteLinkSfx;
else
fFlags &= ~kMuteLinkSfx;
}
void plLinkEffectsTriggerMsg::Read(hsStream* stream, hsResMgr* mgr)
{
plMessage::IMsgRead( stream, mgr );
@ -192,11 +210,7 @@ void plLinkEffectsTriggerMsg::Read(hsStream* stream, hsResMgr* mgr)
fInvisLevel = stream->ReadLE32();
fLeavingAge = stream->ReadBool();
fLinkKey = mgr->ReadKey(stream);
// This variable is for internal use only. Still read/written for backwards compatability.
fEffects = stream->ReadLE32();
fEffects = 0;
fFlags = stream->ReadLE32();
fLinkInAnimKey = mgr->ReadKey(stream);
}
@ -207,7 +221,7 @@ void plLinkEffectsTriggerMsg::Write(hsStream* stream, hsResMgr* mgr)
stream->WriteLE32(fInvisLevel);
stream->WriteBool(fLeavingAge);
mgr->WriteKey(stream, fLinkKey);
stream->WriteLE32(fEffects);
stream->WriteLE32(fFlags);
mgr->WriteKey(stream, fLinkInAnimKey);
}

View File

@ -58,6 +58,13 @@ class hsResMgr;
class plLinkToAgeMsg : public plMessage
{
enum
{
kMuteLinkOutSfx = 1<<0,
kMuteLinkInSfx = 1<<1,
};
uint8_t fFlags;
plAgeLinkStruct fAgeLink;
char* fLinkInAnimName;
@ -72,6 +79,10 @@ public:
plAgeLinkStruct * GetAgeLink() { return &fAgeLink; }
const plAgeLinkStruct * GetAgeLink() const { return &fAgeLink; }
void PlayLinkSfx(bool linkIn = true, bool linkOut = true);
bool PlayLinkInSfx() const { return (fFlags & kMuteLinkInSfx) == 0; }
bool PlayLinkOutSfx() const { return (fFlags & kMuteLinkOutSfx) == 0; }
const char * GetLinkInAnimName() { return fLinkInAnimName; }
void SetLinkInAnimName(const char* name) { delete [] fLinkInAnimName; fLinkInAnimName = hsStrcpy(name); }
@ -117,12 +128,18 @@ public:
class plLinkEffectsTriggerMsg : public plMessage
{
protected:
enum
{
kMuteLinkSfx = 1<<0
};
bool fLeavingAge;
plKey fLinkKey;
plKey fLinkInAnimKey;
int fInvisLevel;
int fFlags;
public:
plLinkEffectsTriggerMsg() : fLeavingAge(true), fLinkKey(nil), fLinkInAnimKey(nil), fEffects(0), fInvisLevel(0) { }
plLinkEffectsTriggerMsg() : fLeavingAge(true), fLinkKey(nil), fLinkInAnimKey(nil), fEffects(0), fInvisLevel(0), fFlags(0) { }
~plLinkEffectsTriggerMsg();
CLASSNAME_REGISTER( plLinkEffectsTriggerMsg );
@ -139,6 +156,9 @@ public:
void SetLinkInAnimKey(plKey &key);
plKey GetLinkInAnimKey() { return fLinkInAnimKey; }
void MuteLinkSfx(bool mute);
bool MuteLinkSfx() const { return (fFlags & kMuteLinkSfx) != 0; }
void Read(hsStream* stream, hsResMgr* mgr);
void Write(hsStream* stream, hsResMgr* mgr);