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:
@ -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);
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
Reference in New Issue
Block a user