From 06186e6c7e960f7b3391a275bc70105570e006a3 Mon Sep 17 00:00:00 2001 From: Inusaito Sayori Date: Wed, 6 Nov 2013 15:53:15 -0500 Subject: [PATCH] [VarRegions] Pseudosupport for region_size_y. --- indra/newview/llstartup.cpp | 12 ++++++++---- indra/newview/llviewermessage.cpp | 8 ++++++-- indra/newview/llworld.cpp | 10 +++++++--- indra/newview/llworld.h | 3 ++- 4 files changed, 23 insertions(+), 10 deletions(-) diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 75978675c..0cf590cd8 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -311,7 +311,7 @@ void reset_login(); void apply_udp_blacklist(const std::string& csv); // Aurora Sim //bool process_login_success_response(std::string& password); -bool process_login_success_response(std::string& password, U32& first_sim_size_x); +bool process_login_success_response(std::string& password, U32& first_sim_size_x, U32& first_sim_size_y); // Aurora Sim void transition_back_to_login_panel(const std::string& emsg); @@ -484,6 +484,7 @@ bool idle_startup() // Aurora Sim static U32 first_sim_size_x = 256; + static U32 first_sim_size_y = 256; // Aurora Sim static LLVector3 initial_sun_direction(1.f, 0.f, 0.f); static LLVector3 agent_start_position_region(10.f, 10.f, 10.f); // default for when no space server @@ -1550,7 +1551,7 @@ bool idle_startup() if (successful_login) { // unpack login data needed by the application - if (process_login_success_response(password, first_sim_size_x)) + if (process_login_success_response(password, first_sim_size_x, first_sim_size_y)) { std::string name = firstname; if (!gHippoGridManager->getCurrentGrid()->isSecondLife() || @@ -1670,7 +1671,7 @@ bool idle_startup() display_startup(); // Aurora Sim - LLWorld::getInstance()->setRegionWidth(first_sim_size_x); + LLWorld::getInstance()->setRegionSize(first_sim_size_x, first_sim_size_y); // Aurora Sim LLWorld::getInstance()->addRegion(gFirstSimHandle, gFirstSim); display_startup(); @@ -3856,7 +3857,7 @@ void apply_udp_blacklist(const std::string& csv) } -bool process_login_success_response(std::string& password, U32& first_sim_size_x) +bool process_login_success_response(std::string& password, U32& first_sim_size_x, U32& first_sim_size_y) { LLSD response = LLUserAuth::getInstance()->getResponse(); @@ -4000,6 +4001,9 @@ bool process_login_success_response(std::string& password, U32& first_sim_size_x // Aurora Sim text = response["region_size_x"].asString(); if (!text.empty()) LLViewerParcelMgr::getInstance()->init(first_sim_size_x = atoi(text.c_str())); + // Patrick Sapinski commented here on 2/10/2011 that y is currently unused and major refactor is required - Liru (11/6/2013) + text = response["region_size_y"].asString(); + if (!text.empty()) first_sim_size_y = atoi(text.c_str()); // Aurora Sim const std::string look_at_str = response["look_at"]; diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp index fb0264b56..b1523682d 100644 --- a/indra/newview/llviewermessage.cpp +++ b/indra/newview/llviewermessage.cpp @@ -4458,7 +4458,9 @@ void process_teleport_finish(LLMessageSystem* msg, void**) // Aurora Sim U32 region_size_x = 256; msg->getU32Fast(_PREHASH_Info, _PREHASH_RegionSizeX, region_size_x); - LLWorld::getInstance()->setRegionWidth(region_size_x); + U32 region_size_y = 256; + msg->getU32Fast(_PREHASH_Info, _PREHASH_RegionSizeY, region_size_y); + LLWorld::getInstance()->setRegionSize(region_size_x, region_size_y); // Aurora Sim LLViewerRegion* regionp = LLWorld::getInstance()->addRegion(region_handle, sim_host); @@ -4788,7 +4790,9 @@ void process_crossed_region(LLMessageSystem* msg, void**) // Aurora Sim U32 region_size_x = 256; msg->getU32(_PREHASH_RegionData, _PREHASH_RegionSizeX, region_size_x); - LLWorld::getInstance()->setRegionWidth(region_size_x); + U32 region_size_y = 256; + msg->getU32(_PREHASH_RegionData, _PREHASH_RegionSizeY, region_size_y); + LLWorld::getInstance()->setRegionSize(region_size_x, region_size_y); // Aurora Sim LLViewerRegion* regionp = LLWorld::getInstance()->addRegion(region_handle, sim_host); regionp->setSeedCapability(seedCap); diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp index 84ac30bf8..af93ec553 100644 --- a/indra/newview/llworld.cpp +++ b/indra/newview/llworld.cpp @@ -84,6 +84,7 @@ extern LLColor4U MAX_WATER_COLOR; // Aurora Sim //const U32 LLWorld::mWidth = 256; U32 LLWorld::mWidth = 256; +U32 LLWorld::mLength = 256; // Aurora Sim // meters/point, therefore mWidth * mScale = meters per edge @@ -152,9 +153,10 @@ void LLWorld::destroyClass() } } -void LLWorld::setRegionWidth(const U32 width) +void LLWorld::setRegionSize(const U32& width, const U32& length) { mWidth = width ? width : 256; // Width of 0 is really 256 + mLength = length ? length : 256; // Length of 0 is really 256 mWidthInMeters = mWidth * mScale; } @@ -247,7 +249,7 @@ LLViewerRegion* LLWorld::addRegion(const U64 ®ion_handle, const LLHost &host) adj_x = region_x + width * gDirAxes[dir][0]; adj_y = region_y + width * gDirAxes[dir][1]; - if (mWidth == 256) + if (mWidth == 256 && mLength == 256) { to_region_handle(adj_x, adj_y, &adj_handle); neighborp = getRegionFromHandle(adj_handle); @@ -1361,7 +1363,9 @@ void process_enable_simulator(LLMessageSystem *msg, void **user_data) // Aurora Sim U32 region_size_x = 256; msg->getU32Fast(_PREHASH_SimulatorInfo, _PREHASH_RegionSizeX, region_size_x); - LLWorld::getInstance()->setRegionWidth(region_size_x); + U32 region_size_y = 256; + msg->getU32Fast(_PREHASH_SimulatorInfo, _PREHASH_RegionSizeY, region_size_y); + LLWorld::getInstance()->setRegionSize(region_size_x, region_size_y); // Aurora Sim LLWorld::getInstance()->addRegion(handle, sim); diff --git a/indra/newview/llworld.h b/indra/newview/llworld.h index 291159540..b363d0d67 100644 --- a/indra/newview/llworld.h +++ b/indra/newview/llworld.h @@ -115,7 +115,7 @@ public: LLVector3 resolveLandNormalGlobal(const LLVector3d &position); // absolute frame // update region size - void setRegionWidth(const U32 width = 0); + void setRegionSize(const U32& width = 0, const U32& length = 0); U32 getRegionWidthInPoints() const { return mWidth; } F32 getRegionScale() const { return mScale; } @@ -188,6 +188,7 @@ private: // Aurora Sim //static const U32 mWidth; static U32 mWidth; + static U32 mLength; // Aurora Sim // meters/point, therefore mWidth * mScale = meters per edge