mirror of
https://foundry.openuru.org/gitblit/r/CWE-ou-minkata.git
synced 2025-07-17 10:52:46 +00:00
@ -65,9 +65,9 @@ void pyNetLinkingMgr::SetEnabled( bool b ) const
|
||||
plNetLinkingMgr::GetInstance()->SetEnabled( b );
|
||||
}
|
||||
|
||||
void pyNetLinkingMgr::LinkToAge( pyAgeLinkStruct & link, const char* linkAnim )
|
||||
void pyNetLinkingMgr::LinkToAge( pyAgeLinkStruct & link, const char* linkAnim, bool linkInSfx, bool linkOutSfx )
|
||||
{
|
||||
plNetLinkingMgr::GetInstance()->LinkToAge( link.GetAgeLink(), linkAnim );
|
||||
plNetLinkingMgr::GetInstance()->LinkToAge( link.GetAgeLink(), linkAnim, linkInSfx, linkOutSfx );
|
||||
}
|
||||
|
||||
void pyNetLinkingMgr::LinkToMyPersonalAge()
|
||||
|
@ -80,7 +80,7 @@ public:
|
||||
void SetEnabled( bool b ) const;
|
||||
|
||||
// Link to a public instance. PLS will load balance.
|
||||
void LinkToAge( pyAgeLinkStruct & link, const char* linkAnim );
|
||||
void LinkToAge( pyAgeLinkStruct & link, const char* linkAnim, bool linkInSfx, bool linkOutSfx );
|
||||
// Link to my Personal Age
|
||||
void LinkToMyPersonalAge();
|
||||
// link to my personal age with the YeehsaBook
|
||||
|
@ -79,11 +79,13 @@ PYTHON_METHOD_DEFINITION(ptNetLinkingMgr, setEnabled, args)
|
||||
PYTHON_RETURN_NONE;
|
||||
}
|
||||
|
||||
PYTHON_METHOD_DEFINITION(ptNetLinkingMgr, linkToAge, args)
|
||||
PYTHON_METHOD_DEFINITION_WKEY(ptNetLinkingMgr, linkToAge, args, kwargs)
|
||||
{
|
||||
char* kwlist[] = { "ageLink", "anim", "linkInSfx", "linkOutSfx", nullptr };
|
||||
PyObject* ageLinkObj = NULL;
|
||||
char* linkAnim = NULL;
|
||||
if (!PyArg_ParseTuple(args, "O|s", &ageLinkObj, &linkAnim))
|
||||
bool linkInSfx, linkOutSfx = true;
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O|sbb", kwlist, &ageLinkObj, &linkAnim, &linkInSfx, &linkOutSfx))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "linkToAge expects a ptAgeLinkStruct and an optional link anim name");
|
||||
PYTHON_RETURN_ERROR;
|
||||
@ -94,7 +96,7 @@ PYTHON_METHOD_DEFINITION(ptNetLinkingMgr, linkToAge, args)
|
||||
PYTHON_RETURN_ERROR;
|
||||
}
|
||||
pyAgeLinkStruct* ageLink = pyAgeLinkStruct::ConvertFrom(ageLinkObj);
|
||||
self->fThis->LinkToAge(*ageLink, linkAnim);
|
||||
self->fThis->LinkToAge(*ageLink, linkAnim, linkInSfx, linkOutSfx);
|
||||
PYTHON_RETURN_NONE;
|
||||
}
|
||||
|
||||
@ -158,7 +160,7 @@ PYTHON_METHOD_DEFINITION_NOARGS(ptNetLinkingMgr, getPrevAgeLink)
|
||||
PYTHON_START_METHODS_TABLE(ptNetLinkingMgr)
|
||||
PYTHON_METHOD_NOARGS(ptNetLinkingMgr, isEnabled, "True if linking is enabled."),
|
||||
PYTHON_METHOD(ptNetLinkingMgr, setEnabled, "Params: enable\nEnable/Disable linking."),
|
||||
PYTHON_METHOD(ptNetLinkingMgr, linkToAge, "Params: ageLink, linkAnim\nLinks to ageLink (ptAgeLinkStruct, string)"),
|
||||
PYTHON_METHOD_WKEY(ptNetLinkingMgr, linkToAge, "Params: ageLink, linkAnim\nLinks to ageLink (ptAgeLinkStruct, string)"),
|
||||
PYTHON_BASIC_METHOD(ptNetLinkingMgr, linkToMyPersonalAge, "Link to my Personal Age"),
|
||||
PYTHON_BASIC_METHOD(ptNetLinkingMgr, linkToMyPersonalAgeWithYeeshaBook, "Link to my Personal Age with the YeeshaBook"),
|
||||
PYTHON_BASIC_METHOD(ptNetLinkingMgr, linkToMyNeighborhoodAge, "Link to my Neighborhood Age"),
|
||||
|
@ -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);
|
||||
|
@ -365,6 +365,7 @@ bool plLinkEffectsMgr::MsgReceive(plMessage *msg)
|
||||
BCMsg->fLinkKey = linkKey;
|
||||
BCMsg->SetLinkFlag(plLinkEffectBCMsg::kLeavingAge, pTriggerMsg->IsLeavingAge());
|
||||
BCMsg->SetLinkFlag(plLinkEffectBCMsg::kSendCallback, true);
|
||||
BCMsg->SetLinkFlag(plLinkEffectBCMsg::kMute, pTriggerMsg->MuteLinkSfx());
|
||||
|
||||
// Check if you have a Yeesha book, and mute sound if you don't.
|
||||
// 'CleftSolved' gets set when you click on the linking panel in the cleft,
|
||||
@ -393,7 +394,7 @@ bool plLinkEffectsMgr::MsgReceive(plMessage *msg)
|
||||
if ( linkToACA || linkFromACA || linkToStartup || linkFromStartup || linkToFissureDrop || linkToDsntFromShell)
|
||||
{
|
||||
BCMsg->SetLinkFlag(plLinkEffectBCMsg::kMute);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -50,6 +50,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
#include "plNetCliAgeJoiner.h"
|
||||
#include "plNetClientMgr.h"
|
||||
#include "plNetLinkingMgr.h"
|
||||
#include "plNetObjectDebugger.h"
|
||||
|
||||
#include "pnSceneObject/plSceneObject.h"
|
||||
#include "pnSceneObject/plCoordinateInterface.h"
|
||||
@ -59,6 +60,7 @@ You can contact Cyan Worlds, Inc. by email legal@cyan.com
|
||||
|
||||
#include "plNetClientComm/plNetClientComm.h"
|
||||
#include "plAgeLoader/plAgeLoader.h"
|
||||
#include "plAvatar/plArmatureMod.h"
|
||||
#include "plAvatar/plAvatarMgr.h"
|
||||
#include "plVault/plVault.h"
|
||||
|
||||
@ -100,11 +102,13 @@ struct plNCAgeJoiner {
|
||||
FNCAgeJoinerCallback callback;
|
||||
void * userState;
|
||||
bool complete;
|
||||
bool muteLinkSfx;
|
||||
|
||||
plOperationProgress* progressBar;
|
||||
|
||||
plNCAgeJoiner (
|
||||
const NetCommAge & age,
|
||||
bool muteSfx,
|
||||
FNCAgeJoinerCallback callback,
|
||||
void * userState
|
||||
);
|
||||
@ -157,10 +161,12 @@ void AgeVaultDownloadCallback (
|
||||
//============================================================================
|
||||
plNCAgeJoiner::plNCAgeJoiner (
|
||||
const NetCommAge & age,
|
||||
bool muteSfx,
|
||||
FNCAgeJoinerCallback callback,
|
||||
void * userState
|
||||
) : nextOp(kNoOp)
|
||||
, age(age)
|
||||
, muteLinkSfx(muteSfx)
|
||||
, callback(callback)
|
||||
, userState(userState)
|
||||
, complete(false)
|
||||
@ -354,7 +360,7 @@ void plNCAgeJoiner::ExecNextOp () {
|
||||
nc->SetFlagsBit(plNetClientApp::kPlayingGame);
|
||||
nc->SetFlagsBit(plNetClientApp::kNeedToSendInitialAgeStateLoadedMsg);
|
||||
plAgeLoader::GetInstance()->NotifyAgeLoaded(true);
|
||||
Complete(true, "Age joined");
|
||||
nextOp = kNoOp;
|
||||
}
|
||||
break;
|
||||
|
||||
@ -448,6 +454,36 @@ bool plNCAgeJoiner::MsgReceive (plMessage * msg) {
|
||||
nextOp = kDestroyProgressBar;
|
||||
return true;
|
||||
}
|
||||
|
||||
//========================================================================
|
||||
// Done loading all states. Time to link in!
|
||||
//========================================================================
|
||||
plInitialAgeStateLoadedMsg * stateMsg = plInitialAgeStateLoadedMsg::ConvertNoRef(msg);
|
||||
if(stateMsg) {
|
||||
plNetObjectDebugger::GetInstance()->LogMsg("OnServerInitComplete");
|
||||
nc->SetFlagsBit(plNetClientApp::kLoadingInitialAgeState, false);
|
||||
|
||||
const plArmatureMod *avMod = plAvatarMgr::GetInstance()->GetLocalAvatar();
|
||||
|
||||
plLinkEffectsTriggerMsg* lem = new plLinkEffectsTriggerMsg();
|
||||
lem->SetLeavingAge(false); // linking in
|
||||
lem->SetLinkKey(nc->GetLocalPlayerKey());
|
||||
plKey animKey = avMod->GetLinkInAnimKey();
|
||||
lem->SetLinkInAnimKey(animKey);
|
||||
|
||||
// indicate if we are invisible
|
||||
if (avMod && avMod->IsInStealthMode() && avMod->GetTarget(0))
|
||||
lem->SetInvisLevel(avMod->GetStealthLevel());
|
||||
|
||||
lem->SetBCastFlag(plMessage::kNetPropagate);
|
||||
lem->MuteLinkSfx(muteLinkSfx);
|
||||
lem->AddReceiver(hsgResMgr::ResMgr()->FindKey(plUoid(kLinkEffectsMgr_KEY)));
|
||||
lem->AddReceiver(hsgResMgr::ResMgr()->FindKey(plUoid(kClient_KEY)));
|
||||
lem->Send();
|
||||
|
||||
Complete(true, "Age joined");
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
@ -469,6 +505,7 @@ void plNCAgeJoiner::Update () {
|
||||
void NCAgeJoinerCreate (
|
||||
plNCAgeJoiner ** pjoiner,
|
||||
const NetCommAge & age,
|
||||
bool muteSfx,
|
||||
FNCAgeJoinerCallback callback,
|
||||
void * userState
|
||||
) {
|
||||
@ -478,6 +515,7 @@ void NCAgeJoinerCreate (
|
||||
plNCAgeJoiner * joiner;
|
||||
*pjoiner = joiner = new plNCAgeJoiner(
|
||||
age,
|
||||
muteSfx,
|
||||
callback,
|
||||
userState
|
||||
);
|
||||
|
@ -85,6 +85,7 @@ typedef void (* FNCAgeJoinerCallback)(
|
||||
void NCAgeJoinerCreate (
|
||||
plNCAgeJoiner ** joiner,
|
||||
const NetCommAge & age,
|
||||
bool muteSfx,
|
||||
FNCAgeJoinerCallback callback,
|
||||
void * userState
|
||||
);
|
||||
|
@ -81,12 +81,14 @@ struct plNCAgeLeaver {
|
||||
|
||||
NextOp nextOp;
|
||||
bool quitting;
|
||||
bool muteLinkSfx;
|
||||
bool complete;
|
||||
FNCAgeLeaverCallback callback;
|
||||
void * userState;
|
||||
|
||||
plNCAgeLeaver (
|
||||
bool quitting,
|
||||
bool muteSfx,
|
||||
FNCAgeLeaverCallback callback,
|
||||
void * userState
|
||||
);
|
||||
@ -109,10 +111,12 @@ struct plNCAgeLeaver {
|
||||
//============================================================================
|
||||
plNCAgeLeaver::plNCAgeLeaver (
|
||||
bool quitting,
|
||||
bool muteSfx,
|
||||
FNCAgeLeaverCallback callback,
|
||||
void * userState
|
||||
) : nextOp(kNoOp)
|
||||
, quitting(quitting)
|
||||
, muteLinkSfx(muteSfx)
|
||||
, complete(false)
|
||||
, callback(callback)
|
||||
, userState(userState)
|
||||
@ -200,7 +204,13 @@ void plNCAgeLeaver::ExecNextOp () {
|
||||
|
||||
//====================================================================
|
||||
case kLinkOutFX: {
|
||||
nc->StartLinkOutFX();
|
||||
plLinkEffectsTriggerMsg* lem = new plLinkEffectsTriggerMsg();
|
||||
lem->MuteLinkSfx(muteLinkSfx);
|
||||
lem->SetLeavingAge(true);
|
||||
lem->SetLinkKey(nc->GetLocalPlayerKey());
|
||||
lem->SetBCastFlag(plMessage::kNetPropagate);
|
||||
lem->SetBCastFlag(plMessage::kNetForce); // Necessary?
|
||||
lem->Send(hsgResMgr::ResMgr()->FindKey(plUoid(kLinkEffectsMgr_KEY)));
|
||||
}
|
||||
break;
|
||||
|
||||
@ -264,6 +274,7 @@ void plNCAgeLeaver::Update () {
|
||||
void NCAgeLeaverCreate (
|
||||
plNCAgeLeaver ** pleaver,
|
||||
bool quitting,
|
||||
bool muteSfx,
|
||||
FNCAgeLeaverCallback callback,
|
||||
void * userState
|
||||
) {
|
||||
@ -273,6 +284,7 @@ void NCAgeLeaverCreate (
|
||||
plNCAgeLeaver * leaver;
|
||||
*pleaver = leaver = new plNCAgeLeaver(
|
||||
quitting,
|
||||
muteSfx,
|
||||
callback,
|
||||
userState
|
||||
);
|
||||
|
@ -85,6 +85,7 @@ typedef void (* FNCAgeLeaverCallback)(
|
||||
void NCAgeLeaverCreate (
|
||||
plNCAgeLeaver ** leaver,
|
||||
bool quitting,
|
||||
bool muteSfx,
|
||||
FNCAgeLeaverCallback callback,
|
||||
void * userState
|
||||
);
|
||||
|
@ -437,55 +437,6 @@ void plNetClientMgr::IUnloadNPCs()
|
||||
hsAssert(fNPCKeys.empty(), "Still npcs left when linking out");
|
||||
}
|
||||
|
||||
//
|
||||
// begin linking out sounds and gfx
|
||||
//
|
||||
void plNetClientMgr::StartLinkOutFX()
|
||||
{
|
||||
// send msg to trigger link out effect
|
||||
if (fLocalPlayerKey)
|
||||
{
|
||||
plNetLinkingMgr * lm = plNetLinkingMgr::GetInstance();
|
||||
|
||||
plLinkEffectsTriggerMsg* lem = new plLinkEffectsTriggerMsg();
|
||||
lem->SetLeavingAge(true);
|
||||
lem->SetLinkKey(fLocalPlayerKey);
|
||||
lem->SetBCastFlag(plMessage::kNetPropagate);
|
||||
lem->SetBCastFlag(plMessage::kNetForce); // Necessary?
|
||||
lem->AddReceiver(hsgResMgr::ResMgr()->FindKey(plUoid(kLinkEffectsMgr_KEY)));
|
||||
lem->Send();
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// beging linking in sounds snd gfx
|
||||
//
|
||||
void plNetClientMgr::StartLinkInFX()
|
||||
{
|
||||
if (fLocalPlayerKey)
|
||||
{
|
||||
const plArmatureMod *avMod = plAvatarMgr::GetInstance()->GetLocalAvatar();
|
||||
|
||||
plLinkEffectsTriggerMsg* lem = new plLinkEffectsTriggerMsg();
|
||||
lem->SetLeavingAge(false); // linking in
|
||||
lem->SetLinkKey(fLocalPlayerKey);
|
||||
plKey animKey = avMod->GetLinkInAnimKey();
|
||||
lem->SetLinkInAnimKey(animKey);
|
||||
|
||||
// indicate if we are invisible
|
||||
if (avMod && avMod->IsInStealthMode() && avMod->GetTarget(0))
|
||||
{
|
||||
lem->SetInvisLevel(avMod->GetStealthLevel());
|
||||
}
|
||||
|
||||
lem->SetBCastFlag(plMessage::kNetPropagate);
|
||||
|
||||
lem->AddReceiver(hsgResMgr::ResMgr()->FindKey(plUoid(kLinkEffectsMgr_KEY)));
|
||||
lem->AddReceiver(hsgResMgr::ResMgr()->FindKey(plUoid(kClient_KEY)));
|
||||
plgDispatch::MsgSend(lem);
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// compute the difference between our clock and the server's in unified time
|
||||
//
|
||||
@ -1056,20 +1007,6 @@ bool plNetClientMgr::MsgReceive( plMessage* msg )
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
plInitialAgeStateLoadedMsg *stateMsg = plInitialAgeStateLoadedMsg::ConvertNoRef( msg );
|
||||
if( stateMsg != nil )
|
||||
{
|
||||
// done receiving the initial state of the age from the server
|
||||
plNetObjectDebugger::GetInstance()->LogMsg("OnServerInitComplete");
|
||||
|
||||
// delete fProgressBar;
|
||||
// fProgressBar=nil;
|
||||
|
||||
SetFlagsBit(kLoadingInitialAgeState, false);
|
||||
StartLinkInFX();
|
||||
}
|
||||
|
||||
plNetVoiceListMsg* voxList = plNetVoiceListMsg::ConvertNoRef(msg);
|
||||
if (voxList)
|
||||
{
|
||||
|
@ -249,9 +249,6 @@ public:
|
||||
|
||||
static plNetClientMgr* GetInstance() { return plNetClientMgr::ConvertNoRef(fInstance); }
|
||||
|
||||
void StartLinkOutFX();
|
||||
void StartLinkInFX();
|
||||
|
||||
bool MsgReceive(plMessage* msg);
|
||||
void Shutdown();
|
||||
int Init();
|
||||
|
@ -100,6 +100,7 @@ struct NlmOpWaitOp : NlmOp {
|
||||
|
||||
struct NlmJoinAgeOp : NlmOp {
|
||||
NetCommAge age;
|
||||
bool muteSfx;
|
||||
NlmJoinAgeOp ()
|
||||
: NlmOp(kNlmOpJoinAgeOp)
|
||||
{ }
|
||||
@ -107,6 +108,7 @@ struct NlmJoinAgeOp : NlmOp {
|
||||
|
||||
struct NlmLeaveAgeOp : NlmOp {
|
||||
bool quitting;
|
||||
bool muteSfx;
|
||||
NlmLeaveAgeOp ()
|
||||
: NlmOp(kNlmOpLeaveAgeOp), quitting(false)
|
||||
{ }
|
||||
@ -237,6 +239,7 @@ void plNetLinkingMgr::ExecNextOp () {
|
||||
NCAgeJoinerCreate(
|
||||
&s_ageJoiner,
|
||||
joinAgeOp->age,
|
||||
joinAgeOp->muteSfx,
|
||||
NCAgeJoinerCallback,
|
||||
waitOp
|
||||
);
|
||||
@ -258,6 +261,7 @@ void plNetLinkingMgr::ExecNextOp () {
|
||||
NCAgeLeaverCreate(
|
||||
&s_ageLeaver,
|
||||
leaveAgeOp->quitting,
|
||||
leaveAgeOp->muteSfx,
|
||||
NCAgeLeaverCallback,
|
||||
waitOp
|
||||
);
|
||||
@ -419,12 +423,14 @@ void plNetLinkingMgr::IDoLink(plLinkToAgeMsg* msg)
|
||||
}
|
||||
// Queue leave op
|
||||
NlmLeaveAgeOp * leaveAgeOp = new NlmLeaveAgeOp;
|
||||
leaveAgeOp->muteSfx = !msg->PlayLinkOutSfx();
|
||||
QueueOp(leaveAgeOp);
|
||||
}
|
||||
|
||||
// Queue join op
|
||||
NlmJoinAgeOp * joinAgeOp = new NlmJoinAgeOp;
|
||||
joinAgeOp->age.ageInstId = *GetAgeLink()->GetAgeInfo()->GetAgeInstanceGuid();
|
||||
joinAgeOp->muteSfx = !msg->PlayLinkInSfx();
|
||||
StrCopy(
|
||||
joinAgeOp->age.ageDatasetName,
|
||||
GetAgeLink()->GetAgeInfo()->GetAgeFilename(),
|
||||
@ -541,12 +547,12 @@ bool plNetLinkingMgr::IProcessVaultNotifyMsg(plVaultNotifyMsg* msg)
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
bool plNetLinkingMgr::IDispatchMsg( plMessage * msg, uint32_t playerID )
|
||||
bool plNetLinkingMgr::IDispatchMsg( plMessage* msg, uint32_t playerID )
|
||||
{
|
||||
plNetClientMgr * nc = plNetClientMgr::GetInstance();
|
||||
|
||||
msg->AddReceiver( plNetClientMgr::GetInstance()->GetKey() );
|
||||
|
||||
plLinkToAgeMsg* linkToAge = plLinkToAgeMsg::ConvertNoRef(msg);
|
||||
if ( playerID!=kInvalidPlayerID && playerID!=nc->GetPlayerID() )
|
||||
{
|
||||
msg->SetBCastFlag( plMessage::kNetAllowInterAge );
|
||||
@ -557,17 +563,17 @@ bool plNetLinkingMgr::IDispatchMsg( plMessage * msg, uint32_t playerID )
|
||||
msg->AddNetReceiver( playerID );
|
||||
}
|
||||
|
||||
return ( msg->Send()!=0 );
|
||||
return msg->Send();
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
void plNetLinkingMgr::LinkToAge( plAgeLinkStruct * link, uint32_t playerID )
|
||||
void plNetLinkingMgr::LinkToAge( plAgeLinkStruct * link, bool linkInSfx, bool linkOutSfx, uint32_t playerID )
|
||||
{
|
||||
LinkToAge(link, nil, playerID);
|
||||
LinkToAge(link, nil, linkInSfx, linkOutSfx, playerID);
|
||||
}
|
||||
|
||||
void plNetLinkingMgr::LinkToAge( plAgeLinkStruct * link, const char* linkAnim, uint32_t playerID )
|
||||
void plNetLinkingMgr::LinkToAge( plAgeLinkStruct * link, const char* linkAnim, bool linkInSfx, bool linkOutSfx, uint32_t playerID )
|
||||
{
|
||||
if ( !fLinkingEnabled )
|
||||
{
|
||||
@ -578,6 +584,7 @@ void plNetLinkingMgr::LinkToAge( plAgeLinkStruct * link, const char* linkAnim, u
|
||||
plLinkToAgeMsg* pMsg = new plLinkToAgeMsg( link );
|
||||
if (linkAnim)
|
||||
pMsg->SetLinkInAnimName(linkAnim);
|
||||
pMsg->PlayLinkSfx(linkInSfx, linkOutSfx);
|
||||
IDispatchMsg( pMsg, playerID );
|
||||
}
|
||||
|
||||
|
@ -110,7 +110,7 @@ class plNetLinkingMgr
|
||||
void IDoLink(plLinkToAgeMsg* link);
|
||||
bool IProcessVaultNotifyMsg(plVaultNotifyMsg* msg);
|
||||
|
||||
bool IDispatchMsg( plMessage * msg, uint32_t playerID );
|
||||
bool IDispatchMsg( plMessage* msg, uint32_t playerID );
|
||||
|
||||
|
||||
public:
|
||||
@ -125,26 +125,35 @@ public:
|
||||
bool Linking () const { return !fLinkedIn && !fLinkingEnabled; }
|
||||
|
||||
// Link to an age.
|
||||
void LinkToAge( plAgeLinkStruct * link, uint32_t playerID=kInvalidPlayerID );
|
||||
void LinkToAge( plAgeLinkStruct * link, const char* linkAnim, uint32_t playerID=kInvalidPlayerID );
|
||||
void LinkToAge( plAgeLinkStruct * link, bool linkInSfx=true, bool linkOutSfx=true, uint32_t playerID=kInvalidPlayerID );
|
||||
void LinkToAge( plAgeLinkStruct * link, const char* linkAnim, bool linkInSfx=true, bool linkOutSfx=true, uint32_t playerID=kInvalidPlayerID );
|
||||
|
||||
// Link to my last age.
|
||||
void LinkToPrevAge( uint32_t playerID=kInvalidPlayerID );
|
||||
void LinkToPrevAge( uint32_t playerID=kInvalidPlayerID );
|
||||
|
||||
// Link to my Personal Age
|
||||
void LinkToMyPersonalAge( uint32_t playerID=kInvalidPlayerID );
|
||||
|
||||
// Link to my Neighborhood Age
|
||||
void LinkToMyNeighborhoodAge( uint32_t playerID=kInvalidPlayerID );
|
||||
|
||||
// Link a player here.
|
||||
void LinkPlayerHere( uint32_t playerID );
|
||||
|
||||
// Link player to specified age
|
||||
void LinkPlayerToAge( plAgeLinkStruct * link, uint32_t playerID );
|
||||
|
||||
// Link player back to his last age
|
||||
void LinkPlayerToPrevAge( uint32_t playerID );
|
||||
|
||||
// Link us to a players age.
|
||||
void LinkToPlayersAge( uint32_t playerID );
|
||||
|
||||
// Offer a link to player.
|
||||
void OfferLinkToPlayer( const plAgeLinkStruct * info, uint32_t playerID, plKey replyKey );
|
||||
void OfferLinkToPlayer( const plAgeInfoStruct * info, uint32_t playerID );
|
||||
void OfferLinkToPlayer( const plAgeLinkStruct * info, uint32_t playerID );
|
||||
|
||||
// Leave the current age
|
||||
void LeaveAge (bool quitting);
|
||||
|
||||
|
Reference in New Issue
Block a user