SL-694 - stub support for ObjectAnimation message type

master
Brad Payne (Vir Linden) 2017-05-30 22:03:43 +01:00
parent 4d68945595
commit 55612611c6
8 changed files with 101 additions and 6 deletions

View File

@ -236,6 +236,14 @@
<boolean>false</boolean>
</map>
<key>ObjectAnimation</key>
<map>
<key>flavor</key>
<string>template</string>
<key>trusted-sender</key>
<boolean>false</boolean>
</map>
<key>AvatarAppearance</key>
<map>
<key>flavor</key>

View File

@ -818,6 +818,7 @@ char const* const _PREHASH_StateSave = LLMessageStringTable::getInstance()->getS
char const* const _PREHASH_RoleData = LLMessageStringTable::getInstance()->getString("RoleData");
char const* const _PREHASH_AgentAnimation = LLMessageStringTable::getInstance()->getString("AgentAnimation");
char const* const _PREHASH_AvatarAnimation = LLMessageStringTable::getInstance()->getString("AvatarAnimation");
char const* const _PREHASH_ObjectAnimation = LLMessageStringTable::getInstance()->getString("ObjectAnimation");
char const* const _PREHASH_LogDwellTime = LLMessageStringTable::getInstance()->getString("LogDwellTime");
char const* const _PREHASH_ParcelGodMarkAsContent = LLMessageStringTable::getInstance()->getString("ParcelGodMarkAsContent");
char const* const _PREHASH_UsePhysics = LLMessageStringTable::getInstance()->getString("UsePhysics");

View File

@ -818,6 +818,7 @@ extern char const* const _PREHASH_StateSave;
extern char const* const _PREHASH_RoleData;
extern char const* const _PREHASH_AgentAnimation;
extern char const* const _PREHASH_AvatarAnimation;
extern char const* const _PREHASH_ObjectAnimation;
extern char const* const _PREHASH_LogDwellTime;
extern char const* const _PREHASH_ParcelGodMarkAsContent;
extern char const* const _PREHASH_UsePhysics;

View File

@ -2384,6 +2384,7 @@ void register_viewer_callbacks(LLMessageSystem* msg)
msg->setHandlerFuncFast(_PREHASH_NameValuePair, process_name_value);
msg->setHandlerFuncFast(_PREHASH_RemoveNameValuePair, process_remove_name_value);
msg->setHandlerFuncFast(_PREHASH_AvatarAnimation, process_avatar_animation);
msg->setHandlerFuncFast(_PREHASH_ObjectAnimation, process_object_animation);
msg->setHandlerFuncFast(_PREHASH_AvatarAppearance, process_avatar_appearance);
msg->setHandlerFuncFast(_PREHASH_CameraConstraint, process_camera_constraint);
msg->setHandlerFuncFast(_PREHASH_AvatarSitResponse, process_avatar_sit_response);

View File

@ -103,6 +103,7 @@
#include "llviewerwindow.h"
#include "llvlmanager.h"
#include "llvoavatarself.h"
#include "llvovolume.h"
#include "llworld.h"
#include "pipeline.h"
#include "llfloaterworldmap.h"
@ -4976,12 +4977,15 @@ void process_avatar_animation(LLMessageSystem *mesgsys, void **user_data)
LLUUID animation_id;
LLUUID uuid;
S32 anim_sequence_id;
LLVOAvatar *avatarp;
LLVOAvatar *avatarp = NULL;
mesgsys->getUUIDFast(_PREHASH_Sender, _PREHASH_ID, uuid);
//clear animation flags
avatarp = (LLVOAvatar *)gObjectList.findObject(uuid);
LLViewerObject *objp = gObjectList.findObject(uuid);
if (objp)
{
avatarp = objp->asAvatar();
}
if (!avatarp)
{
@ -4993,6 +4997,7 @@ void process_avatar_animation(LLMessageSystem *mesgsys, void **user_data)
S32 num_blocks = mesgsys->getNumberOfBlocksFast(_PREHASH_AnimationList);
S32 num_source_blocks = mesgsys->getNumberOfBlocksFast(_PREHASH_AnimationSourceList);
//clear animation flags
avatarp->mSignaledAnimations.clear();
if (avatarp->isSelf())
@ -5063,6 +5068,58 @@ void process_avatar_animation(LLMessageSystem *mesgsys, void **user_data)
}
}
void process_object_animation(LLMessageSystem *mesgsys, void **user_data)
{
LLUUID animation_id;
LLUUID uuid;
#if 0
S32 anim_sequence_id;
#endif
mesgsys->getUUIDFast(_PREHASH_Sender, _PREHASH_ID, uuid);
LLViewerObject *objp = gObjectList.findObject(uuid);
if (!objp)
{
LL_WARNS("Messaging") << "Received animation state for unknown object" << uuid << LL_ENDL;
return;
}
LLVOVolume *volp = dynamic_cast<LLVOVolume*>(objp);
if (!volp)
{
LL_WARNS("Messaging") << "Received animation state for non-volume object" << uuid << LL_ENDL;
return;
}
if (!volp->isAnimatedMesh())
{
LL_WARNS("Messaging") << "Received animation state for non-animated object" << uuid << LL_ENDL;
return;
}
LL_WARNS() << "ADD SUPPORT FOR OBJECT ANIMATION HERE" << LL_ENDL;
#if 0
S32 num_blocks = mesgsys->getNumberOfBlocksFast(_PREHASH_AnimationList);
S32 num_source_blocks = mesgsys->getNumberOfBlocksFast(_PREHASH_AnimationSourceList);
avatarp->mSignaledAnimations.clear();
for( S32 i = 0; i < num_blocks; i++ )
{
mesgsys->getUUIDFast(_PREHASH_AnimationList, _PREHASH_AnimID, animation_id, i);
mesgsys->getS32Fast(_PREHASH_AnimationList, _PREHASH_AnimSequenceID, anim_sequence_id, i);
avatarp->mSignaledAnimations[animation_id] = anim_sequence_id;
}
if (num_blocks)
{
avatarp->processAnimationStateChanges();
}
#endif
}
void process_avatar_appearance(LLMessageSystem *mesgsys, void **user_data)
{
LLUUID uuid;

View File

@ -95,6 +95,7 @@ void process_health_message(LLMessageSystem *mesgsys, void **user_data);
void process_sim_stats(LLMessageSystem *mesgsys, void **user_data);
void process_shooter_agent_hit(LLMessageSystem* msg, void** user_data);
void process_avatar_animation(LLMessageSystem *mesgsys, void **user_data);
void process_object_animation(LLMessageSystem *mesgsys, void **user_data);
void process_avatar_appearance(LLMessageSystem *mesgsys, void **user_data);
void process_camera_constraint(LLMessageSystem *mesgsys, void **user_data);
void process_avatar_sit_response(LLMessageSystem *mesgsys, void **user_data);

View File

@ -8,7 +8,7 @@ version 2.0
// for each type is listed below:
// Low: 423
// Medium: 18
// High: 29
// High: 30
// PLEASE UPDATE THIS WHEN YOU ADD A NEW MESSAGE!
@ -3571,7 +3571,6 @@ version 2.0
}
}
// AvatarAppearance - Update visual params
{
AvatarAppearance Low 158 Trusted Zerocoded
@ -7285,6 +7284,33 @@ version 2.0
}
// *************************************************************************
// Object animation messages
// *************************************************************************
// Note this is basically identical to AvatarAnimation.
// Needs to be a different message because existing viewers
// have insufficiently smart handler functions.
// ObjectAnimation - Update animation state
// simulator --> viewer
{
ObjectAnimation High 30 Trusted Unencoded
{
Sender Single
{ ID LLUUID }
}
{
AnimationList Variable
{ AnimID LLUUID }
{ AnimSequenceID S32 }
}
{
AnimationSourceList Variable
{ ObjectID LLUUID }
}
}
// *************************************************************************
// Asset storage messages
// *************************************************************************

View File

@ -1 +1 @@
337f351910b0c8821cb3d447bc6578516a043c80
428700550e70f611b632e3bb6422fe1d093a0313