Commit Graph

3150 Commits (7d699514a5559e2a7670a2259067cd8dd29c011c)

Author SHA1 Message Date
Justin Clark-Casey (justincc) e0c6bfa81e If a user moves back in sight of a child region before the agent has been closed on teleport, don't unnecessarily resend all avatar and object data about that region. 2014-08-15 21:47:34 +01:00
Justin Clark-Casey (justincc) 91e1aaa5d4 On teleport to a region that already has a child agent established (e.g. a neighbour) don't resend all the initial avatar and object data again.
This is unnecessary since it has been received (and data continues to be received) in the existing child connection.
2014-08-15 21:47:34 +01:00
Justin Clark-Casey (justincc) 4c781db572 Make RootTerseUpdatePeriod and ChildTerseUpdatePeriod configurable in [InterestManagement] in OpenSim.ini for experimental purposes.
If n > 1 for RootTerseUpdatePeriod only every n terse update is actually sent to observers on same region, unless velocity is effectively zero (to stop av drift).
If n > 1 for ChildTerseUpdatePeriod only every n terse update is sent to observers in other regions, unless velocity is effectively zero.
Defaults are same as before (all packets are sent).
Tradeoff is reduction of UDP traffic vs fidelity of observed av mvmt.
Increasing n > 1 leads to jerky observed mvmt immediateley for root, though not on child, where experimentally have gone to n = 4 before jerkiness is noticeable.
2014-08-14 01:39:26 +01:00
Justin Clark-Casey (justincc) 6ea82ad48a Make some existing reprioritization values changeable outside the scene for test purposes, and use more consise property syntax.
No functional change.
2014-08-14 01:16:58 +01:00
Justin Clark-Casey (justincc) bc0895c758 On entity transfer of scene presence, replace polling sleep in SP.WaitForUpdateAgent() with a triggered event instead.
Rapid polls are more expensive than triggered events (several polls vs one trigger) and may be problematic on heavily loaded simulators where many threads are vying for processor time.
A triggered event is also slightly quicker as there is no maximum 200ms wait between polls.
2014-08-13 23:45:51 +01:00
Justin Clark-Casey (justincc) 0d2a25b477 Remove redundant origin region lock in SP.CompleteMovement()
This is already going to be correctly set by WaitForUpdateAgent() earlier on in that method, which is always called where a callback to the originating region is required.
2014-08-13 23:11:32 +01:00
Melanie Thielker 37921c66e5 Avination's Dynamic Floater Module. This works with Singularity viewer only.
It's WIP in that a dialog builder is on it's way. For now, the XML needs to
be handmade.
2014-08-12 01:04:29 +02:00
Justin Clark-Casey (justincc) 30f1b424bb Change RootRotationUpdateTolerance from 0.01 to 0.1 in code as well. 2014-08-08 23:47:53 +01:00
Oren Hurvitz e36e416637 Fixed crash when using Allowed/Denied Viewers, and the viewer's name is shorter than one of the test strings
This fixes http://opensimulator.org/mantis/view.php?id=7294
2014-08-06 19:02:15 +03:00
Justin Clark-Casey (justincc) 78ccadb27e Add RootPositionUpdateTolerance, RootRotationUpdateTolerance, and RootVelocityUpdateTolerance parameters to [InterestManagement] in OpenSimDefaults.ini
These govern when AgentUpdates are sent to observers on position, rotation and velocity changes to an avatar (including the avatar themselves).
Higher values reduce AgentUpdate traffic but at a certain level will degrade smoothness of avatar and perceived avatar movement.
2014-08-06 00:53:14 +01:00
Justin Clark-Casey (justincc) 961cb9cc77 refactor: Rename recent new Client*UpdateTolerance to Root*UpdateTolerance for better accuracy and consistency with other similar parameters 2014-08-06 00:35:26 +01:00
Justin Clark-Casey (justincc) fcf5fb5dfd Implement "scene debug set root-upd-per" for dropping 1 in N root agent updates except to originator
For experimental purposes.
Also corrects a previous bug where each terse update sent was counted rather than each set of terse updates to agents.
2014-07-29 18:54:16 +01:00
Justin Clark-Casey (justincc) 0f87a99e54 Add debug mechanism for only sending 1 in N AgentUpdate packets to child agents.
Allows experiments in manually reducing updates under heavy load.
Activated by "debug scene set client-upd-per" console command.
In a simple test, can send as few as every 4th update before observed movement starts becoming disturbingly rubber-banded.
2014-07-29 18:09:11 +01:00
Justin Clark-Casey (justincc) f54fccba1e Make it possible to change avatar position update, rotation and velocity tolerances on the fly.
This is done via "debug scene set client-pos-upd, client-rot-upd, client-vel-upd".
For testing purposes.
2014-07-29 03:13:10 +01:00
Justin Clark-Casey (justincc) 3654ae8d8c Allow the "debug scene set physics false|true" command to work when bulletsim physics is running in a separate thread.
This will also allow the "disable physics" setting in the region debug viewer dialog to work in this circumstance.
2014-07-29 01:21:15 +01:00
Justin Clark-Casey (justincc) f6f7585ec5 Add a "debug scene set child-repri <double>" command that allows child reprioritization distance to be changed on the fly.
This governs when child agent position changes are sent to neighbouring regions.
Corresponding config parameter is ChildReprioritizationDistance in [InterestManagement] in OpenSim.ini
For test purposes.
2014-07-29 00:13:29 +01:00
Justin Clark-Casey (justincc) 3a87cce2e0 Fix recent regression in 3c6becd5 where login or hg login to variable sized regions failed with outdated simulator message.
I forgot that a null 'their version' would not be passed over the wire and ends up as an empty string instead (like older simulators).
So instead pass through the correct simulator protcol version instead (SIMULATOR/0.3) when querying from login or hg login.
Also removes a debug console write for agent limit accidentally left in for the same commit.
Relates to mantis 7276
2014-07-22 18:04:28 +01:00
Justin Clark-Casey (justincc) 3c6becd524 On login and first HG entrance to a foreign grid, perform query access checks before proceeding. 2014-07-21 23:53:33 +01:00
Oren Hurvitz 899bcb7acd Fixed: after a Hypergrid teleport, attachments often either disappear, or appear both on the avatar AND as in-world objects.
Another manifestation of this bug is that after a Hypergrid teleport, when you click on one of the avatar's attachments the object doesn't show its name. This means that the viewer knows the attachment is there, but the simulator does not.

The problem was caused by treating Hypergrid teleports as if they're Logins (because the teleport flag ViaLogin is enabled).

This may fix: http://opensimulator.org/mantis/view.php?id=7238
This may fix: http://opensimulator.org/mantis/view.php?id=7220
2014-07-21 09:29:51 +01:00
Oren Hurvitz 4c5d7d4683 Fixed problems if an avatar tries to cross regions when the previous cross hasn't completed yet
This caused the client to stop responding, and even the simulators to have problems. The solution is to disallow crossing before the previous cross has completed.
2014-07-21 09:23:13 +01:00
Oren Hurvitz f94b3bbe0f Minor: changed "existant" to "existent" 2014-07-21 09:15:05 +01:00
Oren Hurvitz 99ac770abb Close streams immediately when we finish using them 2014-07-21 08:30:03 +01:00
Dev Random 4e92b55231 Call RemoveScriptInstance when removing from inventory 2014-07-14 18:06:24 +01:00
Diva Canto 82b875317b On logout, delay the removal of AgentCircuitData until the very end, because that data structure contains important information about the agent that may be needed by modules. 2014-07-04 14:36:11 -07:00
Diva Canto 60ad72357e This fixes the bug related to rebooting neighboring varregions while avatars are logged in; the avies would not see the region anymore until they relogged. Same problem as before: inconsistent calculation of scope. 2014-07-04 11:45:30 -07:00
Diva Canto d99c8e68a7 It turns out that child agent management has had a bug for a while: there was an inconsistency in the scope between opening and closing child agents in neighboring regions. For opening (in EnableChildAgents), the region's DrawDistance was being used; for closing (in IsOUtsideView) , the viewer's (SP) DrawDistance was being used. This fixes this inconsistency, therefore eliminating bugs observed in TPs between, at least, neighboring varregions. 2014-07-04 10:13:53 -07:00
Justin Clark-Casey (justincc) 4ba396b81c Temporarily disable new regression test TestLifecycle() until I have a chance to fix it
This was working for me locally because it was still picking up all my *.ini config files, which jenkins won't have in its test env
2014-07-03 00:30:42 +01:00
Justin Clark-Casey (justincc) c3923a1aa6 Re-enabled TestLifecycle regression test logging so I can get some idea of why it's failing on jenkins but not locally 2014-07-03 00:01:47 +01:00
Justin Clark-Casey (justincc) 889194db63 Actually call Close() for shared region modules when the simulator is being shutdown.
Adds regression test for this case.
2014-07-02 23:49:25 +01:00
Justin Clark-Casey (justincc) fe6dab7f13 minor: Change default max phys prim size in code to match OpenSimDefaults.ini 2014-06-28 00:20:09 +01:00
Justin Clark-Casey (justincc) cd031d129a minor: change allow script crossings default in code to true in order to match OpenSimDefaults.ini 2014-06-28 00:18:00 +01:00
Justin Clark-Casey (justincc) 5450b1b024 Change assembly versions to 0.8.1 2014-06-17 18:37:15 +01:00
Diva Canto 807fb8339b Revert "Let HG users be gods too, if they have local permission to be so."
HG gods are not safe at this point. It's better to disallow this until
they can be made safe.

This reverts commit e86c765be3.
2014-06-09 22:00:10 -07:00
Diva Canto e86c765be3 Let HG users be gods too, if they have local permission to be so. 2014-06-09 21:46:24 -07:00
Robert Adams 0aa0dad478 Send multiple terrain patches per terrain update packet if terrain
draw distance optimization is enabled. Makes terrain editting a lot
snappier.
2014-06-01 19:23:49 -07:00
Robert Adams 0300ec45eb Modifications to debugging printouts. No functional changes. 2014-05-31 12:19:51 -07:00
Robert Adams 22dade6463 varregion: More tweeking to only sending patches within avatar draw distance.
Still has problems with child avatars.
2014-05-31 12:19:50 -07:00
Robert Adams db5a42ffac varregion: send terrain patches from where the avatar outward if the parameter
[Terrain]SendTerrainUpdatesByViewDistance=true.
This tracks which patches have been sent to each client and outputs the
patches as the avatar moves.
2014-05-31 12:19:49 -07:00
Diva Canto d6f9f690e5 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2014-05-31 08:22:56 -07:00
Justin Clark-Casey (justincc) bf5320eb26 minor: rename velocidyDiff -> velocityDiff 2014-05-30 22:21:13 +01:00
Justin Clark-Casey (justincc) 3c992b028c minor: Add some commented out logging to ScenePresence.SendTerseUpdateToAllClients() which is extremely helpful when investigating presence update triggers. 2014-05-30 22:18:07 +01:00
Diva Canto 0eede1467f Moved these two estate-related interfaces to the projects where they belong. 2014-05-30 13:11:46 -07:00
Diva Canto e19c830a6c Fixes a bug where map search results pertaining to varregions would only send the SW-most corner of the varregions; the other areas, when clicked, would result a blue circle, meaning that the viewer didn't know about those areas. This is still not quite right, as all the areas appear to be in the same coordinates, but it's good enough for now. 2014-05-27 10:13:24 -07:00
Oren Hurvitz 33cc847c4a When saving an OAR in "Publish" mode, also discard Group information 2014-05-26 15:33:13 +01:00
Oren Hurvitz 5aeaa7fcdd Prevent login to a region if the Telehub or Landing Point are in a banned parcel 2014-05-25 15:37:28 +01:00
Justin Clark-Casey (justincc) 5015b0b485 If one is sitting on a child with an unset camera-eye and so using one set in a root prim, the focus should remain on the root prim.
Matches behaviour just tested on the Linden grid.
2014-05-23 01:55:05 +01:00
Justin Clark-Casey (justincc) c78a8271c4 Add any camera at compensation for sat upon child prims to any existing camera-at value, rather than replace. 2014-05-23 01:38:05 +01:00
Justin Clark-Casey (justincc) fbed245596 Compensate camera-at and camera-eye for child prim rotation when sitting on child prim with camera-eye set 2014-05-23 01:34:02 +01:00
Justin Clark-Casey (justincc) 3fbaef9275 If the root prim has a camera-at or camera-eye setting and a sat upon child prim does not, use the root prim offsets.
This matches behaviour just tested on the Linden Lab grid.
2014-05-22 23:52:28 +01:00
Justin Clark-Casey (justincc) 16bf38e1ab Fix issue where llSetCameraAtOffset() and llSetCameraEyeOffset() in non-root prims moved camera/focus to wrong position.
For non-root prim, eye offsets now need to be made relative to root prim if either camera-at or camera-eye are set.
Probably a regression since November 2013 when all sits were made relative to root prim to match viewer expections (and fix other bugs).
Addresses http://opensimulator.org/mantis/view.php?id=7176
2014-05-22 23:39:22 +01:00
Justin Clark-Casey (justincc) 1b156b7fe8 Add regression test for in-range chat between neighbouring regions from east to west. 2014-05-22 19:18:24 +01:00
Diva Canto b7c7293c7a Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2014-05-22 10:16:19 -07:00
Diva Canto f7b2aa0f49 Fixed a problem with detaching attachments in situations where the user's asset server is not the same as the simulator's asset server. Unfortunately this still continues to be wasteful -- new assets are created every time an attachment is detached, but the process of storing the new asset goes through the InventoryAccess module, which does all sorts of checks regarding the users' inventory. 2014-05-22 10:16:01 -07:00
Justin Clark-Casey (justincc) 5b433e101d minor: Comment out currently unused log setup in TerrainCompressor 2014-05-20 23:59:08 +01:00
Justin Clark-Casey (justincc) d93275745b minor: Remove some unused fields in ScenePresence 2014-05-20 23:57:03 +01:00
Justin Clark-Casey (justincc) 32070fa5f4 minor: remove compiler warning in SceneObjectPartInventory 2014-05-20 23:54:49 +01:00
Justin Clark-Casey (justincc) 9479f64778 Fix issue where avatar and script chat could sometimes be heard from anywhere in neighbouring regions.
This was due to a silent uint overflow in ScenePresence.UpdateChildAgent() corrupting child agent positions
when the child agent was in a region with a greater x or y map co-ord than the root agent region
Probably introduced in beeec1c.
This still will not function properly with very high region map co-ords (in the millions) but other parts of the code don't handle this properly anyway.
Looks to address http://opensimulator.org/mantis/view.php?id=7163
2014-05-20 23:52:07 +01:00
Oren Hurvitz 47b84875fd Tell QueryAccess explicitly whether the user is coming in via Teleport or Cross, because the permission checks are different.
Previously we used a heuristic of checking if the entry position is 0 to differentiate between Teleport and Cross, but that doesn't work anymore since we've started providing the precise entry position for cross, too. That's required in order to ensure that the user is allowed to enter the parcel that he's walking into.
2014-05-19 11:19:11 +01:00
Oren Hurvitz dd30a29ba0 Return more specific error messages if an attempt to enter a region fails due to permissions (in QueryAccess and IsAuthorizedForRegion) 2014-05-19 11:11:30 +01:00
Diva Canto ab1472e5b7 Don't trigger ItemUploaded when no item has been uploaded. 2014-05-18 23:01:55 -07:00
Diva Canto 922f76a3a7 Don't fetch assets from the server when doing simple inventory operations like copy-paste items in inventory. 2014-05-18 07:49:01 -07:00
Justin Clark-Casey (justincc) 7c12dfe185 On ScenePresence.MakeChildAgent(), reset the m_originRegionID as this is currently being used as a flag to orchestrate destination simulator threads on teleport.
If not reset, it's possible that teleports back and forth between simulators may not restart scripts in attachments.
2014-05-14 22:08:06 +01:00
Justin Clark-Casey (justincc) 2f7539a25b Remove a race where the client's SP.CompleteMovement() thread could attempt to restart attachment scripts before the source simulator's SP.UpdateAgent() thread had added them.
This commit changes the order of code so that attachments are re-added before the CompleteMovement() thread is released.
Relates to http://opensimulator.org/mantis/view.php?id=7148
2014-05-14 21:49:29 +01:00
Justin Clark-Casey (justincc) 484aa72ff8 minor: Add some method doc to IMessageTransferModule 2014-05-12 23:49:37 +01:00
Justin Clark-Casey (justincc) 87e2668529 For XmlRpcGroups (Flotsam) module, when MessageOnlineUsersOnly = true, handle notices to offline users directly as known undeliverable messages rather than discarding or attempting delivery.
Offline notices can still be controlled with the [Messaging] ForwardOfflineGroupMessages setting.
Looks to address more of http://opensimulator.org/mantis/view.php?id=7037
Only for Flotsam now for testing, but if approach works should be possible with core offline notices as well.
2014-05-12 23:38:48 +01:00
Diva Canto f4cba27105 Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2014-05-07 17:00:12 -07:00
Dev Random 78015bbbdc Console commands for Estate Mgmt 2014-05-06 18:55:42 +01:00
Vegaslon 0faba7dc33 Fix avatars going to corner of region when they are sitting on a child prim and the prim is deleted. 2014-05-06 17:41:13 +01:00
Oren Hurvitz 614b9e14c4 When moving an item from a prim to a user's inventory, don't delete the item from the prim until it was successfully copied to the user 2014-05-06 07:28:46 +01:00
Oren Hurvitz eb79c882ea Show more meaningful error messages when failed to move an item from a prim to a user's inventory.
Also, actually show the error to the user in more cases. (Previously, sometimes the operation failed without telling the user anything.)
2014-05-06 07:28:45 +01:00
Oren Hurvitz 1e5cff32fc Show more meaningful error messages when failed to give an item to another user 2014-05-06 07:28:44 +01:00
Diva Canto 13b2ac1425 Makes it possible to support grids in which all the simulators share all central services of a Robust server EXCEPT assets. In other words, grids where the simulators' assets are kept in one DB and the users' inventory assets
are kept on another. When users rez items from inventory or take objects from world, an HG-like asset copy takes place between the 2 servers, the world asset server and the user's asset server. This makes the simulators independent of the central asset server.

Note that this an advanced configuration and requires some security strengthening coming up.
2014-05-04 20:54:42 -07:00
Justin Clark-Casey (justincc) 5fc61942e0 minor: convert back some tabs to spaces that got into ScenePresence via recent patch bc969a6b 2014-04-29 20:15:29 +01:00
Justin Clark-Casey (justincc) d4eee213a9 Restore terrain height and flying adjustments that were eliminated from non-megaregion paths in ScenePresence.MoveToTarget() by recent patch bc969a6b 2014-04-29 20:05:08 +01:00
Justin Clark-Casey (justincc) 2e216aa056 Add missing [Test] decorator to actually get the basic scene creation test from 2227f51b to run 2014-04-25 23:35:20 +01:00
Justin Clark-Casey (justincc) 9664273df6 Add basic regression test for creating a var region 2014-04-25 23:34:30 +01:00
Justin Clark-Casey (justincc) 2227f51b29 Add basic sanity regression test for creating a scene. 2014-04-25 23:16:07 +01:00
Justin Clark-Casey (justincc) 904baa6da6 Fix issue where terrain height values > 327 caused chaotic spiked terrain.
Per http://wiki.secondlife.com/wiki/Tips_for_Creating_Heightfields_and_Details_on_Terrain_RAW_Files#Notes_for_Creating_Height_Field_Maps_for_Second_Life
terrain heights up to 508 are possible on the LL grid (and were available on previous releases of OpenSimulator).
The obvious way to allow both this and equivalent -z values, is to rewiden the internal terrain height storage from short to int.
The memory tradeoff is most noticeable on the maximum 8192x8192 var region (equiv to 1024 normal regions), where it adds 128mb to resident use (128k on a normal region)
This is still better than the double used in previous releases.
This does not affect physics or data storage since they already use float and double respectively.
This may not be the final solution if we actually want to sacrifice -z, >327 or something else.
Relates to http://opensimulator.org/mantis/view.php?id=7076
2014-04-25 22:56:25 +01:00
Diva Canto 1d9a9e6004 Fixes a long-standing bug related to god-mode change ownership of objects permissive, where the permissions of the children prims' inventory items were not changed. As a consequence, we couldn't control some of the objects imported via HG and OARs even in god mode. 2014-04-24 14:11:42 -07:00
Justin Clark-Casey (justincc) 7a5699224e Fix regression test break on previous commit 328bc3b 2014-04-23 19:46:58 +01:00
Justin Clark-Casey (justincc) 328bc3b76e Adjust avatar sit positioning on a target to pretty much exactly match that of the LL grid.
This uses an offset of 0.05 on the up vector of the sit orientation, after extensive analysis on
http://opensimulator.org/mantis/view.php?id=7096 and https://wiki.secondlife.com/wiki/Talk:LlSitTarget
This supersedes the previous adjustment in 5b73b9c4 which had been wrongly applied.
The maximum change is about 0.1 with a maximum height avatar.
This patch is all Aleric's work - I am applying manually in order to add these additional notes
2014-04-23 19:19:09 +01:00
Oren Hurvitz 998d7009a6 Eliminated many warnings 2014-04-23 16:37:36 +03:00
Oren Hurvitz a893fd90cd Fixed KeyframeMotion to work with very slow movement.
Previously, if the movement speed was below 0.05/sec then it didn't work correctly.

Fixes http://opensimulator.org/mantis/view.php?id=7117
2014-04-22 10:19:11 +01:00
lillith_xue bc969a6b46 Possible solution for #7120 and #7051
Signed-off-by: Robert Adams <misterblue@misterblue.com>
2014-04-21 05:58:29 -07:00
Oren Hurvitz a780e01a54 Fixed: the parcel flag "Allow Scripts from Group" should only check if the parcel has a Group set; it doesn't have to be *deeded* to the group
Also some cleanup of the use of Group ID's (with no change to functionality).
2014-04-20 06:23:35 +01:00
Robert Adams c8914d22eb BulletSim: reduce the terrain collison margin to be the same as other
objects in the world.

This was originally changed in an attempt to make vehicles work better
but the effect was not that large and it causes avatars to float
above the terrain.
2014-04-12 17:37:57 -07:00
Oren Hurvitz c725ad1577 Fixed: when teleporting between grids, the avatar name wasn't always updated.
When an avatar is in their home grid, their name appears as "First Last". In other grids the name appears as "First.Last @grid.example.com". However, viewers have a bug and they don't always show the new name. We use a trick (changing the Group Title briefly) in order to make the viewers show the new name. This is only done after a Hypergrid teleport.
2014-04-09 15:00:54 +01:00
Oren Hurvitz 06e0528d0b In teleports, pass the source region to the destination (similar to an HTTP referrer) 2014-04-09 09:22:20 +01:00
Oren Hurvitz 85d51e57a9 When sending QueryAccess to a region, also send the user's Home URI 2014-04-07 07:32:36 +01:00
Oren Hurvitz 55cc8044cb Refactored: use Scene.GetAgentHomeURI() to get the Home URI of a user 2014-04-07 07:26:44 +01:00
Justin Clark-Casey (justincc) cacbb5c165 Don't re-retrieve sit part in SP.HandleAgentSit() when we already have it (this time with the right code change) 2014-04-05 02:16:14 +01:00
tglion 8b8e1b88ec fixed object-collision issue after uncheck phantom-flag
Signed-off-by: Michael Cerquoni <nebadon2025@gmail.com>
2014-04-04 12:29:44 -04:00
Justin Clark-Casey (justincc) aec723b955 Fix sp.AbsolutePosition when agent is sitting on a child prim, which in turns fixes llDetectedPos(), llGetLinkPrimitiveParams() and similar functions.
Add regression test for this case.
In relation to http://opensimulator.org/mantis/view.php?id=7043
2014-04-03 23:22:57 +01:00
Robert Adams 9406db3047 Fix problem with floating avatar by passing avatar size information
to the physics engine.

This operation was accidentally removed while in the middle of improving
the computation of the avatar height. This is a temp fix until the real
solution is added.
2014-04-02 21:52:24 -07:00
Justin Clark-Casey (justincc) e756457703 Remove redundant part.SitTargetAvatar setting from SP.MakeRootAgent as part.AddSittingAvatar already does this. 2014-04-03 01:21:50 +01:00
Justin Clark-Casey (justincc) 6ac9c9c972 refactor: Use m_sittingAvatars to maintain the list of sitting avatars instead of two independent structures that do exactly the same thing
m_sittingAvatars code also already properly handles locking to avoid races.
2014-04-03 01:14:39 +01:00
Justin Clark-Casey (justincc) 5cb4044539 Don't clear avsToCross in SOG.AbsolutePosition.set(), this is unnecessary since the structure is local and never reused after the clear 2014-04-03 00:26:55 +01:00
Justin Clark-Casey (justincc) e6d0dcd4e8 Fix bug where crossing to a neighbouring region and back again would trigger an exception, and a second recross would stop the user moving until relog
Also fixes an issue where sitting avatar counts became inaccurate after any cross.
Part of the problem was due to cloning code using MemberwiseClone() but not resetting certain collection structures.
Adds regression test for this case.
In relation to http://opensimulator.org/mantis/view.php?id=7050
2014-04-03 00:19:53 +01:00
Oren Hurvitz 0301c81b01 Made GetScenePresence() case-insensitive when searching by user name. This makes it easier to use console commands such as "show appearance". 2014-04-02 13:08:31 +01:00
Justin Clark-Casey (justincc) 7bafee28fa Removing warning from SceneObjectLinkingTests.TestLinkDelink2SceneObjects() by actually checking whether delinked grp3 is not null 2014-04-02 01:26:58 +01:00
Dev Random 43eab5e163 Console command to rename Estate 2014-04-02 01:17:41 +01:00
Justin Clark-Casey (justincc) 7cb1690589 minor: disable logging in recently added scene object crossing tests and remove some unnecessary test config 2014-04-02 01:01:53 +01:00
Justin Clark-Casey (justincc) 0af8886400 Fix problem where moving an object to another region on the same simulator was failing, with the object returning to its original position.
Root cause was that PrimLimitsModule was not properly handling the case where the parcel it was asked to check was outside the current region's bounds.
If this is the case, we can abort the check since the receiving region will perform it.
Added a regression test for this case.
2014-04-02 00:58:33 +01:00
Oren Hurvitz 1fe504fee5 Better skipping of "SculptData" when parsing XML 2014-03-28 12:52:06 +03:00
Oren Hurvitz f360b687d6 Removed "SculptData" from the serialized XML format of prims 2014-03-28 07:51:21 +01:00
Justin Clark-Casey (justincc) 99308d64c6 minor: Add some doc to Scene.Backup() detailing its direct invocation if the indepedent backup thread is not running (e.g. in a regression test) 2014-03-26 00:43:17 +00:00
Oren Hurvitz e131e73652 Run slow operations in a separate thread, instead of using FireAndForget (which has a 1-minute timeout)
Resolves http://opensimulator.org/mantis/view.php?id=6945
2014-03-25 08:01:55 +01:00
Oren Hurvitz 1769e93c42 Fixed parsing of coalesced objects if the XML starts with an XML Declaration ("<xml ...>")
Resolves http://opensimulator.org/mantis/view.php?id=6944
2014-03-24 18:18:29 +01:00
Oren Hurvitz 5fd9411143 Refactored Load IAR: created a generic mechanism to modify the SOG's as they are being loaded
Resolves http://opensimulator.org/mantis/view.php?id=6942
2014-03-24 18:17:35 +01:00
Oren Hurvitz 89945f8829 Refactored: ExternalRepresentationUtils should be the only place where the "CreatorData" field is calculated, to ensure uniformity
Resolves http://opensimulator.org/mantis/view.php?id=6933
2014-03-24 18:00:59 +01:00
Oren Hurvitz 7496d0b0f7 Fixed unit tests for delinking objects 2014-03-24 15:05:39 +02:00
Oren Hurvitz 921f0052f4 Get the full viewer name even if it's (incorrectly) sent in the 'Channel' field
Recent versions of Firestorm and Singularity have started sending the viewer name in the 'Channel' field, leaving only their version number in the 'Viewer' field. So we need to search both of these fields for the viewer name.

This resolves http://opensimulator.org/mantis/view.php?id=6952
2014-03-24 12:26:52 +01:00
Oren Hurvitz 773ffcafc3 Removed "hacktastic" code that is no longer needed.
We no longer set the object's AbsolutePosition in this place, so the IsAttachment hack doesn't do anything anymore.

This resolves http://opensimulator.org/mantis/view.php?id=6936
2014-03-24 12:05:25 +01:00
Oren Hurvitz 62b3bdf0fc When linking two groups, and then deleting the combined group: delete *all* of the combined group's prims, including those that came from the second subgroup
This fixes http://opensimulator.org/mantis/view.php?id=6175
2014-03-24 11:44:48 +01:00
Justin Clark-Casey (justincc) ccf18fd2ef Rename SOG.InSceneBackup to CanBeBackedUp to reflect its actual functionality.
It does not indicate that a SOG has been set to be backed up or not.  It indicates that a SOG can be backed up in principle.
In practice, this was added by lbsa71 in 2007 and is set to always true, albeit as a virtual property.
2014-03-22 01:36:21 +00:00
Justin Clark-Casey (justincc) a5800f479e If an object has it's temporary flag unset after being set, put it back in the persistence list.
Effectively uses the patch in http://opensimulator.org/mantis/view.php?id=7060
But also adds a regression test and exposes the necessary property to allow this to work.
2014-03-22 00:29:13 +00:00
Jak Daniels 61353dde80 Allow Region specific static maptiles to be loaded from file. 2014-03-18 22:18:50 -07:00
Justin Clark-Casey (justincc) beba20846f When sending group notices through group messaging, allow the agent ID to use for fetching group data to be different from im.fromAgentID
This is because xmlrpcgroups currently always checks visibility for the requesting agent ID (unlike Groups v2, which can accept UUID.Zero)
But group notice IMs have a from agent which is the group rather than the sending agent.
Further addresses http://opensimulator.org/mantis/view.php?id=7037
2014-03-12 19:31:04 +00:00
Robert Adams 742f505440 Change terrain update sending to be triggered by frame tick rather
than everytime terrain is changed.

The TerrainModule now hooks the frame event and, if terrain has changed,
sends terrain updates to the clients. This polling pattern replaces
the previous push on change pattern and will make it easier to do per
client throttling and per scene presence terrain update ordering.
2014-03-10 22:05:18 -07:00
Oren Hurvitz 0237d9113d Don't start KeyframeMotion timers until all the regions are ready. This prevents problems in megaregions (prims that think they've crossed over to other regions). 2014-03-11 00:55:58 +00:00
Justin Clark-Casey (justincc) 77e7bbcbf7 Send group notices through the same messaging module mechanism used to send group chat to avoid timeout issues when sending messages to large groups.
Only implementing for XmlRpcGroups initially to test.
May require MessageOnlineUsersOnly = true in [Groups] to be effective.
In relation to http://opensimulator.org/mantis/view.php?id=7037
2014-03-11 00:11:18 +00:00
Justin Clark-Casey (justincc) 39ed382ddf Don't request a terse update after local teleport - this will be done by the main frame loop anyway and has the potential to race that thread. 2014-03-05 00:59:27 +00:00
Justin Clark-Casey (justincc) c9415fd763 If an avatar is sitting, send out position updates to clients for any change, not just those outside the usual tolerances.
This is to allow small adjustments of less than 0.05m in functions such as llSetPrimitiveLinkParams() to work
This is another fix for http://opensimulator.org/mantis/view.php?id=7044
Extends regression test for this case.
2014-03-05 00:38:38 +00:00
Robert Adams 0f03c64a0c Make Scene.DefaultDrawDistance to be the max of the region size and the
user setting. Seems this parameter has many side effects.
2014-02-23 21:56:37 -08:00
Robert Adams 0b213af675 Fix problem of hurricane speed winds. Thanks Vegaslon. 2014-02-22 15:04:28 -08:00
dahlia a2866b85f3 add newRegion parameter to CrossAgentToNewRegion event and trigger the event after crossing thread is invoked 2014-02-20 00:18:28 -08:00
dahlia 269a6410a0 add EventManager event OnCrossAgentToNewRegion 2014-02-19 17:52:38 -08:00
Robert Adams c26f01ff8c varregion: make scene default draw distance to be the maximum size of the
region. This is a temp fix for the use of draw distance to compute child
regions. Eventually must use the draw distance from the viewer for the
computation.
2014-02-19 09:51:49 -08:00
Robert Adams fc9930e420 Repair check for if in region position (I mean || is kinda like &&). 2014-02-15 18:49:40 -08:00
Robert Adams 7fc289c039 Properly restore position on crossing failure for mega-regions.
Fix odd "cannot cross into banned parcel" viewer error message when crossing
into non-existant region. Proper permission failure messages are now returned.
2014-02-15 17:02:53 -08:00
Robert Adams 877bdcdce1 Rewrite of mega-region code to use new form of border checking.
This commit eliminates all of the 'border' class and list code and replaces
it with testing if in the current region.
Impacts: can make a mega-region out of varregions of the same size; and
mega-region combinations must be rectangular (not square but rectangular)
2014-02-15 16:01:43 -08:00
Justin Clark-Casey (justincc) 4fed301e65 Don't request group information in SP.MakeRootAgent() if the presence belongs to no group (UUID.Zero)
This was trigger the XmlRpcGroups errors described in http://opensimulator.org/mantis/view.php?id=6986
Introduced in commit 5b73b9c4 (Wed Dec 11 01:39:56 2013)
2014-02-14 23:43:07 +00:00
Robert Adams c0cc5e0fa4 varregion: Send large region patches for wind and clouds. 2014-02-11 21:07:55 -08:00
Robert Adams 1b41ec0a85 Fix raw32 terrain heightmap reader so it estimates terrain size from
the size of the input stream. This is required since the raw heightmap
format (.r32) does not contain any size information.
The estimation relies on terrain being square.
2014-02-03 21:23:32 -08:00
Robert Adams 9c97fb8e12 Implement terrain merging in TerrainChannel.
Modify archiver to use terrain merging when loading oars.
This makes displacement AND rotation properly work on terrain when loading oars.
Especially useful when loading legacy region oars into large varregions.
2014-02-02 11:17:49 -08:00
dahlia a8e64cd59a Overload INPCModule.CreateNPC() to allow agentID to be specified. Note: this is intended for use in region modules and is not exposed to scripts. 2014-02-01 04:09:20 -08:00
Oren Hurvitz abb193ec94 In UuidGatherer, gather materials referenced in the prim's TextureEntry
Signed-off-by: dahlia <dahlia@nomail>
2014-02-01 02:56:15 -08:00
Robert Adams 8eec717f5f Merge branch 'master' into varregion 2014-01-28 08:50:28 -08:00
Justin Clark-Casey (justincc) a4017ee1eb Reinsert attachments list taking code in SP.MakeRootAgent()
Locking attachments then launching script instances on a separate thread will not work, attachments will simply be unlocked and vulnerable to race conditions.
2014-01-27 23:47:43 +00:00
Justin Clark-Casey (justincc) 1b86239f79 refactor: Remove identical part.ParentGroup.AddAvatar(UUID); calls which occur no matter which branch of the conditional is executed 2014-01-27 23:17:09 +00:00
Robert Adams 4c362a83f9 Merge branch 'master' into varregion 2014-01-21 11:31:51 -08:00
dahlia 7bd42fc42f Add back code to UuidGatherer to retrieve UUIDs for materials stored in DynAttrs. This is unfortunately still necessary until a better solution for handling existing legacy materials can be implemented 2014-01-20 15:01:18 -08:00
Justin Clark-Casey (justincc) 5fc871027e Merge branch 'master' of ssh://opensimulator.org/var/git/opensim 2014-01-20 19:38:47 +00:00
Justin Clark-Casey (justincc) 2cf7478b9a Merge branch 'justincc-master' 2014-01-20 19:34:55 +00:00
Mic Bowman 2e78e89c36 Clean up orphaned json stores. This can happen when an object is
removed, when a script is removed, or when a script is reset. Also
added a stats command to track the number of json stores used by
a region. Will probably add some more commands later.
2014-01-20 11:33:49 -08:00
Justin Clark-Casey (justincc) 8e72b53edc Stop exceptions being generated on agent connection if a telehub object has been deleted or has no spawn points. 2014-01-20 19:16:19 +00:00
Oren Hurvitz 3018b2c5d7 Materials module: a) Store materials as assets; b) Finalized it (removed the "Demo" label; removed most of the logging); c) Enabled by default
Changed UuidGatherer to use 'sbyte' to identify assets instead of 'AssetType'. This lets UuidGatherer handle Materials, which are defined in a different enum from 'AssetType'.
2014-01-20 00:38:42 -08:00
Robert Adams 6fbfb47b92 varregion: add --noterrain and --noparcel to 'load oar'.
--noterrain suppresses the loading of the terrain from the oar.
--noparcels suppresses the loading of parcel information from the oar.
2014-01-19 11:03:08 -08:00
Robert Adams dd6db72939 varregion: add --displacement parameter to 'load oar'.
Adds displacment to all objects and terrain loaded from the oar.
As an example, if you have a 512x512 region and an old 256x256 oar, doing
  load oar --displacement "<128,128,0>" oarFile.oar
will load the object (and terrain) into the middle of the 512x512 region.
If displacement is not specified, 'load oar' works like it always has.
If you have a 5
2014-01-19 10:09:43 -08:00
Robert Adams f127e4b4ee Merge branch 'master' into varregion 2014-01-19 07:38:53 -08:00