diff options
Diffstat (limited to 'src/world/Avatar.cs')
-rw-r--r-- | src/world/Avatar.cs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/world/Avatar.cs b/src/world/Avatar.cs index f3905cd..fc1b4a2 100644 --- a/src/world/Avatar.cs +++ b/src/world/Avatar.cs | |||
@@ -12,6 +12,8 @@ namespace OpenSim.world | |||
12 | public string firstname; | 12 | public string firstname; |
13 | public string lastname; | 13 | public string lastname; |
14 | public OpenSimClient ControllingClient; | 14 | public OpenSimClient ControllingClient; |
15 | public uint CurrentKeyMask; | ||
16 | |||
15 | private libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock AvatarTemplate; | 17 | private libsecondlife.Packets.ObjectUpdatePacket.ObjectDataBlock AvatarTemplate; |
16 | 18 | ||
17 | public Avatar(OpenSimClient TheClient) { | 19 | public Avatar(OpenSimClient TheClient) { |
@@ -21,7 +23,21 @@ namespace OpenSim.world | |||
21 | } | 23 | } |
22 | 24 | ||
23 | public void update() { | 25 | public void update() { |
24 | base.update(); | 26 | lock(this) { |
27 | base.update(); | ||
28 | |||
29 | if((this.CurrentKeyMask & (uint)MainAvatar.AgentUpdateFlags.AGENT_CONTROL_AT_POS) != 0) { | ||
30 | if((this.velocity.X>230) & (this.velocity.Y>230)) { | ||
31 | this.velocity.X=230; | ||
32 | this.velocity.Y=230; | ||
33 | this.velocity.Z=0; | ||
34 | } | ||
35 | } else { | ||
36 | this.velocity.X=0; | ||
37 | this.velocity.Y=0; | ||
38 | this.velocity.Z=0; | ||
39 | } | ||
40 | } | ||
25 | } | 41 | } |
26 | 42 | ||
27 | private void SetupTemplate(string name) | 43 | private void SetupTemplate(string name) |