Commit Graph

179 Commits

Author SHA1 Message Date
Teravus Ovares
dc850df50a * Implements Oriented Bounding Box raytracing.
* It's not perfect, but it's good enough. (rarely erroneously returns a backface collision)
* After updating to this revision, rez a prim on another prim and watch it appear where you'd expect it to appear.
2008-03-23 06:24:59 +00:00
alondria
5ebef6410e Implements llLoopSound(), llStopSound(), and llAdjustSoundVolume(). 2008-03-22 23:02:41 +00:00
Teravus Ovares
7854f6f4a2 * Committing some math to discover the Oriented Bounding Box and decomposing it into planes and normals.
* No obvious functionality difference as the Ray-cast code is incomplete for OBB right now.
2008-03-22 03:40:38 +00:00
Teravus Ovares
0cb05c1952 * Updated ray tracing code. It's now good enough to use when the XYZ vector components of the scale have a difference of less then 4.5 meters.
* When a new prim is created and raytracing is called for, raytrace from the camera position to the ground in the direction of the Norm(RayEnd - RayStart).
* If we got a hit based on our camera, create the new prim at the edge of the prim we hit.
* Don't raytrace if the difference between any component of the vector exceeds 4.5meters.
2008-03-21 05:54:56 +00:00
Jeff Ames
84289cfb4b Fix server crash when setting prims physical under basic physics. 2008-03-19 19:33:38 +00:00
Jeff Ames
47180080f0 Formatting cleanup. 2008-03-18 05:16:43 +00:00
Sean Dague
dba37a8722 From: Alan M Webb <awebb@vnet.ibm.com>
Here's a diff of the changes I have made in support of the following LSL
script functions. 

llSetScriptState
llGetScriptState
llCSV2List
llListRandomize
llList2ListStrided
llListFindList
llResetOtherScript
llGetScriptName

It was necessary to modify ExecutorBase in support of the ScriptState
implementations.

I also modified SceneObjectPart and SceneObjectPart.Inventory to
corrects a quoting mismatch in the commentary that through off live
parsing of the files.

I also simplified the State definition at the start of BuiltinCommands.
2008-03-17 15:11:36 +00:00
Teravus Ovares
76bf1f3654 * Fixed prim creation in basic physics mode. ( BasicPhysics returns null probably a lot more then it should? ) 2008-03-16 18:55:56 +00:00
Justin Clarke Casey
9341c71135 * Minor - error message should be a warning. Spelling 2008-03-14 18:30:28 +00:00
Justin Clarke Casey
87067bff1e * The rest of the fix necessary for mantis #766 - terse updates broken
* Even very rapid linking/delinking should now behave normally.  Terse updates still occur as before
* Hopefully this ends the recent linking problems - please let us know if there are more
2008-03-14 18:21:21 +00:00
Justin Clarke Casey
dc84f350a7 * As yet incomplete fix for mantis #766 - terse updates broken
* Currently, terse updates are back, and extremely rapid linking and delinking will only break occasionally
* More work to do here
2008-03-14 16:28:33 +00:00
lbsa71
24aedf52c6 * Added null root part guard
* Normalized some UUID handling
* Compacted a few Contains/Add into Set
2008-03-14 15:28:34 +00:00
Teravus Ovares
ae9a98ceb1 * Added proper handling of llSetStatus(STATUS_PHYSICS,BOOL) 2008-03-14 06:20:50 +00:00
Teravus Ovares
abacfba287 * Preliminary work with the ODEPlugin to collect collision data. 2008-03-14 05:22:52 +00:00
Justin Clarke Casey
a4304fb9e6 * Fix Mantis 761 (linking and delinking prims rapidly caused prims to 'disappear')
* Root cause was that if two updates occurred in the same second of time, the second one was never sent
* Linking/delinking appears to be okay now
2008-03-13 00:22:38 +00:00
MW
fc551ef127 Applied patch from mantis #749, Grass now stays to set type when moved. thanks Grumly57. 2008-03-12 15:53:04 +00:00
Teravus Ovares
d0123a796b ODEPlugin
* Added osSetPrimFloatOnWater(BOOL) to make Physical prim float at the water level.   
* osSetPrimFloatOnWater(TRUE); or osSetPrimFloatOnWater(FALSE);
* By default, prim do not float at the water level.
* More work is needed on the floating, but it's a start.
2008-03-10 05:56:58 +00:00
Teravus Ovares
8bea3dbdb9 * Added ODEPlugin Support for llSetBuoyancy. Set Buoyancy to 1 for space prim.
* Added WaterLevel support to the ODEPlugin.   More on this later.
2008-03-10 05:23:43 +00:00
Sean Dague
4ea52b2105 Change SceneObjectPart.LocalID to .LocalId to be case matching
with SceneObjectGroup.LocalId (and hence reduce confusion).
2008-03-05 18:57:13 +00:00
Johan Berntsson
279e0061c5 Merged 3Di code that provides scene and avatar serialization, and plugin support for region move/split/merge. See ThirdParty/3Di/README.txt. Unless the new modules are used there should be no noticeable changes when running OpenSim. 2008-03-04 05:31:54 +00:00
Teravus Ovares
d015356902 * Applied patch 708 from devalnor. Thanks devalnor!
* ODE: Added support for larger box stacks. (they're slow, but they work)
* ODEPlugin no longer tries to 'catch up' with the simulator frame rate if it gets behind.  Catching up was causing a lot of problems with larger box stacks and other things that stall the simulator (like saving prim in the datastore)
2008-03-03 16:52:25 +00:00
Teravus Ovares
0a5c48b1c8 * This is a very icky implementation of physical linkset prim using fixed joints. This will change quite drastically, however it's fun to play with.
* To play with this you must link your prim before setting it physical, otherwise they won't link in the physics engine properly.  This will also be fixed.
* Currently the linked prim are extremely unstable because I have yet to implement combining of forces with the same normal. This will also be fixed.   In fact, the whole PhysicsActor, ODEPrim relationship will be reworked to consider groups from the get-go.
* This implementation is better then it crashing your sim, so I'm commiting it for now.
2008-03-02 09:31:39 +00:00
Jeff Ames
a8cfbbe963 Minor cleanup. 2008-02-20 18:38:20 +00:00
lbsa71
9be5f9d6cc * Fixed xml loading bug (the xml was scheduled for update before added to a scene)
* Fixed ClickAction situation on the same note (properties shouldn't cause big changes)
* Added some more debug output to AssetCache
2008-02-20 09:38:45 +00:00
Teravus Ovares
932a132116 * Made a quickupdate method to run through only entities that have scheduled themselves for updates looking for changes. This runs 10 times a second.
* Set the massively slow UpdateEntities method to run every 2 seconds instead of 10 times a second.  This method runs through *all* of the entities can calls the virtual update().  
* Documented some of the code in the scene.Update method.
2008-02-20 00:08:04 +00:00
MW
b618802e53 Moved the AgentAssetTransactionsManager (and AgentAssetTransactions) out of CommsManager and into a module (AgentAgentTransactionModule), still needs cleaning up though.
But its one more thing out of the CommsManager. One day we will kill the CommsManager!
2008-02-16 13:01:42 +00:00
Teravus Ovares
be6edefcfb * ODE Stability update 4 :D
* Changed the way meshing requests get sent to the ODEPlugin
* Numerous other fixes
2008-02-15 21:35:52 +00:00
Teravus Ovares
49a6ac300f * This fixes the object edit box's flipping checkboxes when you modify one of the permission masks or Locked status using the available checkboxes. 2008-02-12 15:47:37 +00:00
lbsa71
d79633b7c7 * various minuscule code convention conformance fixes 2008-02-12 11:21:23 +00:00
Teravus Ovares
e5ede36f0c * Physical prim cross borders and continue from where the left off on the other side now, assuming the region on the other side has physical prim enabled. 2008-02-12 07:32:32 +00:00
Teravus Ovares
6e01769bcf * A bunch of updates to make things more smooth.
** Sending the actual TimeDilation to the client now instead of the 62455 constant.  The client is *supposed* to use that value to sync with the simulator.    (actually sending ushort.maxvalue * TimeDilation)
** Disabling prim that inter-penetrate instead of just not attaching a joint
** Reduced prim spin a 'little' bit, but not *enough* 
** Tweaked the TimeDilation algorithm to be closer to 1.0 by default and various changes to the sim stats reporter 
** Created a .SetValues method to PhysicsVector so we can simply call the setvalues function instead of .x, .y, .z sets.
** Experimented with a .GetBytes Method on PhysicsActor to be able to use the LLVector3.FromBytes() method.   
** Upped the Inter-penetration depth to 0.25 instead of .08.
2008-02-12 04:27:20 +00:00
lbsa71
c927928245 * some refactoring on permissions
* temporary re-introduced the weird 'flip-back' behaviour, but debugging it; will remove it if I don't find anything.
2008-02-11 13:26:55 +00:00
Teravus Ovares
38f0615ffe * This updates adds locking capability. Thanks, lbsa71 for pointing out my bitmasking error of the objectflags! It's still a little bit wonky when you check the checkbox, however it 'takes' and doesn't break anything. 2008-02-10 21:27:32 +00:00
Teravus Ovares
85a9834ed8 * A lot of ugly permissions updates.
** Created SendFullUpdateToAllClientsExcept(LLUUID) so that permission updates /appear/ to apply immediately
** Separated out the ObjectFlags and the Permission Flags.  They're related but not the same
** Added a hack routine to add *back* the objectflags to the client flags because the client hates the way we're doing object permissions
** Updated the clientflags routine to properly tell the client when they can't edit admin objects (objects owned by the sim administrator) even when they're an estate manager(why? >.<  argh!)
** Fixed a null sim administrator/estate manager/user from causing permissions to return false even when it should return true.
** Re-added ObjectModify hack to allow collaboration with the allow anyone to move checkbox until we get group permissions done.
2008-02-10 10:55:57 +00:00
Teravus Ovares
1b8e89751a * Added the Scripted objectflag if there is a script running in a prim. Remove the flag if you delete all of the scripts in the object. 2008-02-07 01:52:39 +00:00
Jeff Ames
6ed5283bc0 Converted logging to use log4net.
Changed LogBase to ConsoleBase, which handles console I/O.
This is mostly an in-place conversion, so lots of refactoring can still be done.
2008-02-05 19:44:27 +00:00
Teravus Ovares
ca5aadfbff * Refactored the sound calls to SceneObjectPart
* Fixed a few bugs
* Wrote an example module to make certain event systems more mature.
2008-02-05 05:26:18 +00:00
MW
755ad9e3e0 First part of avatar persistence, currently only really works in standalone mode (with accounts_authenticate set to true), it also only currently has a mysql database connector. (sqlite one will follow soon). It also uses the tribalmedia database system, so this needs checking to see if the old problems with mono have been fixed.
To use, see the appearance section in opensim.ini.example, set "persist = true", then add the correct connection string for your database.(see mysql-AvatarAppearance.sql in share folder for a example of the table mysql table structure).
This could possible be used in a very small grid, but would mean each region server would need to connect to the same mysql database. 
But the work to move the code to one of the grid servers shouldn't be too much.
2008-02-04 12:04:02 +00:00
Teravus Ovares
f26cdfd057 * Fixed llSetTextureAnim to respect rate and Length and Start 2008-02-02 16:42:46 +00:00
Teravus Ovares
2d6c21e8fc * Added Full support for llSetTextureAnim. To ckrinke: Let the fountains of Wright Plaza flow!
* Fixed another bug in LibSL.  This is the same version, as before just with a bug fix.
2008-02-02 08:11:14 +00:00
Teravus Ovares
d4f32649cd * Committing some untested stuff regarding texture animations. This won't break anything, but the llSetTextureAnim function is completely untested.. (though it may be functional once the script engine works again) 2008-02-02 03:57:57 +00:00
lbsa71
bc88f90a6e * I just love doing these substantial contributions. 2008-01-22 15:30:47 +00:00
lbsa71
8d0364e228 * changed nonsensical PermissionMask and ObjectFlags mixup; if this causes perms weirdness, let's all work together to find the real cause. 2008-01-22 15:07:30 +00:00
Justin Clarke Casey
8df4774830 On reflection, HasGroupChanged is more appropriate 2008-01-18 18:57:28 +00:00
Justin Clarke Casey
be50fa76ee Change SOP.HasChanged to HasPrimChanged in preparation for further changes 2008-01-18 18:43:16 +00:00
lbsa71
dfda3dd4d7 * Fixed bug where 'taskOwnerId' would always be null in PermissionManager, hence always retuning false on GenericObjectPermission. 2008-01-18 14:01:41 +00:00
Teravus Ovares
18c959df12 * Added llApplyImpulse in the global frame. The object must be physical before this'll do anything. Be careful with this function as it's easy to loose prim. 2008-01-17 14:59:05 +00:00
Teravus Ovares
c2863df49d * Added and implemented the LSL changed event.
* An example changed event syntax is at: http://opensimulator.org/wiki/Changed_Event_Example
* You can use this to trigger actions in your script if someone sits on your object_rez
* You can use this to figure out all of the CHANGED_ constants except for CHANGED_REGION, CHANGED_TELEPORT, and CHANGED_ALLOW_DROP
2008-01-17 02:23:48 +00:00
Justin Clarke Casey
b33da2538e * Fix mantis 345 - it is now possible to duplicate prims directly in the region again without breakage
* This includes their inventories
* Also, this revision properly synchronizes prim inventory crud.
2008-01-16 20:27:12 +00:00
Justin Clarke Casey
57519b6dba * Store task inventory when an object is taken into agent inventory
* This means that you can take an object from a region and rez it somewhere else, with its inventory intact.
* As for earlier, at this stage only scripts can be placed in inventory
* This isn't an efficient implementation, a better one will probably need to come along soonish
2008-01-16 18:35:34 +00:00