cross mouse buttons state

0.9.0-post-fixes
UbitUmarov 2017-06-03 04:28:43 +01:00
parent 12a6625dc7
commit 67e540e05c
2 changed files with 23 additions and 0 deletions

View File

@ -375,6 +375,7 @@ namespace OpenSim.Framework
public string ActiveGroupTitle = null; public string ActiveGroupTitle = null;
public UUID agentCOF; public UUID agentCOF;
public byte CrossingFlags; public byte CrossingFlags;
public byte CrossExtraFlags;
public Dictionary<ulong, string> ChildrenCapSeeds = null; public Dictionary<ulong, string> ChildrenCapSeeds = null;
public Animation[] Anims; public Animation[] Anims;
@ -454,6 +455,8 @@ namespace OpenSim.Framework
args["agent_cof"] = OSD.FromUUID(agentCOF); args["agent_cof"] = OSD.FromUUID(agentCOF);
args["crossingflags"] = OSD.FromInteger(CrossingFlags); args["crossingflags"] = OSD.FromInteger(CrossingFlags);
if(CrossingFlags != 0)
args["crossExtraFlags"] = OSD.FromInteger(CrossExtraFlags);
args["active_group_id"] = OSD.FromUUID(ActiveGroupID); args["active_group_id"] = OSD.FromUUID(ActiveGroupID);
args["active_group_name"] = OSD.FromString(ActiveGroupName); args["active_group_name"] = OSD.FromString(ActiveGroupName);
@ -646,6 +649,12 @@ namespace OpenSim.Framework
if (args.ContainsKey("crossingflags") && args["crossingflags"] != null) if (args.ContainsKey("crossingflags") && args["crossingflags"] != null)
CrossingFlags = (byte)args["crossingflags"].AsInteger(); CrossingFlags = (byte)args["crossingflags"].AsInteger();
if(CrossingFlags != 0)
{
if (args.ContainsKey("crossExtraFlags") && args["crossExtraFlags"] != null)
CrossExtraFlags = (byte)args["crossExtraFlags"].AsInteger();
}
if (args.ContainsKey("active_group_id") && args["active_group_id"] != null) if (args.ContainsKey("active_group_id") && args["active_group_id"] != null)
ActiveGroupID = args["active_group_id"].AsUUID(); ActiveGroupID = args["active_group_id"].AsUUID();

View File

@ -4668,6 +4668,11 @@ namespace OpenSim.Region.Framework.Scenes
{ {
cAgent.CrossingFlags = crossingFlags; cAgent.CrossingFlags = crossingFlags;
cAgent.CrossingFlags |= 1; cAgent.CrossingFlags |= 1;
cAgent.CrossExtraFlags = 0;
if((LastCommands & ScriptControlled.CONTROL_LBUTTON) != 0)
cAgent.CrossExtraFlags |= 1;
if((LastCommands & ScriptControlled.CONTROL_ML_LBUTTON) != 0)
cAgent.CrossExtraFlags |= 2;
} }
else else
cAgent.CrossingFlags = 0; cAgent.CrossingFlags = 0;
@ -4782,6 +4787,15 @@ namespace OpenSim.Region.Framework.Scenes
crossingFlags = cAgent.CrossingFlags; crossingFlags = cAgent.CrossingFlags;
gotCrossUpdate = (crossingFlags != 0); gotCrossUpdate = (crossingFlags != 0);
if(gotCrossUpdate)
{
LastCommands &= ~(ScriptControlled.CONTROL_LBUTTON | ScriptControlled.CONTROL_ML_LBUTTON);
if((cAgent.CrossExtraFlags & 1) != 0)
LastCommands |= ScriptControlled.CONTROL_LBUTTON;
if((cAgent.CrossExtraFlags & 2) != 0)
LastCommands |= ScriptControlled.CONTROL_ML_LBUTTON;
MouseDown = (cAgent.CrossExtraFlags & 3) != 0;
}
haveGroupInformation = false; haveGroupInformation = false;
// using this as protocol detection don't want to mess with the numbers for now // using this as protocol detection don't want to mess with the numbers for now