Applying Intimidated's patch to fix anim handling.

Fixes Mantis #3417
0.6.5-rc1
Melanie Thielker 2009-04-06 18:02:12 +00:00
parent f90c203b7d
commit fb900f6055
3 changed files with 62 additions and 7 deletions

View File

@ -86,7 +86,8 @@ namespace OpenSim.Region.Framework.Scenes
public bool m_clampPrimSize = false; public bool m_clampPrimSize = false;
public bool m_trustBinaries = false; public bool m_trustBinaries = false;
public bool m_allowScriptCrossings = false; public bool m_allowScriptCrossings = false;
public bool m_useFlySlow = false;
public bool m_usePreJump = false;
public bool m_seeIntoRegionFromNeighbor; public bool m_seeIntoRegionFromNeighbor;
public int MaxUndoCount = 5; public int MaxUndoCount = 5;
private int m_RestartTimerCounter; private int m_RestartTimerCounter;
@ -342,6 +343,12 @@ namespace OpenSim.Region.Framework.Scenes
// Region config overrides global config // Region config overrides global config
// //
IConfig startupConfig = m_config.Configs["Startup"]; IConfig startupConfig = m_config.Configs["Startup"];
//Animation states
m_useFlySlow = startupConfig.GetBoolean("enableflyslow", false);
// TODO: Change default to true once the feature is supported
m_usePreJump = startupConfig.GetBoolean("enableprejump", false);
m_maxNonphys = startupConfig.GetFloat("NonPhysicalPrimMax", m_maxNonphys); m_maxNonphys = startupConfig.GetFloat("NonPhysicalPrimMax", m_maxNonphys);
if (RegionInfo.NonphysPrimMax > 0) if (RegionInfo.NonphysPrimMax > 0)
m_maxNonphys = RegionInfo.NonphysPrimMax; m_maxNonphys = RegionInfo.NonphysPrimMax;

View File

@ -81,7 +81,6 @@ namespace OpenSim.Region.Framework.Scenes
private bool MouseDown = false; private bool MouseDown = false;
private SceneObjectGroup proxyObjectGroup; private SceneObjectGroup proxyObjectGroup;
//private SceneObjectPart proxyObjectPart = null; //private SceneObjectPart proxyObjectPart = null;
public Vector3 lastKnownAllowedPosition; public Vector3 lastKnownAllowedPosition;
public bool sentMessageAboutRestrictedParcelFlyingDown; public bool sentMessageAboutRestrictedParcelFlyingDown;
@ -118,9 +117,10 @@ namespace OpenSim.Region.Framework.Scenes
private bool m_setAlwaysRun; private bool m_setAlwaysRun;
private string m_movementAnimation = "DEFAULT"; private string m_movementAnimation = "DEFAULT";
private long m_animPersistUntil; private long m_animPersistUntil = 0;
private bool m_allowFalling = false; private bool m_allowFalling = false;
private bool m_useFlySlow = false;
private bool m_usePreJump = false;
private Quaternion m_bodyRot= Quaternion.Identity; private Quaternion m_bodyRot= Quaternion.Identity;
@ -567,6 +567,7 @@ namespace OpenSim.Region.Framework.Scenes
private ScenePresence(IClientAPI client, Scene world, RegionInfo reginfo) private ScenePresence(IClientAPI client, Scene world, RegionInfo reginfo)
{ {
m_regionHandle = reginfo.RegionHandle; m_regionHandle = reginfo.RegionHandle;
m_controllingClient = client; m_controllingClient = client;
m_firstname = m_controllingClient.FirstName; m_firstname = m_controllingClient.FirstName;
@ -577,6 +578,9 @@ namespace OpenSim.Region.Framework.Scenes
m_regionInfo = reginfo; m_regionInfo = reginfo;
m_localId = m_scene.AllocateLocalId(); m_localId = m_scene.AllocateLocalId();
m_useFlySlow = m_scene.m_useFlySlow;
m_usePreJump = m_scene.m_usePreJump;
IGroupsModule gm = m_scene.RequestModuleInterface<IGroupsModule>(); IGroupsModule gm = m_scene.RequestModuleInterface<IGroupsModule>();
if (gm != null) if (gm != null)
m_grouptitle = gm.GetGroupTitle(m_uuid); m_grouptitle = gm.GetGroupTitle(m_uuid);
@ -2006,10 +2010,17 @@ namespace OpenSim.Region.Framework.Scenes
return "FLY"; return "FLY";
} }
else else
{
if (m_useFlySlow == false)
{
return "FLY";
}
else
{ {
return "FLYSLOW"; return "FLYSLOW";
} }
} }
}
else else
{ {
if ((m_movementflag & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0) if ((m_movementflag & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0)
@ -2152,9 +2163,16 @@ namespace OpenSim.Region.Framework.Scenes
{ {
m_movementAnimation = movementAnimation; m_movementAnimation = movementAnimation;
} }
if (movementAnimation == "PREJUMP" && m_usePreJump == false)
{
//This was the previous behavior before PREJUMP
TrySetMovementAnimation("JUMP");
}
else
{
TrySetMovementAnimation(movementAnimation); TrySetMovementAnimation(movementAnimation);
} }
}
/// <summary> /// <summary>
/// Rotate the avatar to the given rotation and apply a movement in the given relative vector /// Rotate the avatar to the given rotation and apply a movement in the given relative vector

View File

@ -220,6 +220,24 @@
;emailmodule = DefaultEmailModule ;emailmodule = DefaultEmailModule
; ##
; ## ANIMATIONS
; ##
; If enabled, enableFlySlow will change the primary fly state to
; FLYSLOW, and the "always run" state will be the regular fly.
enableflyslow = false
; PreJump is an additional animation state, but it probably
; won't look right until the physics engine supports it
; (i.e delays takeoff for a moment)
; This is commented so it will come on automatically once it's
; supported.
; enableprejump = true
[SMTP] [SMTP]
enabled=false enabled=false
@ -237,6 +255,18 @@
;InterregionComms = "LocalComms" ;InterregionComms = "LocalComms"
InterregionComms = "RESTComms" InterregionComms = "RESTComms"
[AutoOAR]
;Enable the AutoOAR module.
;OAR's are automatically exported to Regionname_x_y.oar.tar.gz
enabled = false
;Interval, in minutes, between exports
interval = 20
[StandAlone] [StandAlone]
accounts_authenticate = true accounts_authenticate = true
welcome_message = "Welcome to OpenSimulator" welcome_message = "Welcome to OpenSimulator"