diff options
-rw-r--r-- | ChangeLog.txt | 11 | ||||
-rw-r--r-- | linden/indra/newview/app_settings/settings.xml | 2 | ||||
-rw-r--r-- | linden/indra/newview/llfloatertools.cpp | 2 | ||||
-rw-r--r-- | linden/indra/newview/lltoolbrush.cpp | 45 | ||||
-rw-r--r-- | linden/indra/newview/lltoolbrush.h | 5 | ||||
-rw-r--r-- | linden/scripts/messages/message_template.msg | 10 |
6 files changed, 57 insertions, 18 deletions
diff --git a/ChangeLog.txt b/ChangeLog.txt index 2fcd080..179f1b0 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt | |||
@@ -1,3 +1,14 @@ | |||
1 | 2009-09-07 McCabe Maxsted <hakushakukun@gmail.com> | ||
2 | |||
3 | * Fixed tool brush size. | ||
4 | |||
5 | modified: linden/indra/newview/app_settings/settings.xml | ||
6 | modified: linden/indra/newview/llfloatertools.cpp | ||
7 | modified: linden/indra/newview/lltoolbrush.cpp | ||
8 | modified: linden/indra/newview/lltoolbrush.h | ||
9 | modified: linden/scripts/messages/message_template.msg | ||
10 | |||
11 | |||
1 | 2009-09-06 McCabe Maxsted <hakushakukun@gmail.com> | 12 | 2009-09-06 McCabe Maxsted <hakushakukun@gmail.com> |
2 | 13 | ||
3 | * Applied sit anywhere feature from Emerald viewer. | 14 | * Applied sit anywhere feature from Emerald viewer. |
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index a080be2..a6a18e6 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml | |||
@@ -5791,7 +5791,7 @@ | |||
5791 | <key>Persist</key> | 5791 | <key>Persist</key> |
5792 | <integer>1</integer> | 5792 | <integer>1</integer> |
5793 | <key>Type</key> | 5793 | <key>Type</key> |
5794 | <string>S32</string> | 5794 | <string>F32</string> |
5795 | <key>Value</key> | 5795 | <key>Value</key> |
5796 | <integer>0</integer> | 5796 | <integer>0</integer> |
5797 | </map> | 5797 | </map> |
diff --git a/linden/indra/newview/llfloatertools.cpp b/linden/indra/newview/llfloatertools.cpp index f3ffbe4..b63138f 100644 --- a/linden/indra/newview/llfloatertools.cpp +++ b/linden/indra/newview/llfloatertools.cpp | |||
@@ -322,7 +322,7 @@ BOOL LLFloaterTools::postBuild() | |||
322 | 322 | ||
323 | mSliderDozerSize = getChild<LLSlider>("slider brush size"); | 323 | mSliderDozerSize = getChild<LLSlider>("slider brush size"); |
324 | childSetCommitCallback("slider brush size", commit_slider_dozer_size, (void*)0); | 324 | childSetCommitCallback("slider brush size", commit_slider_dozer_size, (void*)0); |
325 | childSetValue( "slider brush size", gSavedSettings.getS32("LandBrushSize")); | 325 | childSetValue( "slider brush size", gSavedSettings.getF32("LandBrushSize")); |
326 | 326 | ||
327 | 327 | ||
328 | mSliderDozerForce = getChild<LLSlider>("slider force"); | 328 | mSliderDozerForce = getChild<LLSlider>("slider force"); |
diff --git a/linden/indra/newview/lltoolbrush.cpp b/linden/indra/newview/lltoolbrush.cpp index 46b36d9..d23e29d 100644 --- a/linden/indra/newview/lltoolbrush.cpp +++ b/linden/indra/newview/lltoolbrush.cpp | |||
@@ -96,7 +96,24 @@ LLToolBrushLand::LLToolBrushLand() | |||
96 | mGotHover(FALSE), | 96 | mGotHover(FALSE), |
97 | mBrushSelected(FALSE) | 97 | mBrushSelected(FALSE) |
98 | { | 98 | { |
99 | mBrushIndex = gSavedSettings.getS32("LandBrushSize"); | 99 | mBrushSize = gSavedSettings.getF32("LandBrushSize"); |
100 | } | ||
101 | |||
102 | |||
103 | U8 LLToolBrushLand::getBrushIndex() | ||
104 | { | ||
105 | // find the best index for desired size | ||
106 | // (compatibility with old sims, brush_index is now depricated - DEV-8252) | ||
107 | U8 index = 0; | ||
108 | for (U8 i = 0; i < LAND_BRUSH_SIZE_COUNT; i++) | ||
109 | { | ||
110 | if (mBrushSize > LAND_BRUSH_SIZE[i]) | ||
111 | { | ||
112 | index = i; | ||
113 | } | ||
114 | } | ||
115 | |||
116 | return index; | ||
100 | } | 117 | } |
101 | 118 | ||
102 | void LLToolBrushLand::modifyLandAtPointGlobal(const LLVector3d &pos_global, | 119 | void LLToolBrushLand::modifyLandAtPointGlobal(const LLVector3d &pos_global, |
@@ -157,7 +174,6 @@ void LLToolBrushLand::modifyLandAtPointGlobal(const LLVector3d &pos_global, | |||
157 | F32 seconds = (1.0f / gFPSClamped) * gSavedSettings.getF32("LandBrushForce"); | 174 | F32 seconds = (1.0f / gFPSClamped) * gSavedSettings.getF32("LandBrushForce"); |
158 | F32 x_pos = (F32)pos_region.mV[VX]; | 175 | F32 x_pos = (F32)pos_region.mV[VX]; |
159 | F32 y_pos = (F32)pos_region.mV[VY]; | 176 | F32 y_pos = (F32)pos_region.mV[VY]; |
160 | U8 brush_size = (U8)mBrushIndex; | ||
161 | LLMessageSystem* msg = gMessageSystem; | 177 | LLMessageSystem* msg = gMessageSystem; |
162 | msg->newMessageFast(_PREHASH_ModifyLand); | 178 | msg->newMessageFast(_PREHASH_ModifyLand); |
163 | msg->nextBlockFast(_PREHASH_AgentData); | 179 | msg->nextBlockFast(_PREHASH_AgentData); |
@@ -165,7 +181,7 @@ void LLToolBrushLand::modifyLandAtPointGlobal(const LLVector3d &pos_global, | |||
165 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | 181 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); |
166 | msg->nextBlockFast(_PREHASH_ModifyBlock); | 182 | msg->nextBlockFast(_PREHASH_ModifyBlock); |
167 | msg->addU8Fast(_PREHASH_Action, (U8)action); | 183 | msg->addU8Fast(_PREHASH_Action, (U8)action); |
168 | msg->addU8Fast(_PREHASH_BrushSize, brush_size); | 184 | msg->addU8Fast(_PREHASH_BrushSize, getBrushIndex()); |
169 | msg->addF32Fast(_PREHASH_Seconds, seconds); | 185 | msg->addF32Fast(_PREHASH_Seconds, seconds); |
170 | msg->addF32Fast(_PREHASH_Height, mStartingZ); | 186 | msg->addF32Fast(_PREHASH_Height, mStartingZ); |
171 | msg->nextBlockFast(_PREHASH_ParcelData); | 187 | msg->nextBlockFast(_PREHASH_ParcelData); |
@@ -174,6 +190,8 @@ void LLToolBrushLand::modifyLandAtPointGlobal(const LLVector3d &pos_global, | |||
174 | msg->addF32Fast(_PREHASH_South, y_pos ); | 190 | msg->addF32Fast(_PREHASH_South, y_pos ); |
175 | msg->addF32Fast(_PREHASH_East, x_pos ); | 191 | msg->addF32Fast(_PREHASH_East, x_pos ); |
176 | msg->addF32Fast(_PREHASH_North, y_pos ); | 192 | msg->addF32Fast(_PREHASH_North, y_pos ); |
193 | msg->nextBlock("ModifyBlockExtended"); | ||
194 | msg->addF32("BrushSize", mBrushSize); | ||
177 | msg->sendMessage(regionp->getHost()); | 195 | msg->sendMessage(regionp->getHost()); |
178 | } | 196 | } |
179 | } | 197 | } |
@@ -294,7 +312,6 @@ void LLToolBrushLand::modifyLandInSelectionGlobal() | |||
294 | regionp->forceUpdate(); | 312 | regionp->forceUpdate(); |
295 | 313 | ||
296 | // tell the simulator what we've done | 314 | // tell the simulator what we've done |
297 | U8 brush_size = (U8)mBrushIndex; | ||
298 | LLMessageSystem* msg = gMessageSystem; | 315 | LLMessageSystem* msg = gMessageSystem; |
299 | msg->newMessageFast(_PREHASH_ModifyLand); | 316 | msg->newMessageFast(_PREHASH_ModifyLand); |
300 | msg->nextBlockFast(_PREHASH_AgentData); | 317 | msg->nextBlockFast(_PREHASH_AgentData); |
@@ -302,7 +319,7 @@ void LLToolBrushLand::modifyLandInSelectionGlobal() | |||
302 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | 319 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); |
303 | msg->nextBlockFast(_PREHASH_ModifyBlock); | 320 | msg->nextBlockFast(_PREHASH_ModifyBlock); |
304 | msg->addU8Fast(_PREHASH_Action, (U8)action); | 321 | msg->addU8Fast(_PREHASH_Action, (U8)action); |
305 | msg->addU8Fast(_PREHASH_BrushSize, brush_size); | 322 | msg->addU8Fast(_PREHASH_BrushSize, getBrushIndex()); |
306 | msg->addF32Fast(_PREHASH_Seconds, seconds); | 323 | msg->addF32Fast(_PREHASH_Seconds, seconds); |
307 | msg->addF32Fast(_PREHASH_Height, mStartingZ); | 324 | msg->addF32Fast(_PREHASH_Height, mStartingZ); |
308 | 325 | ||
@@ -327,6 +344,9 @@ void LLToolBrushLand::modifyLandInSelectionGlobal() | |||
327 | msg->addF32Fast(_PREHASH_East, max_region.mV[VX] ); | 344 | msg->addF32Fast(_PREHASH_East, max_region.mV[VX] ); |
328 | msg->addF32Fast(_PREHASH_North, max_region.mV[VY] ); | 345 | msg->addF32Fast(_PREHASH_North, max_region.mV[VY] ); |
329 | } | 346 | } |
347 | |||
348 | msg->nextBlock("ModifyBlockExtended"); | ||
349 | msg->addF32("BrushSize", mBrushSize); | ||
330 | 350 | ||
331 | msg->sendMessage(regionp->getHost()); | 351 | msg->sendMessage(regionp->getHost()); |
332 | } | 352 | } |
@@ -447,7 +467,8 @@ void LLToolBrushLand::render() | |||
447 | spot.mdV[VX] = floor( spot.mdV[VX] + 0.5 ); | 467 | spot.mdV[VX] = floor( spot.mdV[VX] + 0.5 ); |
448 | spot.mdV[VY] = floor( spot.mdV[VY] + 0.5 ); | 468 | spot.mdV[VY] = floor( spot.mdV[VY] + 0.5 ); |
449 | 469 | ||
450 | mBrushIndex = gSavedSettings.getS32("LandBrushSize"); | 470 | mBrushSize = gSavedSettings.getF32("LandBrushSize"); |
471 | |||
451 | region_list_t regions; | 472 | region_list_t regions; |
452 | determineAffectedRegions(regions, spot); | 473 | determineAffectedRegions(regions, spot); |
453 | 474 | ||
@@ -499,7 +520,7 @@ void LLToolBrushLand::renderOverlay(LLSurface& land, const LLVector3& pos_region | |||
499 | 520 | ||
500 | S32 i = (S32) pos_region.mV[VX]; | 521 | S32 i = (S32) pos_region.mV[VX]; |
501 | S32 j = (S32) pos_region.mV[VY]; | 522 | S32 j = (S32) pos_region.mV[VY]; |
502 | S32 half_edge = llfloor(LAND_BRUSH_SIZE[mBrushIndex]); | 523 | S32 half_edge = llfloor(mBrushSize); |
503 | S32 radioAction = gSavedSettings.getS32("RadioLandBrushAction"); | 524 | S32 radioAction = gSavedSettings.getS32("RadioLandBrushAction"); |
504 | F32 force = gSavedSettings.getF32("LandBrushForce"); // .1 to 100? | 525 | F32 force = gSavedSettings.getF32("LandBrushForce"); // .1 to 100? |
505 | 526 | ||
@@ -556,27 +577,27 @@ void LLToolBrushLand::determineAffectedRegions(region_list_t& regions, | |||
556 | const LLVector3d& spot ) const | 577 | const LLVector3d& spot ) const |
557 | { | 578 | { |
558 | LLVector3d corner(spot); | 579 | LLVector3d corner(spot); |
559 | corner.mdV[VX] -= (LAND_BRUSH_SIZE[mBrushIndex] / 2); | 580 | corner.mdV[VX] -= (mBrushSize / 2); |
560 | corner.mdV[VY] -= (LAND_BRUSH_SIZE[mBrushIndex] / 2); | 581 | corner.mdV[VY] -= (mBrushSize / 2); |
561 | LLViewerRegion* region = NULL; | 582 | LLViewerRegion* region = NULL; |
562 | region = LLWorld::getInstance()->getRegionFromPosGlobal(corner); | 583 | region = LLWorld::getInstance()->getRegionFromPosGlobal(corner); |
563 | if(region && regions.find(region) == regions.end()) | 584 | if(region && regions.find(region) == regions.end()) |
564 | { | 585 | { |
565 | regions.insert(region); | 586 | regions.insert(region); |
566 | } | 587 | } |
567 | corner.mdV[VY] += LAND_BRUSH_SIZE[mBrushIndex]; | 588 | corner.mdV[VY] += mBrushSize; |
568 | region = LLWorld::getInstance()->getRegionFromPosGlobal(corner); | 589 | region = LLWorld::getInstance()->getRegionFromPosGlobal(corner); |
569 | if(region && regions.find(region) == regions.end()) | 590 | if(region && regions.find(region) == regions.end()) |
570 | { | 591 | { |
571 | regions.insert(region); | 592 | regions.insert(region); |
572 | } | 593 | } |
573 | corner.mdV[VX] += LAND_BRUSH_SIZE[mBrushIndex]; | 594 | corner.mdV[VX] += mBrushSize; |
574 | region = LLWorld::getInstance()->getRegionFromPosGlobal(corner); | 595 | region = LLWorld::getInstance()->getRegionFromPosGlobal(corner); |
575 | if(region && regions.find(region) == regions.end()) | 596 | if(region && regions.find(region) == regions.end()) |
576 | { | 597 | { |
577 | regions.insert(region); | 598 | regions.insert(region); |
578 | } | 599 | } |
579 | corner.mdV[VY] -= LAND_BRUSH_SIZE[mBrushIndex]; | 600 | corner.mdV[VY] -= mBrushSize; |
580 | region = LLWorld::getInstance()->getRegionFromPosGlobal(corner); | 601 | region = LLWorld::getInstance()->getRegionFromPosGlobal(corner); |
581 | if(region && regions.find(region) == regions.end()) | 602 | if(region && regions.find(region) == regions.end()) |
582 | { | 603 | { |
diff --git a/linden/indra/newview/lltoolbrush.h b/linden/indra/newview/lltoolbrush.h index 8df4b67..f25d6b9 100644 --- a/linden/indra/newview/lltoolbrush.h +++ b/linden/indra/newview/lltoolbrush.h | |||
@@ -95,11 +95,14 @@ protected: | |||
95 | F32 mStartingZ; | 95 | F32 mStartingZ; |
96 | S32 mMouseX; | 96 | S32 mMouseX; |
97 | S32 mMouseY; | 97 | S32 mMouseY; |
98 | S32 mBrushIndex; | 98 | F32 mBrushSize; |
99 | BOOL mGotHover; | 99 | BOOL mGotHover; |
100 | BOOL mBrushSelected; | 100 | BOOL mBrushSelected; |
101 | // Order doesn't matter and we do check for existance of regions, so use a set | 101 | // Order doesn't matter and we do check for existance of regions, so use a set |
102 | region_list_t mLastAffectedRegions; | 102 | region_list_t mLastAffectedRegions; |
103 | |||
104 | private: | ||
105 | U8 getBrushIndex(); | ||
103 | }; | 106 | }; |
104 | 107 | ||
105 | 108 | ||
diff --git a/linden/scripts/messages/message_template.msg b/linden/scripts/messages/message_template.msg index 6d90622..4a16cf8 100644 --- a/linden/scripts/messages/message_template.msg +++ b/linden/scripts/messages/message_template.msg | |||
@@ -594,7 +594,7 @@ version 2.0 | |||
594 | // global x,y,z. Otherwise, use center of the AABB. | 594 | // global x,y,z. Otherwise, use center of the AABB. |
595 | // reliable | 595 | // reliable |
596 | { | 596 | { |
597 | PlacesReply Low 30 Trusted Zerocoded | 597 | PlacesReply Low 30 Trusted Zerocoded UDPDeprecated |
598 | { | 598 | { |
599 | AgentData Single | 599 | AgentData Single |
600 | { AgentID LLUUID } | 600 | { AgentID LLUUID } |
@@ -1036,7 +1036,7 @@ version 2.0 | |||
1036 | // dataserver -> simulator -> viewer | 1036 | // dataserver -> simulator -> viewer |
1037 | // reliable | 1037 | // reliable |
1038 | { | 1038 | { |
1039 | DirLandReply Low 50 Trusted Zerocoded | 1039 | DirLandReply Low 50 Trusted Zerocoded UDPDeprecated |
1040 | { | 1040 | { |
1041 | AgentData Single | 1041 | AgentData Single |
1042 | { AgentID LLUUID } | 1042 | { AgentID LLUUID } |
@@ -2589,6 +2589,10 @@ version 2.0 | |||
2589 | { East F32 } | 2589 | { East F32 } |
2590 | { North F32 } | 2590 | { North F32 } |
2591 | } | 2591 | } |
2592 | { | ||
2593 | ModifyBlockExtended Variable | ||
2594 | { BrushSize F32 } | ||
2595 | } | ||
2592 | } | 2596 | } |
2593 | 2597 | ||
2594 | 2598 | ||
@@ -8717,7 +8721,7 @@ version 2.0 | |||
8717 | 8721 | ||
8718 | // spaceserver -> simulator | 8722 | // spaceserver -> simulator |
8719 | { | 8723 | { |
8720 | RpcScriptRequestInboundForward Low 416 Trusted Unencoded | 8724 | RpcScriptRequestInboundForward Low 416 Trusted Unencoded UDPDeprecated |
8721 | { | 8725 | { |
8722 | DataBlock Single | 8726 | DataBlock Single |
8723 | { RPCServerIP IPADDR } | 8727 | { RPCServerIP IPADDR } |