aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment
diff options
context:
space:
mode:
authorTeravus Ovares2008-05-11 21:27:12 +0000
committerTeravus Ovares2008-05-11 21:27:12 +0000
commita01b415d6c3fa2ee650b23b7d78432a2eac5a2a7 (patch)
tree8594200f74b76d91c2d2fc2c3f57e06e0ee565ea /OpenSim/Region/Environment
parent* Fixed null reference exception when rezzing an object from inventory with a... (diff)
downloadopensim-SC-a01b415d6c3fa2ee650b23b7d78432a2eac5a2a7.zip
opensim-SC-a01b415d6c3fa2ee650b23b7d78432a2eac5a2a7.tar.gz
opensim-SC-a01b415d6c3fa2ee650b23b7d78432a2eac5a2a7.tar.bz2
opensim-SC-a01b415d6c3fa2ee650b23b7d78432a2eac5a2a7.tar.xz
0001199: [PATCH] Add support for default animations
From Melanie... Thanks Melanie! .
Diffstat (limited to 'OpenSim/Region/Environment')
-rw-r--r--OpenSim/Region/Environment/Scenes/ScenePresence.cs57
1 files changed, 57 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
index 466b20a..c74cac3 100644
--- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs
@@ -1156,6 +1156,63 @@ namespace OpenSim.Region.Environment.Scenes
1156 } 1156 }
1157 } 1157 }
1158 } 1158 }
1159 public void AddAnimation(string name)
1160 {
1161 if(m_isChildAgent)
1162 return;
1163
1164 // Don't let this animation become the movement animation
1165 if(m_animations.Count < 1)
1166 SetMovementAnimation(Animations.AnimsLLUUID["STAND"]);
1167
1168 LLUUID animID=m_controllingClient.GetDefaultAnimation(name);
1169 if(animID == LLUUID.Zero)
1170 return;
1171
1172 if (!m_animations.Contains(animID))
1173 {
1174 m_animations.Add(animID);
1175 m_animationSeqs.Add(m_controllingClient.NextAnimationSequenceNumber);
1176 SendAnimPack();
1177 }
1178 }
1179
1180 public void RemoveAnimation(string name)
1181 {
1182 if(m_isChildAgent)
1183 return;
1184
1185 LLUUID animID=m_controllingClient.GetDefaultAnimation(name);
1186 if(animID == LLUUID.Zero)
1187 return;
1188
1189 if (m_animations.Contains(animID))
1190 {
1191 if (m_animations[0] == animID)
1192 {
1193 SetMovementAnimation(Animations.AnimsLLUUID["STAND"]);
1194 }
1195 else
1196 {
1197 // What a HACK!! Anim list really needs to be an object!
1198 int idx;
1199
1200 for(idx=0;idx < m_animations.Count;idx++)
1201 {
1202 if(m_animations[idx] == animID)
1203 {
1204 int seq=m_animationSeqs[idx];
1205
1206 m_animations.Remove(animID);
1207 m_animationSeqs.Remove(seq);
1208 SendAnimPack();
1209 break;
1210 }
1211 }
1212 }
1213 }
1214 }
1215
1159 1216
1160 public void HandleStartAnim(IClientAPI remoteClient, LLUUID animID) 1217 public void HandleStartAnim(IClientAPI remoteClient, LLUUID animID)
1161 { 1218 {