aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJacek Antonelli2010-06-22 20:09:45 -0500
committerJacek Antonelli2010-06-22 20:54:46 -0500
commit932dd4d222b514f81ad5ad3a06b599cce04f7e23 (patch)
tree302628a0a951a25ea22ace711cbc6de0198384a8
parentFixed radar spam regression (diff)
downloadmeta-impy-932dd4d222b514f81ad5ad3a06b599cce04f7e23.zip
meta-impy-932dd4d222b514f81ad5ad3a06b599cce04f7e23.tar.gz
meta-impy-932dd4d222b514f81ad5ad3a06b599cce04f7e23.tar.bz2
meta-impy-932dd4d222b514f81ad5ad3a06b599cce04f7e23.tar.xz
Partially reverted cad41f1 and 65a5856 to help login issues.
This reverts (except for some parts): - Commit cad41f1ae08927737eca4cd9df25381d78e82304. "Fixed #338: addRegion/removeRegion can trigger a viewer quit" - Commit 65a5856f9567074886f28df59a26433c4b447576. "wip forcing region disconnects to log you out"
-rw-r--r--linden/indra/newview/llstartup.cpp11
-rw-r--r--linden/indra/newview/llviewermessage.cpp20
-rw-r--r--linden/indra/newview/llworld.cpp31
3 files changed, 11 insertions, 51 deletions
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp
index 735397e..a391669 100644
--- a/linden/indra/newview/llstartup.cpp
+++ b/linden/indra/newview/llstartup.cpp
@@ -1809,13 +1809,8 @@ bool idle_startup()
1809 regionp->setSeedCapability(first_sim_seed_cap); 1809 regionp->setSeedCapability(first_sim_seed_cap);
1810 LL_DEBUGS("AppInit") << "Waiting for seed grant ...." << LL_ENDL; 1810 LL_DEBUGS("AppInit") << "Waiting for seed grant ...." << LL_ENDL;
1811 1811
1812 // Set agent's initial region to be the one we just created 1812 // Set agent's initial region to be the one we just created.
1813 // Only if we don't already have one set. We want to catch this here 1813 gAgent.setRegion(regionp);
1814 // because setRegion calls removeRegion, which kills the viewer -- MC
1815 if (!gAgent.getRegion() && gAgent.getRegion() != regionp)
1816 {
1817 gAgent.setRegion(regionp);
1818 }
1819 1814
1820 // Set agent's initial position, which will be read by LLVOAvatar when the avatar 1815 // Set agent's initial position, which will be read by LLVOAvatar when the avatar
1821 // object is created. I think this must be done after setting the region. JC 1816 // object is created. I think this must be done after setting the region. JC
@@ -3629,7 +3624,6 @@ std::string LLStartUp::startupStateToString(EStartupState state)
3629#define RTNENUM(E) case E: return #E 3624#define RTNENUM(E) case E: return #E
3630 switch(state){ 3625 switch(state){
3631 RTNENUM( STATE_FIRST ); 3626 RTNENUM( STATE_FIRST );
3632 RTNENUM( STATE_BROWSER_INIT );
3633 RTNENUM( STATE_LOGIN_SHOW ); 3627 RTNENUM( STATE_LOGIN_SHOW );
3634 RTNENUM( STATE_LOGIN_WAIT ); 3628 RTNENUM( STATE_LOGIN_WAIT );
3635 RTNENUM( STATE_LOGIN_CLEANUP ); 3629 RTNENUM( STATE_LOGIN_CLEANUP );
@@ -3640,7 +3634,6 @@ std::string LLStartUp::startupStateToString(EStartupState state)
3640 RTNENUM( STATE_LOGIN_DOWNLOADING ); 3634 RTNENUM( STATE_LOGIN_DOWNLOADING );
3641 RTNENUM( STATE_LOGIN_PROCESS_RESPONSE ); 3635 RTNENUM( STATE_LOGIN_PROCESS_RESPONSE );
3642 RTNENUM( STATE_WORLD_INIT ); 3636 RTNENUM( STATE_WORLD_INIT );
3643 RTNENUM( STATE_MULTIMEDIA_INIT );
3644 RTNENUM( STATE_SEED_GRANTED_WAIT ); 3637 RTNENUM( STATE_SEED_GRANTED_WAIT );
3645 RTNENUM( STATE_SEED_CAP_GRANTED ); 3638 RTNENUM( STATE_SEED_CAP_GRANTED );
3646 RTNENUM( STATE_WORLD_WAIT ); 3639 RTNENUM( STATE_WORLD_WAIT );
diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp
index b1c316d..ecbe0ef 100644
--- a/linden/indra/newview/llviewermessage.cpp
+++ b/linden/indra/newview/llviewermessage.cpp
@@ -3331,18 +3331,14 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)
3331 3331
3332 // set our upstream host the new simulator and shuffle things as 3332 // set our upstream host the new simulator and shuffle things as
3333 // appropriate. 3333 // appropriate.
3334 // Sometimes OpenSim will get here but still fail on a teleport -- MC 3334 LLVector3 shift_vector = regionp->getPosRegionFromGlobal(
3335 if (regionp != gAgent.getRegion()) 3335 gAgent.getRegion()->getOriginGlobal());
3336 { 3336 gAgent.setRegion(regionp);
3337 LLVector3 shift_vector = regionp->getPosRegionFromGlobal( 3337 gObjectList.shiftObjects(shift_vector);
3338 gAgent.getRegion()->getOriginGlobal()); 3338 gAssetStorage->setUpstream(msg->getSender());
3339 gAgent.setRegion(regionp); 3339 gCacheName->setUpstream(msg->getSender());
3340 gObjectList.shiftObjects(shift_vector); 3340 gViewerThrottle.sendToSim();
3341 gAssetStorage->setUpstream(msg->getSender()); 3341 gViewerWindow->sendShapeToSim();
3342 gCacheName->setUpstream(msg->getSender());
3343 gViewerThrottle.sendToSim();
3344 gViewerWindow->sendShapeToSim();
3345 }
3346 3342
3347 bool is_teleport = gAgent.getTeleportState() == LLAgent::TELEPORT_MOVING; 3343 bool is_teleport = gAgent.getTeleportState() == LLAgent::TELEPORT_MOVING;
3348 3344
diff --git a/linden/indra/newview/llworld.cpp b/linden/indra/newview/llworld.cpp
index 50d4250..90ab49b 100644
--- a/linden/indra/newview/llworld.cpp
+++ b/linden/indra/newview/llworld.cpp
@@ -43,9 +43,7 @@
43#include "lldrawpool.h" 43#include "lldrawpool.h"
44#include "llglheaders.h" 44#include "llglheaders.h"
45#include "llhttpnode.h" 45#include "llhttpnode.h"
46#include "llpanellogin.h"
47#include "llregionhandle.h" 46#include "llregionhandle.h"
48#include "llstartup.h"
49#include "llsurface.h" 47#include "llsurface.h"
50#include "llviewercamera.h" 48#include "llviewercamera.h"
51#include "llviewerimage.h" 49#include "llviewerimage.h"
@@ -86,7 +84,6 @@ const F32 LLWorld::mWidthInMeters = mWidth * mScale;
86// 84//
87// Functions 85// Functions
88// 86//
89bool connecting_alert_done(const LLSD& notification, const LLSD& response);
90 87
91// allocate the stack 88// allocate the stack
92LLWorld::LLWorld() : 89LLWorld::LLWorld() :
@@ -266,19 +263,7 @@ void LLWorld::removeRegion(const LLHost &host)
266 llwarns << "gFrameTimeSeconds " << gFrameTimeSeconds << llendl; 263 llwarns << "gFrameTimeSeconds " << gFrameTimeSeconds << llendl;
267 264
268 llwarns << "Disabling region " << regionp->getName() << " that agent is in!" << llendl; 265 llwarns << "Disabling region " << regionp->getName() << " that agent is in!" << llendl;
269 266 LLAppViewer::instance()->forceDisconnect("You have been disconnected from the region you were in.");
270 // Don't ever forceQuit on the user during startup if we can avoid it -- MC
271 //LLAppViewer::instance()->forceDisconnect("You have been disconnected from the region you were in.");
272 // We stop a login, even if it's a successful one, as the expected behavior is to not receive
273 // any more messages from a sim when we receive the DisableSimulator message, despite the viewer
274 // continuing to connect anyway -- MC
275 if (LLStartUp::getStartupState() < STATE_STARTED)
276 {
277 //LLStartUp::setLoginFailed(true);
278 LLStartUp::setStartupState(STATE_SEED_GRANTED_WAIT);
279 }
280 LLNotifications::instance().add("DisconnectedFromRegion", LLSD(), LLSD(), connecting_alert_done);
281
282 return; 267 return;
283 } 268 }
284 269
@@ -1258,20 +1243,6 @@ void LLWorld::getAvatars(std::vector<LLUUID>* avatar_ids, std::vector<LLVector3d
1258 } 1243 }
1259} 1244}
1260 1245
1261bool connecting_alert_done(const LLSD& notification, const LLSD& response)
1262{
1263 if (LLStartUp::getStartupState() < STATE_STARTED)
1264 {
1265 LLStartUp::resetLogin();
1266 LLPanelLogin::giveFocus();
1267 }
1268 else
1269 {
1270 // TODO: make this translatable
1271 LLAppViewer::instance()->forceDisconnect("You have been disconnected from the region you were in. Unable to continue.");
1272 }
1273 return false;
1274}
1275 1246
1276LLHTTPRegistration<LLEstablishAgentCommunication> 1247LLHTTPRegistration<LLEstablishAgentCommunication>
1277 gHTTPRegistrationEstablishAgentCommunication( 1248 gHTTPRegistrationEstablishAgentCommunication(