Justin Clark-Casey (justincc)
36f7d36fa1
instead of setting avatar rotation twice in SP.HandleAgentUpdate(), eliminate the second setting in AddNewMovement()
2011-08-11 02:54:15 +01:00
Justin Clark-Casey (justincc)
29093df1a7
get rid of intermediate local store of body rotation in ScenePresence, this is not used.
2011-08-11 02:36:02 +01:00
Justin Clark-Casey (justincc)
ee22569c92
only accept npc UUIDs to osNpc* functions, not names (except for create)
2011-08-11 02:19:13 +01:00
Justin Clark-Casey (justincc)
cace6eaa8a
comment out some of the currently less useful debug log messages
2011-08-11 02:06:32 +01:00
Justin Clark-Casey (justincc)
4402851b08
Get NPCs to revert to the correct 'resting' animation (e.g. stand or hover) after finishing their movement. This also fixes judder after an avatar has finished "go here"/autopilot movement in a viewer.
...
This meant reseting the SP.AgentControlFlags since the Animator uses these to determine the correct default animation.
2011-08-11 01:56:42 +01:00
Justin Clark-Casey (justincc)
951ffad81e
If SP.MoveToTarget has been called with a force walk, begin by landing the avatar.
...
There is a bug here - once an avatar has landed it glides to its new position instead of performing a walk animation
2011-08-11 00:23:54 +01:00
Justin Clark-Casey (justincc)
7f499ff3f3
Add a OS_NPC_LAND_AT_TARGET option to osMoveToTarget()
...
Default for this function is now not to automatically land.
This allows better control by scripts when an avatar is going to be landing on a prim rather than the ground.
Stopping the avatar involves faking a collision, to avoid the pid controller making it overshoot.
A better approach would be to gradually slow the avatar as we near the target
2011-08-10 23:56:19 +01:00
Justin Clark-Casey (justincc)
fb92678b83
fly and no fly constants for osNpcMoveToTarget()
2011-08-10 22:34:42 +01:00
Justin Clark-Casey (justincc)
5d6c9644fa
early code to allow scripts to force npcs not to fly when moving to target
...
this is to allow walking on prims. it will be up to the script writer to be sure that there is a continuous path.
currently implemented in osNpcMoveToTarget(), but none of this is final.
2011-08-10 01:47:37 +01:00
Justin Clark-Casey (justincc)
4cb8d6379d
Stop trying to deregister caps or close child agents when an NPC is removed
2011-08-10 00:59:31 +01:00
Justin Clark-Casey (justincc)
195c1dc9b8
implement osNpcStopMoveTo() to cancel any current move target
2011-08-10 00:26:38 +01:00
Justin Clark-Casey (justincc)
cba54090c7
When an NPC appearance is loaded, rez the attachments too
2011-08-09 23:25:52 +01:00
Justin Clark-Casey (justincc)
92e96d394a
When an NPC is created, stop telling neighbouring regions to expect a child agent
2011-08-09 23:11:07 +01:00
Justin Clark-Casey (justincc)
795c8e6c22
Add osOwnerSaveAppearance() to help with setting up NPC appearances. Not yet ready for user use.
...
Adds regression test.
2011-08-09 22:05:47 +01:00
Justin Clark-Casey (justincc)
e869eeb0bf
Implement first draft functions for saving and loading NPC appearance from storage.
...
This works by serializing and deserializing NPC AvatarAppearance to a notecard in the prim inventory and making the required baked textures permanent.
By using notecards, we avoid lots of awkward, technical and user-unfriendly issues concerning retaining asset references and creating a new asset type.
Notecards also allow different appearances to be swapped and manipulated easily.
This also allows stored NPC appearances to work transparently with OARs/IARs since the UUID scan will pick up and store the necessary references from the notecard text.
This works in my basic test but is not at all ready for user use or bug reporting yet.
2011-08-09 03:51:34 +01:00
Justin Clark-Casey (justincc)
3e16a0fbdd
factor out common notecard caching code from 3 methods.
2011-08-09 00:12:41 +01:00
Justin Clark-Casey (justincc)
78d8ce3816
refactor: split out generic parts of osMakeNotecard() into a separate. Add method doc. Other minor tidies.
2011-08-08 23:22:47 +01:00
Justin Clark-Casey (justincc)
6878049952
get rid of bogus log message
2011-08-06 03:06:05 +01:00
Justin Clark-Casey (justincc)
eec54adac5
remove some obsolete tests that are now done elsewhere
2011-08-06 02:38:38 +01:00
Justin Clark-Casey (justincc)
e37f8cf902
Add a test to check that ScenePresence and circuit go away when a root agent is closed down
2011-08-06 02:27:25 +01:00
Justin Clark-Casey (justincc)
85e07c78fb
refactor: Change SceneHelpers.AddClient() to AddScenePresence().
...
This seems to make more sense as we can get SP.ControllingClient
2011-08-06 02:17:41 +01:00
Justin Clark-Casey (justincc)
83ba35a26b
rip out sog generation methods in ScenePresenceAgentTests and use SceneHelpers instead
...
Not that it matters, since these tests are pretty bogus anyway.
Also, renames some test classes for consistency.
2011-08-06 02:01:25 +01:00
Justin Clark-Casey (justincc)
2b26d2f1a5
prevent "create region" console command from being able to create a region with the same id as one that already exists.
...
Addresses http://opensimulator.org/mantis/view.php?id=5617
2011-08-06 01:35:01 +01:00
Justin Clark-Casey (justincc)
76f46b2545
Do proper locking of m_localScenes list in SceneManager
2011-08-06 01:15:49 +01:00
Justin Clark-Casey (justincc)
dad1d6df18
rename TestHelper => TestHelpers for consistency
2011-08-06 00:31:03 +01:00
Justin Clark-Casey (justincc)
bda1a4be45
rename test SceneSetupHelpers -> SceneHelpers for consistency
2011-08-06 00:26:37 +01:00
Justin Clark-Casey (justincc)
cba40de109
extend phantom flag regression test to toggle back off
2011-08-06 00:22:14 +01:00
Justin Clark-Casey (justincc)
c6c91e6599
refactor: Fold most SOP.ScriptSet* methods back into script code. Simplify.
2011-08-06 00:13:08 +01:00
Justin Clark-Casey (justincc)
ba89fc3aa1
Add regression test for setting phantom status on a scene object. This is not yet complete.
2011-08-05 23:42:05 +01:00
Justin Clark-Casey (justincc)
f18780d0e3
Get "show region" command in GridService to show grid co-ordinates rather than meters co-ord.
...
This makes it consistent with "show regions"
Addresses http://opensimulator.org/mantis/view.php?id=5619
2011-08-05 22:56:53 +01:00
Justin Clark-Casey (justincc)
7d35bf8193
refactor: remove a sliver of unnecessary code
2011-08-05 22:45:42 +01:00
Justin Clark-Casey (justincc)
1a2518d19b
Instead of moving the file to its final place when FlotsamCache writes to disk, copy it instead.
...
This is to eliminate IOException where two threads compete to cache the same file.
2011-08-05 19:57:47 +01:00
Justin Clark-Casey (justincc)
94d496cf2b
remove the largely unused copy/pasted HandleAgentRequestSit() method
2011-08-05 00:57:43 +01:00
Justin Clark-Casey (justincc)
1918402cb1
if an NPC target is set to a ground location, then automatically land them when they get there.
...
This doesn't help where the target is a prim surface. In these situations, it might be better to provide manual overrides so the script can control whethre an avatar flys there/lands, etc.
2011-08-04 03:08:35 +01:00
Justin Clark-Casey (justincc)
54ce029342
if an NPC move to target is above the terrain then make it fly to destination
2011-08-04 02:31:40 +01:00
Justin Clark-Casey (justincc)
f999acd095
minor: remove some mono compiler warnings
2011-08-04 01:46:34 +01:00
Justin Clark-Casey (justincc)
c678b75d65
if a move to target is set underground, constrain it to the terrain height
2011-08-04 01:45:56 +01:00
Justin Clark-Casey (justincc)
61a931490d
move bAllowUpdateMoveToPosition switch outside of HandleMoveToTargetUpdate()
2011-08-04 01:30:37 +01:00
Justin Clark-Casey (justincc)
831f933ce6
only call move target code in SP.HandleAgentUpdate() if we're actually in the process of moving to a position
2011-08-04 01:22:01 +01:00
Justin Clark-Casey (justincc)
7b2b47530e
move reset code out of HandleMoveToTargetUpdate() so that we only call it where needed instead of passing in a flag
2011-08-04 01:16:24 +01:00
Justin Clark-Casey (justincc)
fc64cc2439
Make SIGNIFICANT_MOVEMENT SP constant a top-level property so that other classes can use it.
2011-08-04 01:05:43 +01:00
Justin Clark-Casey (justincc)
7f6f100c5a
When the NPC reaches within the SIGNIFICANT_CLIENT_MOVEMENT distance of the target, move it directly to the target.
...
This makes the movement exact. Regression test changed to check avatar reaches exact target.
Also has the nice side effect of making NPC animations continue to work after the first movement (which wasn't working). However, avatar still pauses in mid-stride
2011-08-04 01:00:33 +01:00
Justin Clark-Casey (justincc)
ba0c65e028
extend npc move test to check a second movement
2011-08-04 00:25:51 +01:00
Justin Clark-Casey (justincc)
6f913e8caf
eliminate pre-existing unused SP.StopMovement()
2011-08-04 00:13:27 +01:00
Justin Clark-Casey (justincc)
a2f5b4ac9a
Rename HandleMoveToPositionUpdate() to HandleMoveToTargetUpdate() for consistency. Improve method doc.
2011-08-04 00:10:53 +01:00
Justin Clark-Casey (justincc)
0299cb060e
eliminate a reset position flag by using functionally equivalent DCFlagKeyPressed
2011-08-04 00:06:01 +01:00
Justin Clark-Casey (justincc)
6ab01b338f
Stop calling the SP.ResetMoveToTarget() code if a target is not actually set
2011-08-03 23:59:13 +01:00
Justin Clark-Casey (justincc)
31fb6b2d72
remove move to duck walk compensation - no longer required.
...
extends npc move to regression test to check stop after sufficient sim updates
2011-08-03 23:40:05 +01:00
Justin Clark-Casey (justincc)
61d49d4f63
rename NPC.Autopilot to NPC.MoveToTarget internally. Add method doc to INPCModule
2011-08-03 23:20:36 +01:00
Justin Clark-Casey (justincc)
31cea17f8e
extend move test to check avatar is moving in the right direction after setting a move target
2011-08-03 23:13:52 +01:00
Justin Clark-Casey (justincc)
21d8a6b0e8
extend move test to check one beat of the simulator without actually asking the npc to move.
2011-08-03 23:06:18 +01:00
Justin Clark-Casey (justincc)
d78fe44191
Add passing but incomplete NPC move regression test
2011-08-03 22:51:46 +01:00
Justin Clark-Casey (justincc)
e0503d397c
stop avatar service being set up in NPC TestCreate() - it's no longer used
2011-08-03 22:45:43 +01:00
Justin Clark-Casey (justincc)
a333c60f28
refactor: rename the move to position methods to move to target to be consistent with terminology used by scene object part and elsewhere
2011-08-03 22:34:05 +01:00
Justin Clark-Casey (justincc)
2964467708
get rid of vestigal move to parameters
2011-08-03 22:11:05 +01:00
Justin Clark-Casey (justincc)
b7a3f36c65
enable the NPC module for its regression test
2011-08-03 04:48:47 +01:00
Justin Clark-Casey (justincc)
797def8aa4
Put config to enable disable [NPC] module.
...
Default is disabled. You will need to explicitly enable to toy with this.
2011-08-03 04:33:45 +01:00
Justin Clark-Casey (justincc)
6e4ec29722
Do a partial fix/implementation of OSSL osNpcMoveTo()
...
Avatar moves and stops. However, will stop in mid stride.
And if the move to position is in the air, avatar will continue to make vain and quite hilarious attempts to take off (but never doing so).
Clearly more work is needed.
2011-08-03 04:19:19 +01:00
Justin Clark-Casey (justincc)
68a5fe0431
Improve z axis move to/autopilot so the avatar does alternative crouch/huzzah when walking along the ground
...
Moving a flying avatar to a ground point doesn't yet land the avatar. This may or may not be the best thing
2011-08-03 02:59:49 +01:00
Justin Clark-Casey (justincc)
30e816bfa2
Implement move to/autopilot for z axis movement as well.
...
This is jerky (an artifact of the way it's being done, I think), but it's better than on implementation.
2011-08-03 02:04:38 +01:00
Justin Clark-Casey (justincc)
0c23764ce2
get autopilot/go here to work immediately.
...
This works with viewer 1.23.5 and so in theory should work with libopenmetaverse.
2011-08-03 01:12:32 +01:00
Justin Clark-Casey (justincc)
1c126e6e22
refactor: Move update_movement_flag and the final check inside the m_allowMovement if in HandleAgentUpdate() since it's logically only ever used there
2011-08-03 00:55:52 +01:00
Justin Clark-Casey (justincc)
f9689f5cc9
refactor: move out code from HandleAgentUpdate() which processes updates to move to a set position
...
Also comment out the really spammy log message I accidentally left in on the last commit.
2011-08-03 00:46:46 +01:00
Robert Adams
74b23210a7
Fix Flotsam cache so it will use the disk cache if the memory cache is enabled
2011-08-02 23:44:40 +01:00
Justin Clark-Casey (justincc)
c122489e09
Partially fix autopilot/go here
...
This now works again except that it requires a click or avatar mvmt to get going
This is because the ScenePresence.HandleAgentUpdate() method doesn't trigger until the client does something significant, at which point autopilot takes over.
Even clicking is enough to trigger.
This will be improved presently.
2011-08-02 23:41:12 +01:00
Justin Clark-Casey (justincc)
b7f81d3492
If GetRegionByName can't match something in the local db, then search the hypergrid if that functionality has been enabled.
...
This should fix the problem today where old style HG addresses (e.g. "hg.osgrid.org:80:Vue-6400") stopped working since 8c3eb324c4
2011-08-02 01:06:32 +01:00
Justin Clark-Casey (justincc)
d2220da205
remove ancient late 2008 cruft that handles the situation where the GetRegionsByName used to not be implemented/returned null.
...
It's impossible that anybody is still running this since the infrastructure has changed massively since that time.
2011-08-02 00:58:08 +01:00
Justin Clark-Casey (justincc)
17e9d61f43
Change GridService.GetRegionByName() to only return info if there is an exact region name match, unlike GetRegionsByName()
...
This should fix the first part of http://opensimulator.org/mantis/view.php?id=5606 , and maybe 5605.
Thanks to Melanie for helping with this.
2011-08-02 00:52:48 +01:00
Justin Clark-Casey (justincc)
e6fb9d74ef
Revert "In GridService, have GetRegionByName() call GetRegionsByName() with a max return of 1 instead of duplicating code."
...
This reverts commit 8d33a2eaa1
.
Better fix will be along in a minute
2011-08-02 00:40:23 +01:00
Justin Clark-Casey (justincc)
8d33a2eaa1
In GridService, have GetRegionByName() call GetRegionsByName() with a max return of 1 instead of duplicating code.
...
This also fixes the problem where this method would not return a hypergrid region, unlike GetRegionsByName()
2011-08-02 00:26:17 +01:00
Justin Clark-Casey (justincc)
b6ac1c46cd
Get rid of AvatarAppearance.Owner to simplify the code.
...
This is not used for anything - appearances are always properties of objects with ids (ScenePresence, AgentCircuitData) and just has the potential to get out of sync when the appearance is cloned.
2011-08-02 00:13:04 +01:00
Justin Clark-Casey (justincc)
59f548cda8
Get osNpcCreate appearance working with avatars that are currently in the scene.
...
Had to stop using AvatarService for now since it doesn't store baked texture IDs (which is why this was failing).
Also failing because cloning appearance was also cloning the AvatarApperance.Owner field, which we weren't then changing.
Extended TestCreate() to check this.
2011-08-01 23:41:29 +01:00
Justin Clark-Casey (justincc)
05e94ff27e
Move common gemo/agent map name code into CreateGeom()
...
Fix build break.
2011-08-01 07:04:13 +01:00
Justin Clark-Casey (justincc)
f9d6a91252
Instead of preserving old name in geom_name_map in change size or shape, use the Name property instead.
...
This is equivalent since the prim 'name' is never changed. In fact, this propery is never used for prims
2011-08-01 06:52:52 +01:00
Justin Clark-Casey (justincc)
40a78db182
comment out unused code in OdeScene.TriCallback()
2011-08-01 06:47:45 +01:00
Justin Clark-Casey (justincc)
ccb4b76242
On geom removal, remove the name from the OdeScene.geom_name_map too
2011-08-01 06:40:29 +01:00
Justin Clark-Casey (justincc)
f79df6f43f
remove the unused ODEPrim.prev_geom field
2011-08-01 06:35:59 +01:00
Justin Clark-Casey (justincc)
f32dbef647
When an ODE geom is removed (as when a non-phantom prim is deleted, resized or shape changed, also remove the OdeScene.actor_name_map entry pointing to the phys actor
...
This is to stop a small memory leak over time when prims are deleted or phantom-toggled
2011-08-01 06:32:30 +01:00
Justin Clark-Casey (justincc)
6618948ff9
refactor: centralize prim geom removal code from four places to one
2011-08-01 06:15:02 +01:00
Justin Clark-Casey (justincc)
509200d5cd
minor: add note to RemovePrimThreadLocked() to the effect that it contrary to the summary, it is being called from within Simulate() lock (OdeLock)
2011-08-01 05:48:27 +01:00
Justin Clark-Casey (justincc)
dfa2f7d715
If a prim changes size or shape, add actor to _parent_scene.actor_name_map with new prim_geom key, as the old one becomes invalid.
...
This resolves http://opensimulator.org/mantis/view.php?id=5603 where changing size or shape would stop collision_start being fired in a running script.
In both this and existing code we are not removing old actors from actor_name_map when the existing prim_geom is removed, which leads to a small memory leak over time.
This needs to be fixed.
2011-08-01 05:43:04 +01:00
Justin Clark-Casey (justincc)
2102964826
minor: indentation correction
2011-08-01 05:14:16 +01:00
Justin Clark-Casey (justincc)
b757583662
Comment out SOP logging message I accidentally left in
2011-07-31 03:41:35 +01:00
Justin Clark-Casey (justincc)
aea7007533
refactor: split out ninja joint part of SOP.DoPhysicsPropertyUpdate() so that we don't have to look at it if it's not relevant
2011-07-31 02:50:50 +01:00
Justin Clark-Casey (justincc)
450bdb3657
In the packetpool, if we encounter a data block that somehow wasn't retrieved via GetDataBlock() then create a new stack instead of throwing an exception
2011-07-31 02:30:40 +01:00
Justin Clark-Casey (justincc)
d041276517
Remove _mesh field since the mesh data no longer needs to be stored after it's initially used.
...
This may improve memory usage for regions using mesh and sculpts, though I suspect that it doesn't address the current memory leak.
2011-07-31 01:03:52 +01:00
Justin Clark-Casey (justincc)
bd8f538f80
refactor: Remove argument to pass in an initial mesh to OdePrim since this is no longer required and it prevents removal of the _mesh field (which is only used temporarily)
...
If passing in a mesh becomes important again in the future then this can be reinstated.
2011-07-31 00:49:49 +01:00
Justin Clark-Casey (justincc)
196a774b24
minor: correct method doc for last commit
2011-07-31 00:45:20 +01:00
Justin Clark-Casey (justincc)
454312f5bc
refactor: rename CreateGeom _mesh argument to mesh, so as to not confuse this with the pre-existing _mesh field
2011-07-31 00:44:23 +01:00
Justin Clark-Casey (justincc)
f1ce17071d
minor: method doc
2011-07-31 00:43:02 +01:00
Justin Clark-Casey (justincc)
e08be91c84
Refactor: Replace instances of m_isphysical with IsPhysical rather than have some code reference the private var and other the public var without any functionality difference.
...
Add some method doc to IsPhysical
2011-07-30 23:44:47 +01:00
Justin Clark-Casey (justincc)
4f4d080461
refactor: Rename ODEPrim.ParentPrim() to AddChildPrim() for code readability
2011-07-30 23:20:43 +01:00
Justin Clark-Casey (justincc)
49a3740ee9
minor: remove mono compiler warnings, some code spacing adjustments
2011-07-30 03:56:29 +01:00
Justin Clark-Casey (justincc)
9fc59e2bf2
minor: remove some mono compiler warnings
2011-07-30 03:19:00 +01:00
Justin Clark-Casey (justincc)
d917010433
minor: Add method doc to collision subscription methods. Change method case to reflect OpenSim standards.
2011-07-30 03:11:36 +01:00
Justin Clark-Casey (justincc)
310a685220
refactor: extract method that generates a physics mesh from prim shape data
2011-07-30 02:34:50 +01:00
Justin Clark-Casey (justincc)
4197f66052
refactor: extract code which generate points and faces from sculpt data into it's own method.
...
fix build break.
2011-07-30 02:22:05 +01:00
Justin Clark-Casey (justincc)
b0eacadeb4
fix bug in previous commit
2011-07-30 02:09:17 +01:00
Justin Clark-Casey (justincc)
122e01949d
refactor: move the code that generates physics meshs from prim mesh data into a separate method, in order to make the code more readable.
2011-07-30 02:08:32 +01:00
Justin Clark-Casey (justincc)
7791c1fd1e
Replace the generic exception logging in flotsam asset cache with more specific stuff to return more information.
2011-07-30 01:35:22 +01:00