PageRenderTime 76ms CodeModel.GetById 11ms app.highlight 34ms RepoModel.GetById 1ms app.codeStats 1ms

/scripts/messages/message_template.msg

https://bitbucket.org/lindenlab/viewer-beta/
Unknown | 3258 lines | 2983 code | 275 blank | 0 comment | 0 complexity | ce0684581003014504efa65128fae21c MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1// Linden Lab development message templates
   2
   3version 2.0
   4
   5// The Version 2.0 template requires preservation of message
   6// numbers. Each message must be numbered relative to the
   7// other messages of that type. The current highest number 
   8// for each type is listed below:
   9// Low: 423
  10// Medium: 18
  11// High: 29
  12// PLEASE UPDATE THIS WHEN YOU ADD A NEW MESSAGE!
  13
  14
  15// *************************************************************************
  16// Test Message
  17// *************************************************************************
  18
  19// Test Message
  20
  21{
  22	TestMessage Low 1 NotTrusted Zerocoded
  23	{
  24		TestBlock1		Single
  25		{	Test1		U32	}
  26	}
  27	{
  28		NeighborBlock		Multiple		4
  29		{	Test0		U32	}
  30		{	Test1		U32	}
  31		{	Test2		U32	}
  32	}
  33}
  34
  35// *************************************************************************
  36// Messaging Internal Data Management Message
  37// *************************************************************************
  38
  39// *************************
  40// List fixed messages first
  41// *************************
  42
  43
  44// Packet Ack - Ack a list of packets sent reliable
  45{
  46	PacketAck Fixed 0xFFFFFFFB NotTrusted Unencoded
  47	{
  48		Packets			Variable		
  49		{	ID			U32	}
  50	}
  51}
  52
  53
  54// OpenCircuit - Tells the recipient's messaging system to open the descibed circuit
  55{
  56	OpenCircuit Fixed 0xFFFFFFFC NotTrusted Unencoded UDPBlackListed
  57	{
  58		CircuitInfo		Single
  59		{	IP			IPADDR	}
  60		{	Port		IPPORT	}
  61	}
  62}
  63
  64
  65// CloseCircuit - Tells the recipient's messaging system to close the descibed circuit
  66{
  67	CloseCircuit Fixed 0xFFFFFFFD NotTrusted Unencoded
  68}
  69
  70
  71// ******************
  72// End fixed messages
  73// ******************
  74
  75// StartPingCheck - used to measure circuit ping times
  76// PingID is used to determine how backlogged the ping was that was
  77// returned (or how hosed the other side is)
  78{
  79	StartPingCheck High 1 NotTrusted Unencoded
  80	{
  81		PingID Single
  82		{	PingID	U8	}
  83		{	OldestUnacked	U32	}	// Current oldest "unacked" packet on the sender side
  84	}
  85}
  86
  87// CompletePingCheck - used to measure circuit ping times
  88
  89{
  90	CompletePingCheck High 2 NotTrusted Unencoded
  91	{
  92		PingID Single
  93		{	PingID	U8	}
  94	}
  95}
  96
  97// space->sim
  98// sim->sim
  99// AddCircuitCode - Tells the recipient's messaging system that this code
 100// is for a legal circuit
 101{
 102	AddCircuitCode Low 2 Trusted Unencoded
 103	{
 104		CircuitCode		Single
 105		{	Code		U32		}
 106		{	SessionID	LLUUID	}
 107		{	AgentID		LLUUID	} // WARNING - may be null in valid message
 108	}
 109}
 110
 111// viewer->sim
 112// UseCircuitCode - Attempts to provide the recipient with IP and Port
 113// info. In the case of viewers, the id is the session id. For other
 114// machines it may be null. The session id will always be the session
 115// id of the process, which every server will generate on startup and
 116// the viewer will be handed after login.
 117{
 118	UseCircuitCode Low 3 NotTrusted Unencoded
 119	{
 120		CircuitCode		Single
 121		{	Code		U32		}
 122		{	SessionID	LLUUID	}
 123		{	ID			LLUUID	} // agent id
 124	}
 125}
 126
 127
 128// *************************************************************************
 129// SpaceServer to Simulator Messages
 130// ************************************************************************
 131
 132// Neighbor List - Passed anytime neighbors change
 133{
 134	NeighborList High 3 Trusted Unencoded
 135	{
 136		NeighborBlock	Multiple		4
 137		{	IP			IPADDR	}
 138		{	Port		IPPORT	}
 139		{	PublicIP    IPADDR	}
 140		{	PublicPort  IPPORT	}
 141		{	RegionID	LLUUID	}
 142		{	Name		Variable		1	}	// string
 143		{	SimAccess	U8	}
 144	}
 145}
 146
 147
 148// AvatarTextureUpdate
 149// simulator -> dataserver
 150// reliable
 151{
 152	AvatarTextureUpdate Low 4 Trusted Zerocoded
 153	{
 154		AgentData		Single
 155		{	AgentID			LLUUID	}
 156		{	TexturesChanged	BOOL	}
 157	}
 158	{
 159		WearableData		Variable
 160		{	CacheID			LLUUID }
 161		{	TextureIndex	U8 }
 162		{	HostName		Variable	1	}
 163	}
 164	{
 165		TextureData		Variable
 166		{	TextureID		LLUUID	}
 167	}
 168}
 169
 170
 171// SimulatorMapUpdate
 172// simulator -> dataserver
 173// reliable
 174{
 175	SimulatorMapUpdate Low 5 Trusted Unencoded
 176	{
 177		MapData		Single
 178		{	Flags		U32		}
 179	}
 180}
 181
 182// SimulatorSetMap
 183// simulator -> dataserver
 184// reliable
 185// Used to upload a map image into the database (currently used only for Land For Sale)
 186{
 187	SimulatorSetMap Low 6 Trusted Unencoded
 188	{
 189		MapData		Single
 190		{	RegionHandle	U64		}
 191		{	Type			S32		}
 192		{	MapImage		LLUUID	}
 193	}
 194}
 195
 196// SubscribeLoad
 197// spaceserver -> simulator
 198// reliable
 199{
 200	SubscribeLoad	Low	7 Trusted Unencoded
 201}
 202
 203// UnsubscribeLoad
 204// spaceserver -> simulator
 205// reliable
 206{
 207	UnsubscribeLoad Low 8 Trusted Unencoded
 208}
 209
 210
 211// ************************************************************************
 212// Simulator to SpaceServer Messages
 213// ************************************************************************
 214
 215// SimulatorReady - indicates the sim has finished loading its state
 216// and is ready to receive updates from others
 217{
 218	SimulatorReady Low 9 Trusted Zerocoded
 219	{
 220		SimulatorBlock		Single
 221		{	SimName			Variable	1	}
 222		{	SimAccess		U8	}
 223		{	RegionFlags		U32	}
 224		{	RegionID		LLUUID	}
 225		{	EstateID		U32	}
 226		{	ParentEstateID	U32	}
 227	}
 228	{
 229		TelehubBlock		Single
 230		{	HasTelehub		BOOL		}
 231		{	TelehubPos		LLVector3	}
 232	}
 233}
 234
 235// TelehubInfo - fill in the UI for telehub creation floater.
 236// sim -> viewer
 237// reliable
 238{
 239	TelehubInfo	Low	10 Trusted Unencoded
 240	{
 241		TelehubBlock		Single
 242		{	ObjectID		LLUUID			}	// null if no telehub
 243		{	ObjectName		Variable 1		}	// string
 244		{	TelehubPos		LLVector3		}	// fallback if viewer can't find object
 245		{	TelehubRot		LLQuaternion	}
 246	}
 247	{
 248		SpawnPointBlock		Variable
 249		{	SpawnPointPos	LLVector3		}	// relative to telehub position
 250	}
 251}
 252
 253// SimulatorPresentAtLocation - indicates that the sim is present at a grid
 254// location and passes what it believes its neighbors are
 255{
 256	SimulatorPresentAtLocation Low 11 Trusted Unencoded
 257	{
 258		SimulatorPublicHostBlock	Single
 259		{	Port        IPPORT }
 260		{	SimulatorIP IPADDR }
 261		{   GridX       U32	   }
 262		{	GridY       U32    }
 263	}
 264	{
 265		NeighborBlock	Multiple		4
 266		{	IP			IPADDR	}
 267		{	Port		IPPORT	}
 268	}
 269	{
 270		SimulatorBlock		Single
 271		{	SimName			Variable	1	}
 272		{	SimAccess		U8	}
 273		{	RegionFlags		U32	}
 274		{	RegionID		LLUUID	}
 275		{	EstateID		U32	}
 276		{	ParentEstateID	U32	}
 277	}
 278	{
 279		TelehubBlock		Variable
 280		{	HasTelehub		BOOL		}
 281		{	TelehubPos		LLVector3	}
 282	}
 283}
 284
 285// SimulatorLoad
 286// simulator -> spaceserver
 287// reliable
 288{
 289	SimulatorLoad Low 12 Trusted Unencoded
 290	{
 291		SimulatorLoad		Single
 292		{	TimeDilation 	F32 }
 293		{	AgentCount 		S32 }
 294		{	CanAcceptAgents	BOOL	}
 295	}
 296	{
 297		AgentList	Variable
 298		{	CircuitCode		U32	}
 299		{	X				U8	}
 300		{	Y				U8	}
 301	}
 302}
 303
 304// Simulator Shutdown Request - Tells spaceserver that a simulator is trying to shutdown
 305{
 306	SimulatorShutdownRequest Low 13 Trusted Unencoded
 307}
 308
 309// ****************************************************************************
 310// Presense messages
 311// ****************************************************************************
 312
 313// sim -> dataserver
 314{
 315	RegionPresenceRequestByRegionID Low 14 Trusted Unencoded
 316	{
 317		RegionData		Variable
 318		{	RegionID	LLUUID	}
 319	}
 320}
 321
 322// sim -> dataserver
 323{
 324	RegionPresenceRequestByHandle Low 15 Trusted Unencoded
 325	{
 326		RegionData		Variable
 327		{	RegionHandle	U64	}
 328	}
 329}
 330
 331// dataserver -> sim
 332{
 333	RegionPresenceResponse Low 16 Trusted Zerocoded
 334	{
 335		RegionData		Variable
 336		{	RegionID			LLUUID	}
 337		{	RegionHandle		U64	}
 338		{	InternalRegionIP	IPADDR	}
 339		{	ExternalRegionIP	IPADDR	}
 340		{	RegionPort			IPPORT	}
 341		{	ValidUntil			F64	}
 342		{	Message				Variable	1	}
 343	}
 344}
 345 
 346
 347// ****************************************************************************
 348// Simulator to dataserver messages
 349// ****************************************************************************
 350
 351// Updates SimName, EstateID and SimAccess using RegionID as a key
 352{
 353	UpdateSimulator Low 17 Trusted Unencoded
 354	{
 355		SimulatorInfo	Single
 356		{	RegionID	LLUUID	}
 357		{	SimName		Variable	1	}
 358		{	EstateID	U32		}
 359		{	SimAccess	U8		}
 360	}
 361}
 362
 363
 364// record dwell time.
 365{
 366	LogDwellTime	Low	18 Trusted Unencoded
 367	{
 368		DwellInfo	Single
 369		{	AgentID		LLUUID	}
 370		{	SessionID	LLUUID	}
 371		{	Duration	F32		}
 372		{	SimName		Variable	1 }
 373		{	RegionX		U32		}
 374		{	RegionY		U32		}
 375		{	AvgAgentsInView U8  }
 376		{	AvgViewerFPS U8		}
 377	}
 378}
 379
 380// Disabled feature response message
 381{
 382	FeatureDisabled	Low 19 Trusted Unencoded
 383	{
 384		FailureInfo			Single
 385		{	ErrorMessage	Variable	1	}
 386		{	AgentID			LLUUID			}
 387		{	TransactionID	LLUUID			}
 388	}
 389}
 390
 391
 392// record lost money transactions.  This message could be generated
 393// from either the simulator or the dataserver, depending on how
 394// the transaction failed.
 395{
 396	LogFailedMoneyTransaction	Low 20 Trusted Unencoded
 397	{
 398		TransactionData	Single
 399		{	TransactionID	LLUUID	}
 400		{ 	TransactionTime	U32		} // utc seconds since epoch
 401		{	TransactionType	S32		}	// see lltransactiontypes.h
 402		{	SourceID		LLUUID  }
 403		{	DestID			LLUUID	}	// destination of the transfer
 404		{	Flags			U8		}
 405		{	Amount			S32		}
 406		{	SimulatorIP		IPADDR	}	// U32 encoded IP
 407		{	GridX			U32		}
 408		{	GridY			U32		}
 409		{	FailureType		U8		}
 410	}
 411}
 412
 413// complaint/bug-report - sim -> dataserver. see UserReport for details.
 414// reliable
 415{
 416	UserReportInternal Low 21 Trusted Zerocoded
 417	{
 418		ReportData	Single
 419		{   ReportType		U8   }
 420		{   Category		U8   }
 421		{   ReporterID		LLUUID  }
 422		{	ViewerPosition	LLVector3	}
 423		{	AgentPosition	LLVector3	}
 424		{   ScreenshotID	LLUUID  }
 425		{   ObjectID		LLUUID  }
 426		{   OwnerID			LLUUID  }
 427		{   LastOwnerID		LLUUID  }
 428		{   CreatorID		LLUUID  }
 429		{	RegionID		LLUUID	}
 430		{   AbuserID		LLUUID  }
 431		{	AbuseRegionName	Variable	1	}
 432		{	AbuseRegionID	LLUUID	}
 433		{   Summary			Variable	1   }
 434		{   Details 		Variable	2   }
 435		{	VersionString	Variable	1	}
 436	}
 437}
 438
 439// SetSimStatusInDatabase
 440// alters the "simulator" table in the database
 441// sim -> dataserver
 442// reliable
 443{
 444	SetSimStatusInDatabase Low 22 Trusted Unencoded
 445	{
 446		Data	Single
 447		{	RegionID	LLUUID	}
 448		{   HostName 	Variable 1	}
 449		{	X			S32	}
 450		{	Y			S32	}
 451		{	PID			S32	}
 452		{	AgentCount	S32	}
 453		{	TimeToLive  S32 } // in seconds
 454		{	Status		Variable	1	}
 455	}
 456}
 457
 458// SetSimPresenceInDatabase
 459// updates the "presence" table in the database to ensure
 460// that a given simulator is present and valid for a set amount of
 461// time
 462{
 463	SetSimPresenceInDatabase Low 23 Trusted Unencoded
 464	{
 465		SimData Single
 466		{   RegionID 	LLUUID	}
 467		{   HostName 	Variable 1	}
 468		{	GridX		U32	}
 469		{	GridY		U32	}
 470		{	PID			S32	}
 471		{	AgentCount	S32	}
 472		{	TimeToLive  S32 } // in seconds
 473		{	Status		Variable	1	}
 474	}
 475}
 476
 477// ***************************************************************************
 478// Economy messages
 479// ***************************************************************************
 480
 481// once we use local stats, this will include a region handle
 482{
 483	EconomyDataRequest Low 24 NotTrusted Unencoded
 484}
 485
 486// dataserver to sim, response w/ econ data
 487{
 488	EconomyData Low 25 Trusted Zerocoded
 489	{
 490		Info					Single
 491		{	ObjectCapacity			S32	}
 492		{	ObjectCount				S32	}
 493		{	PriceEnergyUnit			S32	}
 494		{	PriceObjectClaim		S32	}
 495		{	PricePublicObjectDecay	S32	}
 496		{	PricePublicObjectDelete	S32	}
 497		{	PriceParcelClaim		S32	}
 498		{	PriceParcelClaimFactor	F32	}
 499		{	PriceUpload				S32	}
 500		{	PriceRentLight			S32	}
 501		{	TeleportMinPrice		S32	}
 502		{	TeleportPriceExponent 	F32	}
 503		{	EnergyEfficiency		F32	}
 504		{	PriceObjectRent			F32	}
 505		{	PriceObjectScaleFactor 	F32	}
 506		{	PriceParcelRent			S32	}
 507		{	PriceGroupCreate		S32	}
 508	}
 509}
 510
 511// ***************************************************************************
 512// Search messages
 513// ***************************************************************************
 514
 515// AvatarPickerRequest
 516// Get a list of names to select a person
 517// viewer -> sim -> data
 518// reliable
 519{
 520	AvatarPickerRequest Low 26 NotTrusted Unencoded
 521	{
 522		AgentData		Single
 523		{	AgentID		LLUUID		}
 524		{	SessionID	LLUUID		}
 525		{	QueryID		LLUUID		}
 526	}
 527	{
 528		Data			Single
 529		{	Name		Variable 1	}
 530	}
 531}
 532
 533// backend implementation which tracks if the user is a god.
 534{
 535	AvatarPickerRequestBackend Low 27 Trusted Unencoded
 536	{
 537		AgentData		Single
 538		{	AgentID		LLUUID		}
 539		{	SessionID	LLUUID		}
 540		{	QueryID		LLUUID		}
 541		{	GodLevel	U8	}
 542	}
 543	{
 544		Data			Single
 545		{	Name		Variable 1	}
 546	}
 547}
 548
 549// AvatarPickerReply
 550// List of names to select a person
 551// reliable
 552{
 553	AvatarPickerReply Low 28 Trusted Unencoded
 554	{
 555		AgentData		Single
 556		{	AgentID		LLUUID		}
 557		{	QueryID		LLUUID		}
 558	}
 559	{
 560		Data			Variable
 561		{	AvatarID	LLUUID		}
 562		{	FirstName	Variable 1	}
 563		{	LastName	Variable 1	}
 564	}
 565}
 566
 567// PlacesQuery
 568// Used for getting a list of places for the group land panel
 569// and the user land holdings panel.  NOT for the directory.
 570{
 571	PlacesQuery Low 29 NotTrusted Zerocoded
 572	{
 573		AgentData		Single
 574		{	AgentID		LLUUID		}
 575		{	SessionID	LLUUID		}
 576		{	QueryID		LLUUID		}
 577	}
 578	{
 579		TransactionData Single
 580		{	TransactionID	LLUUID	}
 581	}
 582	{
 583		QueryData		Single
 584		{	QueryText	Variable	1	}
 585		{	QueryFlags	U32				}
 586		{	Category	S8				}
 587		{	SimName		Variable	1	}
 588	}
 589}
 590
 591// PlacesReply
 592// dataserver -> simulator -> viewer
 593// If the user has specified a location, use that to compute
 594// global x,y,z.  Otherwise, use center of the AABB.
 595// reliable
 596{
 597	PlacesReply Low 30 Trusted Zerocoded UDPDeprecated
 598	{
 599		AgentData		Single
 600		{	AgentID		LLUUID		}
 601		{	QueryID		LLUUID		}
 602	}
 603	{
 604		TransactionData Single
 605		{	TransactionID	LLUUID	}
 606	}
 607	{
 608		QueryData		Variable
 609		{	OwnerID			LLUUID			}
 610		{	Name			Variable	1	}
 611		{	Desc			Variable	1	}
 612		{	ActualArea		S32				}
 613		{	BillableArea	S32				}
 614		{	Flags			U8				}
 615		{	GlobalX			F32				}	// meters
 616		{	GlobalY			F32				}	// meters
 617		{	GlobalZ			F32				}	// meters
 618		{	SimName			Variable	1	}
 619		{	SnapshotID		LLUUID			}
 620		{	Dwell			F32				}
 621		{	Price			S32				}
 622		//{	ProductSKU		Variable	1	}
 623	}
 624}
 625
 626// DirFindQuery viewer->sim
 627// Message to start asking questions for the directory 
 628{
 629	DirFindQuery Low 31 NotTrusted Zerocoded
 630	{
 631		AgentData		Single
 632		{	AgentID		LLUUID		}
 633		{	SessionID	LLUUID		}
 634	}
 635	{
 636		QueryData		Single
 637		{	QueryID		LLUUID		}
 638		{	QueryText	Variable 1	}
 639		{	QueryFlags	U32			}
 640		{	QueryStart	S32			}	// prev/next page support
 641	}
 642}
 643
 644// DirFindQueryBackend sim->data
 645// Trusted message generated by receipt of DirFindQuery to sim.
 646{
 647	DirFindQueryBackend Low 32 Trusted Zerocoded
 648	{
 649		AgentData		Single
 650		{	AgentID		LLUUID		}
 651	}
 652	{
 653		QueryData		Single
 654		{	QueryID		LLUUID		}
 655		{	QueryText	Variable 1	}
 656		{	QueryFlags	U32			}
 657		{	QueryStart	S32			}	// prev/next page support
 658		{	EstateID	U32			}
 659		{	Godlike		BOOL		}
 660	}
 661}
 662
 663
 664// DirPlacesQuery viewer->sim
 665// Used for the Find directory of places
 666{
 667	DirPlacesQuery Low 33 NotTrusted Zerocoded
 668	{
 669		AgentData		Single
 670		{	AgentID		LLUUID		}
 671		{	SessionID	LLUUID		}
 672	}
 673	{
 674		QueryData		Single
 675		{	QueryID		LLUUID		}
 676		{	QueryText	Variable	1	}
 677		{	QueryFlags	U32				}
 678		{	Category	S8				}
 679		{	SimName		Variable	1	}
 680		{	QueryStart	S32			}
 681	}
 682}
 683
 684// DirPlacesQueryBackend sim->dataserver
 685// Used for the Find directory of places.
 686{
 687	DirPlacesQueryBackend Low 34 Trusted Zerocoded
 688	{
 689		AgentData		Single
 690		{	AgentID		LLUUID		}
 691	}
 692	{
 693		QueryData		Single
 694		{	QueryID		LLUUID		}
 695		{	QueryText	Variable	1	}
 696		{	QueryFlags	U32				}
 697		{	Category	S8				}
 698		{	SimName		Variable	1	}
 699		{	EstateID	U32				}
 700		{	Godlike		BOOL			}
 701		{	QueryStart	S32			}
 702	}
 703}
 704
 705// DirPlacesReply dataserver->sim->viewer
 706// If the user has specified a location, use that to compute
 707// global x,y,z.  Otherwise, use center of the AABB.
 708// reliable
 709{
 710	DirPlacesReply Low 35 Trusted Zerocoded
 711	{
 712		AgentData		Single
 713		{	AgentID		LLUUID		}
 714	}
 715	{
 716		QueryData		Variable
 717		{	QueryID		LLUUID		}
 718	}
 719	{
 720		QueryReplies            Variable
 721		{	ParcelID		LLUUID		}
 722		{	Name			Variable 1	}
 723		{	ForSale			BOOL		}
 724		{	Auction			BOOL		}
 725		{	Dwell			F32			}
 726	}
 727	{
 728		StatusData            Variable
 729		{	Status		U32		}
 730	}
 731}
 732
 733// DirPeopleReply
 734{
 735	DirPeopleReply Low 36 Trusted Zerocoded
 736	{
 737		AgentData				Single
 738		{	AgentID				LLUUID	}
 739	}
 740	{
 741		QueryData		        Single
 742		{	QueryID		        LLUUID	}
 743	}
 744	{
 745		QueryReplies            Variable
 746 		{	AgentID	  	 	    LLUUID			}
 747		{	FirstName	        Variable	1	}
 748		{	LastName	        Variable	1	}
 749		{	Group		        Variable	1	}
 750		{	Online  	        BOOL			}
 751		{	Reputation	        S32				}
 752	}
 753}
 754
 755// DirEventsReply
 756{
 757	DirEventsReply Low 37 Trusted Zerocoded
 758	{
 759		AgentData		Single
 760		{	AgentID		LLUUID		}
 761	}
 762	{
 763		QueryData		Single
 764		{	QueryID		LLUUID		}
 765	}
 766	{
 767		QueryReplies	Variable
 768		{	OwnerID		LLUUID			}
 769		{	Name		Variable	1	}
 770		{	EventID		U32				}
 771		{	Date		Variable	1	}
 772		{	UnixTime	U32				}
 773		{	EventFlags	U32				}
 774	}
 775	{
 776		StatusData Variable
 777		{	Status		U32			}
 778	}
 779}
 780
 781// DirGroupsReply
 782// dataserver -> userserver -> viewer
 783// reliable
 784{
 785	DirGroupsReply Low 38 Trusted Zerocoded
 786	{
 787		AgentData		Single
 788		{	AgentID		LLUUID			}
 789	}
 790	{
 791		QueryData		Single
 792		{	QueryID		LLUUID			}
 793	}
 794	{
 795		QueryReplies	Variable
 796		{	GroupID			LLUUID			}
 797		{	GroupName		Variable	1	}	// string
 798		{	Members			S32				}
 799		{	SearchOrder		F32				}
 800	}
 801}
 802
 803
 804// DirClassifiedQuery viewer->sim
 805// reliable
 806{
 807	DirClassifiedQuery Low 39 NotTrusted Zerocoded
 808	{
 809		AgentData			Single
 810		{	AgentID			LLUUID	}
 811		{	SessionID		LLUUID	}
 812	}
 813	{
 814		QueryData			Single
 815		{	QueryID			LLUUID			}
 816		{	QueryText		Variable	1	}
 817		{	QueryFlags		U32				}
 818		{	Category		U32				}
 819		{	QueryStart	S32					}
 820	}
 821}
 822
 823// DirClassifiedQueryBackend sim->dataserver
 824// reliable
 825{
 826	DirClassifiedQueryBackend Low 40 Trusted Zerocoded
 827	{
 828		AgentData			Single
 829		{	AgentID			LLUUID	}
 830	}
 831	{
 832		QueryData			Single
 833		{	QueryID			LLUUID			}
 834		{	QueryText		Variable	1	}
 835		{	QueryFlags		U32				}
 836		{	Category		U32				}
 837		{	EstateID		U32				}
 838		{	Godlike			BOOL			}
 839		{	QueryStart	S32					}
 840	}
 841}
 842
 843// DirClassifiedReply dataserver->sim->viewer
 844// reliable
 845{
 846	DirClassifiedReply Low 41 Trusted Zerocoded
 847	{
 848		AgentData		Single
 849		{	AgentID		LLUUID		}
 850	}
 851	{
 852		QueryData		Single
 853		{	QueryID		LLUUID		}
 854	}
 855	{
 856		QueryReplies	Variable
 857		{	ClassifiedID	LLUUID		}
 858		{	Name			Variable 1	}
 859		{	ClassifiedFlags	U8			}
 860		{	CreationDate	U32			}
 861		{	ExpirationDate	U32			}
 862		{	PriceForListing	S32			}
 863	}
 864	{
 865		StatusData Variable
 866		{	Status			U32		}
 867	}
 868}
 869
 870
 871// AvatarClassifiedReply
 872// dataserver -> simulator -> viewer
 873// Send the header information for this avatar's classifieds
 874// This fills in the tabs of the Classifieds panel.
 875// reliable
 876{
 877	AvatarClassifiedReply Low 42 Trusted Unencoded
 878	{
 879		AgentData		Single
 880		{	AgentID			LLUUID		}
 881		{	TargetID		LLUUID		}
 882	}
 883	{
 884		Data			Variable
 885		{	ClassifiedID	LLUUID		}
 886		{	Name			Variable 1	}
 887	}
 888}
 889
 890
 891// ClassifiedInfoRequest
 892// viewer -> simulator
 893// simulator -> dataserver
 894// reliable
 895{
 896	ClassifiedInfoRequest Low 43 NotTrusted Zerocoded
 897	{
 898		AgentData        Single
 899		{    AgentID        LLUUID		}
 900		{    SessionID      LLUUID		}
 901	}
 902	{
 903		Data        Single
 904		{	ClassifiedID	LLUUID		}
 905	}
 906}
 907
 908
 909// ClassifiedInfoReply
 910// dataserver -> simulator
 911// simulator -> viewer
 912// reliable
 913{
 914	ClassifiedInfoReply Low 44 Trusted Unencoded
 915    {
 916        AgentData    Single
 917        {	AgentID			LLUUID		}
 918    }
 919    {
 920		Data        Single
 921		{	ClassifiedID	LLUUID		}
 922		{	CreatorID		LLUUID		}
 923		{	CreationDate	U32			}
 924		{	ExpirationDate	U32			}
 925		{	Category		U32			}
 926		{	Name			Variable 1	}
 927        {	Desc			Variable 2	}
 928		{	ParcelID		LLUUID		}
 929		{	ParentEstate	U32			}
 930        {	SnapshotID		LLUUID		}
 931        {	SimName			Variable 1	}
 932        {	PosGlobal		LLVector3d	}
 933        {	ParcelName		Variable 1	}
 934		{	ClassifiedFlags	U8			}
 935		{	PriceForListing	S32			}
 936    }
 937}
 938
 939
 940// ClassifiedInfoUpdate
 941// Update a classified.  ParcelID and EstateID are set
 942// on the simulator as the message passes through.
 943// viewer -> simulator -> dataserver
 944// reliable
 945{
 946	ClassifiedInfoUpdate Low 45 NotTrusted Unencoded
 947	{
 948		AgentData	Single
 949		{	AgentID			LLUUID		}
 950		{	SessionID		LLUUID		}
 951	}
 952	{
 953		Data		Single
 954		{	ClassifiedID	LLUUID		}
 955		{	Category		U32			}
 956		{	Name			Variable 1	}
 957		{	Desc			Variable 2	}
 958		{	ParcelID		LLUUID		}
 959		{	ParentEstate	U32			}
 960		{	SnapshotID		LLUUID		}
 961		{	PosGlobal		LLVector3d	}
 962		{	ClassifiedFlags	U8			}
 963		{	PriceForListing	S32			}
 964	}
 965}
 966
 967
 968// ClassifiedDelete
 969// Delete a classified from the database.
 970// viewer -> simulator -> dataserver
 971// reliable
 972{
 973	ClassifiedDelete Low 46 NotTrusted Unencoded
 974	{
 975		AgentData	Single
 976		{	AgentID			LLUUID		}
 977		{	SessionID		LLUUID		}
 978	}
 979	{
 980		Data	Single
 981		{	ClassifiedID	LLUUID		}
 982	}
 983}
 984
 985// ClassifiedGodDelete
 986// Delete a classified from the database.
 987// QueryID is needed so database can send a repeat list of 
 988// classified.
 989// viewer -> simulator -> dataserver
 990// reliable
 991{
 992	ClassifiedGodDelete Low 47 NotTrusted Unencoded
 993	{
 994		AgentData	Single
 995		{	AgentID			LLUUID		}
 996		{	SessionID		LLUUID		}
 997	}
 998	{
 999		Data	Single
1000		{	ClassifiedID	LLUUID		}
1001		{	QueryID			LLUUID		}
1002	}
1003}
1004
1005
1006// DirLandQuery viewer->sim
1007// Special query for the land for sale/auction panel.
1008// reliable
1009{
1010	DirLandQuery Low 48 NotTrusted Zerocoded
1011	{
1012		AgentData			Single
1013		{	AgentID			LLUUID	}
1014		{	SessionID		LLUUID	}
1015	}
1016	{
1017		QueryData			Single
1018		{	QueryID			LLUUID	}
1019		{	QueryFlags		U32		}
1020		{	SearchType		U32		}
1021		{	Price			S32		}
1022		{	Area			S32		}
1023		{	QueryStart		S32		}
1024	}
1025}
1026
1027// DirLandQueryBackend sim->dataserver
1028// Special query for the land for sale/auction panel.
1029{
1030	DirLandQueryBackend Low 49 Trusted Zerocoded
1031	{
1032		AgentData			Single
1033		{	AgentID			LLUUID	}
1034	}
1035	{
1036		QueryData			Single
1037		{	QueryID			LLUUID	}
1038		{	QueryFlags		U32		}
1039		{	SearchType		U32		}
1040		{	Price			S32		}
1041		{	Area			S32		}
1042		{	QueryStart		S32		}
1043		{	EstateID		U32		}
1044		{	Godlike			BOOL	}
1045	}
1046}
1047
1048// DirLandReply
1049// dataserver -> simulator -> viewer
1050// reliable
1051{
1052	DirLandReply Low 50 Trusted Zerocoded UDPDeprecated
1053	{
1054		AgentData			Single
1055		{	AgentID			LLUUID	}
1056	}
1057	{
1058		QueryData			Single
1059		{	QueryID			LLUUID		}
1060	}
1061	{
1062		QueryReplies		Variable
1063		{	ParcelID		LLUUID		}
1064		{	Name			Variable 1	}
1065		{	Auction			BOOL		}
1066		{	ForSale			BOOL		}
1067		{	SalePrice		S32			}
1068		{	ActualArea		S32			}
1069		//{	ProductSKU		Variable 1	}
1070	}
1071}
1072
1073// DEPRECATED: DirPopularQuery viewer->sim
1074// Special query for the land for sale/auction panel.
1075// reliable
1076{
1077	DirPopularQuery Low 51 NotTrusted Zerocoded Deprecated
1078	{
1079		AgentData			Single
1080		{	AgentID			LLUUID	}
1081		{	SessionID		LLUUID	}
1082	}
1083	{
1084		QueryData			Single
1085		{	QueryID			LLUUID	}
1086		{	QueryFlags		U32		}
1087	}
1088}
1089
1090// DEPRECATED: DirPopularQueryBackend sim->dataserver
1091// Special query for the land for sale/auction panel.
1092// reliable
1093{
1094	DirPopularQueryBackend Low 52 Trusted Zerocoded Deprecated
1095	{
1096		AgentData			Single
1097		{	AgentID			LLUUID	}
1098	}
1099	{
1100		QueryData			Single
1101		{	QueryID			LLUUID	}
1102		{	QueryFlags		U32		}
1103		{	EstateID		U32		}
1104		{	Godlike			BOOL	}
1105	}
1106}
1107
1108// DEPRECATED: DirPopularReply
1109// dataserver -> simulator -> viewer
1110// reliable
1111{
1112	DirPopularReply Low 53 Trusted Zerocoded Deprecated
1113	{
1114		AgentData			Single
1115		{	AgentID			LLUUID	}
1116	}
1117	{
1118		QueryData			Single
1119		{	QueryID			LLUUID		}
1120	}
1121	{
1122		QueryReplies		Variable
1123		{	ParcelID		LLUUID		}
1124		{	Name			Variable 1	}
1125		{	Dwell			F32			}
1126	}
1127}
1128
1129// ParcelInfoRequest
1130// viewer -> simulator -> dataserver
1131// reliable
1132{
1133	ParcelInfoRequest Low 54 NotTrusted Unencoded
1134	{
1135		AgentData		Single
1136		{	AgentID			LLUUID		}
1137		{	SessionID		LLUUID	}
1138	}
1139	{
1140		Data			Single
1141		{	ParcelID		LLUUID		}
1142	}
1143}
1144
1145// ParcelInfoReply
1146// dataserver -> simulator -> viewer
1147// reliable
1148{
1149	ParcelInfoReply Low 55 Trusted Zerocoded
1150	{
1151		AgentData		Single
1152		{	AgentID			LLUUID		}
1153	}
1154	{
1155		Data			Single
1156		{	ParcelID		LLUUID			}
1157		{	OwnerID			LLUUID			}
1158		{	Name			Variable	1	}
1159		{	Desc			Variable	1	}
1160		{	ActualArea		S32				}
1161		{	BillableArea	S32				}
1162		{	Flags			U8				}
1163		{	GlobalX			F32				}	// meters
1164		{	GlobalY			F32				}	// meters
1165		{	GlobalZ			F32				}	// meters
1166		{	SimName			Variable	1	}
1167		{	SnapshotID		LLUUID			}
1168		{	Dwell			F32				}
1169		{	SalePrice		S32				}
1170		{	AuctionID		S32				}
1171	}
1172}
1173
1174
1175// ParcelObjectOwnersRequest
1176// viewer -> simulator
1177// reliable
1178{
1179	ParcelObjectOwnersRequest Low 56 NotTrusted Unencoded
1180	{
1181		AgentData		Single
1182		{	AgentID			LLUUID		}
1183		{	SessionID		LLUUID	}
1184	}
1185	{
1186		ParcelData		Single
1187		{	LocalID			S32		}
1188	}
1189}
1190
1191
1192// ParcelObjectOwnersReply
1193// simulator -> viewer
1194// reliable
1195{
1196	ParcelObjectOwnersReply Low 57 Trusted Zerocoded UDPDeprecated
1197	{
1198		Data			Variable
1199		{	OwnerID			LLUUID			}
1200		{	IsGroupOwned	BOOL			}
1201		{	Count			S32				}
1202		{	OnlineStatus	BOOL			}
1203	}
1204}
1205
1206// GroupNoticeListRequest
1207// viewer -> simulator -> dataserver
1208// reliable
1209{
1210	GroupNoticesListRequest	Low	58 NotTrusted	Unencoded
1211	{
1212		AgentData        Single
1213		{	AgentID			LLUUID		}
1214		{	SessionID		LLUUID		}
1215	}
1216	{
1217		Data        Single
1218		{	GroupID			LLUUID		}
1219	}
1220}
1221
1222// GroupNoticesListReply
1223// dataserver -> simulator -> viewer
1224// reliable
1225{
1226	GroupNoticesListReply	Low	59 Trusted	Unencoded
1227	{
1228		AgentData	Single
1229		{	AgentID			LLUUID		}
1230		{	GroupID			LLUUID		}
1231	}
1232	{
1233		Data		Variable
1234		{	NoticeID		LLUUID		}
1235		{	Timestamp		U32			}
1236		{	FromName		Variable 2	}
1237		{	Subject			Variable 2	}
1238		{	HasAttachment	BOOL		}
1239		{	AssetType		U8			}
1240	}
1241}
1242
1243// GroupNoticeRequest
1244// viewer -> simulator
1245// simulator -> dataserver
1246// reliable
1247{
1248	GroupNoticeRequest Low 60 NotTrusted Unencoded
1249	{
1250		AgentData        Single
1251		{	AgentID			LLUUID		}
1252		{	SessionID		LLUUID		}
1253	}
1254	{
1255		Data        Single
1256		{	GroupNoticeID	LLUUID		}
1257	}
1258}
1259
1260// GroupNoticeAdd
1261// Add a group notice. 
1262// simulator -> dataserver
1263// reliable
1264{
1265	GroupNoticeAdd Low 61 Trusted Unencoded
1266	{
1267		AgentData	Single
1268		{	AgentID			LLUUID		}
1269	}
1270	{
1271		MessageBlock		Single
1272		{	ToGroupID		LLUUID	}
1273		{	ID				LLUUID	}
1274		{	Dialog			U8	}
1275		{	FromAgentName	Variable	1	}
1276		{	Message			Variable	2	}
1277		{	BinaryBucket	Variable	2	}
1278	}
1279}
1280
1281
1282// ****************************************************************************
1283// Teleport messages
1284//
1285// The teleport messages are numerous, so I have attempted to give them a 
1286// consistent naming convention. Since there is a bit of glob pattern
1287// aliasing, the rules are applied in order.
1288//
1289// Teleport* - viewer->sim or sim->viewer message which announces a 
1290//             teleportation request, progrees, start, or end.
1291// Data* - sim->data or data->sim trusted message.
1292// Space* - sim->space or space->sim trusted messaging
1293// *Lure - A lure message to pass around information.
1294//
1295// All actual viewer teleports will begin with a Teleport* message and
1296// end in a TeleportStart, TeleportLocal or TeleportFailed message. The TeleportFailed
1297// message may be returned by any process and must be routed through the
1298// teleporting agent's simulator and back to the viewer.
1299// ****************************************************************************
1300
1301// TeleportRequest
1302// viewer -> sim specifying exact teleport destination
1303{
1304	TeleportRequest	Low	62 NotTrusted Unencoded
1305	{
1306		AgentData	Single
1307		{	AgentID		LLUUID		}
1308		{	SessionID	LLUUID		}
1309	}
1310	{
1311		Info		Single
1312		{	RegionID	LLUUID		}
1313		{	Position	LLVector3	}
1314		{	LookAt		LLVector3	}
1315	}
1316}
1317
1318// TeleportLocationRequest
1319// viewer -> sim specifying exact teleport destination
1320{
1321	TeleportLocationRequest	Low	63 NotTrusted Unencoded
1322	{
1323		AgentData	Single
1324		{	AgentID		LLUUID		}
1325		{	SessionID	LLUUID		}
1326	}
1327	{
1328		Info	Single
1329		{	RegionHandle	U64			}
1330		{	Position		LLVector3	}
1331		{	LookAt			LLVector3	}
1332	}
1333}
1334
1335// TeleportLocal
1336// sim -> viewer reply telling the viewer that we've successfully TP'd
1337// to somewhere else within the sim
1338{
1339	TeleportLocal Low 64 Trusted Unencoded
1340	{
1341		Info		Single
1342		{	AgentID			LLUUID			}
1343		{	LocationID		U32				}
1344		{	Position		LLVector3		}	// region
1345		{	LookAt			LLVector3		}
1346		{	TeleportFlags 	U32				}
1347	}
1348}
1349
1350// TeleportLandmarkRequest viewer->sim
1351// teleport to landmark asset ID destination. use LLUUD::null for home.
1352{
1353	TeleportLandmarkRequest Low 65 NotTrusted Zerocoded
1354	{
1355		Info		Single
1356		{	AgentID			LLUUID	}
1357		{	SessionID		LLUUID	}
1358		{	LandmarkID		LLUUID	}
1359	}
1360}
1361
1362// TeleportProgress sim->viewer
1363// Tell the agent how the teleport is going.
1364{
1365	TeleportProgress Low 66 Trusted Unencoded
1366	{
1367		AgentData		Single
1368		{	AgentID		LLUUID	}
1369	}
1370	{
1371		Info			Single
1372		{	TeleportFlags	U32			}
1373		{	Message		Variable	1	}  // string
1374	}
1375}
1376
1377// DataHomeLocationRequest sim->data
1378// Request 
1379{
1380	DataHomeLocationRequest Low 67 Trusted Zerocoded
1381	{
1382		Info		Single
1383		{	AgentID			LLUUID	}
1384		{	KickedFromEstateID	U32	}
1385	}
1386	{
1387		AgentInfo	Single
1388		{   AgentEffectiveMaturity U32  }
1389	}
1390}
1391
1392// DataHomeLocationReply data->sim
1393// response is the location of agent home.
1394{
1395	DataHomeLocationReply Low 68 Trusted Unencoded
1396	{
1397		Info		Single
1398		{	AgentID			LLUUID		}
1399		{	RegionHandle	U64			}
1400		{	Position		LLVector3	}	// region coords
1401		{	LookAt			LLVector3	}
1402	}
1403}
1404
1405
1406// TeleportFinish sim->viewer
1407// called when all of the information has been collected and readied for 
1408// the agent.
1409{
1410	TeleportFinish Low 69 Trusted Unencoded UDPBlackListed
1411	{
1412		Info		Single
1413		{	AgentID			LLUUID			}
1414		{	LocationID		U32				}
1415		{	SimIP			IPADDR			}
1416		{	SimPort			IPPORT			}
1417		{	RegionHandle	U64				}
1418		{	SeedCapability	Variable	2	}	// URL
1419		{	SimAccess		U8				}
1420		{	TeleportFlags 	U32				}
1421	}
1422}
1423
1424// StartLure viewer->sim
1425// Sent from viewer to the local simulator to lure target id to near 
1426// agent id. This will generate an instant message that will be routed 
1427// through the space server and out to the userserver. When that IM 
1428// goes through the userserver and the TargetID is online, the 
1429// userserver will send an InitializeLure to the spaceserver. When that
1430// packet is acked, the original instant message is finally forwarded to 
1431// TargetID.
1432{
1433	StartLure	Low	70 NotTrusted Unencoded
1434	{
1435		AgentData	Single
1436		{	AgentID			LLUUID			}
1437		{	SessionID		LLUUID			}
1438	}
1439	{
1440		Info	Single
1441		{	LureType 		U8	 			}
1442		{	Message			Variable	1	}
1443	}
1444	{
1445		TargetData Variable
1446		{	TargetID		LLUUID			}
1447	}
1448}
1449
1450// TeleportLureRequest viewer->sim
1451// Message from target of lure to begin the teleport process on the 
1452// local simulator.
1453{
1454	TeleportLureRequest	Low	71 NotTrusted Unencoded
1455	{
1456		Info	Single
1457		{	AgentID		LLUUID	}
1458		{	SessionID	LLUUID	}
1459		{	LureID		LLUUID	}
1460		{	TeleportFlags 	U32				}
1461	}
1462}
1463
1464// TeleportCancel viewer->sim
1465// reliable
1466{
1467	TeleportCancel	Low	72 NotTrusted Unencoded
1468	{
1469		Info	Single
1470		{	AgentID		LLUUID	}
1471		{	SessionID	LLUUID	}
1472	}
1473}
1474
1475
1476// TeleportStart sim->viewer
1477// announce a successful teleport request to the viewer.
1478{
1479	TeleportStart Low 73 Trusted Unencoded
1480	{
1481		Info	Single
1482		{	TeleportFlags	U32		}
1483	}
1484}
1485
1486// TeleportFailed somewhere->sim->viewer
1487// announce failure of teleport request
1488{
1489	TeleportFailed Low 74 Trusted Unencoded
1490	{
1491		Info		Single
1492		{	AgentID		LLUUID			}
1493		{	Reason		Variable	1	}  // string
1494	}
1495	{
1496		AlertInfo			Variable
1497		{	Message			Variable	1	}	// string id
1498		{	ExtraParams		Variable	1	}	// llsd extra parameters
1499	}
1500}
1501
1502
1503// ***************************************************************************
1504// Viewer to Simulator Messages
1505// ***************************************************************************
1506
1507// Undo
1508{
1509	Undo Low 75 NotTrusted Unencoded
1510	{
1511		AgentData		Single
1512		{	AgentID		LLUUID	}
1513		{	SessionID	LLUUID	}
1514		{	GroupID		LLUUID	}
1515	}
1516	{
1517		ObjectData		Variable
1518		{	ObjectID	LLUUID	}
1519	}
1520}
1521
1522
1523// Redo
1524{
1525	Redo Low 76 NotTrusted Unencoded
1526	{
1527		AgentData		Single
1528		{	AgentID		LLUUID	}
1529		{	SessionID	LLUUID	}
1530		{	GroupID		LLUUID	}
1531	}
1532	{
1533		ObjectData		Variable
1534		{	ObjectID	LLUUID	}
1535	}
1536}
1537
1538// UndoLand
1539{
1540	UndoLand Low 77 NotTrusted Unencoded
1541	{
1542		AgentData		Single
1543		{	AgentID		LLUUID	}
1544		{	SessionID	LLUUID	}
1545	}
1546}
1547
1548
1549// AgentPause - viewer occasionally will block, inform simulator of this fact
1550{
1551	AgentPause Low 78 NotTrusted Unencoded
1552	{
1553		AgentData			Single
1554		{	AgentID		LLUUID	}
1555		{	SessionID	LLUUID	}
1556		{	SerialNum	U32		}	// U32, used by both pause and resume. Non-increasing numbers are ignored.
1557	}
1558}
1559
1560// AgentResume - unblock the agent
1561{
1562	AgentResume Low 79 NotTrusted Unencoded
1563	{
1564		AgentData			Single
1565		{	AgentID		LLUUID	}
1566		{	SessionID	LLUUID	}
1567		{	SerialNum	U32		}	// U32, used by both pause and resume. Non-increasing numbers are ignored.
1568	}
1569}
1570
1571
1572// AgentUpdate - Camera info sent from viewer to simulator
1573// or, more simply, two axes and compute cross product
1574// State data is temporary, indicates current behavior state:
1575//	0 = walking
1576//  1 = mouselook
1577//  2 = typing 
1578//  
1579// Center is region local (JNC 8.16.2001)
1580// Camera center is region local (JNC 8.29.2001)
1581{
1582	AgentUpdate High 4 NotTrusted Zerocoded
1583	{
1584		AgentData			Single
1585		{	AgentID			LLUUID	}
1586		{	SessionID		LLUUID	}
1587		{	BodyRotation	LLQuaternion	}
1588		{	HeadRotation	LLQuaternion	}
1589		{	State			U8	}
1590		{	CameraCenter	LLVector3	}
1591		{	CameraAtAxis	LLVector3	}
1592		{	CameraLeftAxis	LLVector3	}
1593		{	CameraUpAxis	LLVector3	}
1594		{	Far				F32	}
1595		{	ControlFlags	U32	}
1596		{	Flags			U8	}
1597	}
1598}
1599
1600// ChatFromViewer
1601// Specifies the text to be said and the "type", 
1602// normal speech, shout, whisper.
1603// with the specified radius
1604{
1605	ChatFromViewer Low 80 NotTrusted Zerocoded
1606	{
1607		AgentData			Single
1608		{	AgentID			LLUUID		}
1609		{	SessionID		LLUUID		}
1610	}
1611	{
1612		ChatData			Single
1613		{	Message			Variable 2	}
1614		{	Type			U8			}
1615		{	Channel			S32			}
1616	}
1617}
1618
1619
1620// AgentThrottle
1621{
1622	AgentThrottle Low 81 NotTrusted Zerocoded
1623	{
1624		AgentData			Single
1625		{	AgentID			LLUUID		}
1626		{	SessionID		LLUUID		}
1627		{	CircuitCode		U32		}
1628	}
1629	{
1630		Throttle			Single
1631		{	GenCounter		U32		}
1632		{	Throttles		Variable 1	}
1633	}
1634}
1635
1636
1637// AgentFOV - Update to agent's field of view, angle is vertical, single F32 float in radians
1638{
1639	AgentFOV Low 82 NotTrusted Unencoded
1640	{
1641		AgentData			Single
1642		{	AgentID			LLUUID		}
1643		{	SessionID		LLUUID		}
1644		{	CircuitCode		U32		}
1645	}
1646	{
1647		FOVBlock			Single
1648		{	GenCounter		U32		}
1649		{	VerticalAngle	F32	}
1650	}
1651}
1652
1653
1654// AgentHeightWidth - Update to height and aspect, sent as height/width to save space
1655// Usually sent when window resized or created
1656{
1657	AgentHeightWidth Low 83 NotTrusted Unencoded
1658	{
1659		AgentData			Single
1660		{	AgentID			LLUUID		}
1661		{	SessionID		LLUUID		}
1662		{	CircuitCode		U32		}
1663	}
1664	{
1665		HeightWidthBlock	Single
1666		{	GenCounter		U32		}
1667		{	Height			U16	}
1668		{	Width			U16	}
1669	}
1670}
1671
1672
1673// AgentSetAppearance - Update to agent appearance
1674{
1675	AgentSetAppearance Low 84 NotTrusted Zerocoded
1676	{
1677		AgentData			Single
1678		{	AgentID			LLUUID		}
1679		{	SessionID		LLUUID		}
1680		{	SerialNum		U32	}	// U32, Increases every time the appearance changes. A value of 0 resets.
1681		{ 	Size			LLVector3	}
1682	}
1683	{
1684		WearableData		Variable
1685		{	CacheID			LLUUID }
1686		{	TextureIndex	U8 }
1687	}
1688	{
1689		ObjectData			Single
1690		{	TextureEntry	Variable	2	}
1691	}
1692	{
1693		VisualParam			Variable
1694		{	ParamValue		U8	}
1695	}
1696}
1697
1698// AgentAnimation - Update animation state
1699// viewer --> simulator
1700{
1701	AgentAnimation High 5 NotTrusted Unencoded
1702	{
1703		AgentData			Single
1704		{	AgentID			LLUUID		}
1705		{	SessionID		LLUUID		}
1706	}
1707	{
1708		AnimationList Variable
1709		{ AnimID		LLUUID }
1710		{ StartAnim		BOOL }
1711	}
1712	{
1713		PhysicalAvatarEventList Variable
1714		{ TypeData		Variable	1 }
1715	}
1716}
1717
1718// AgentRequestSit - Try to sit on an object
1719{
1720	AgentRequestSit		High 6  NotTrusted Zerocoded
1721	{
1722		AgentData			Single
1723		{	AgentID			LLUUID		}
1724		{	SessionID		LLUUID		}
1725	}
1726	{
1727		TargetObject	Single
1728		{	TargetID	LLUUID	}
1729		{	Offset		LLVector3	}
1730	}
1731}
1732
1733// AgentSit - Actually sit on object
1734{
1735	AgentSit			High 7  NotTrusted Unencoded
1736	{
1737		AgentData			Single
1738		{	AgentID			LLUUID		}
1739		{	SessionID		LLUUID		}
1740	}
1741}
1742
1743
1744// quit message sent between simulators
1745{
1746	AgentQuitCopy Low 85 NotTrusted Unencoded
1747	{
1748		AgentData			Single
1749		{	AgentID			LLUUID		}
1750		{	SessionID		LLUUID		}
1751	}
1752	{
1753		FuseBlock			Single
1754		{	ViewerCircuitCode	U32	}
1755	}
1756}
1757
1758
1759// Request Image - Sent by the viewer to request a specified image at a specified resolution
1760
1761{
1762	RequestImage High 8 NotTrusted Unencoded
1763	{
1764		AgentData			Single
1765		{	AgentID			LLUUID		}
1766		{	SessionID		LLUUID		}
1767	}
1768	{
1769		RequestImage			Variable
1770		{	Image				LLUUID	}
1771		{	DiscardLevel		S8	}
1772		{	DownloadPriority	F32	}
1773		{	Packet				U32	}
1774		{	Type				U8	}
1775	}
1776}
1777
1778// ImageNotInDatabase
1779// Simulator informs viewer that a requsted image definitely does not exist in the asset database
1780{
1781	ImageNotInDatabase Low 86 Trusted Unencoded
1782	{
1783		ImageID				Single
1784		{	ID				LLUUID	}
1785	}
1786}
1787
1788// RebakeAvatarTextures
1789// simulator -> viewer request when a temporary baked avatar texture is not found
1790{
1791	RebakeAvatarTextures Low 87 Trusted Unencoded
1792	{
1793		TextureData			Single
1794		{	TextureID		LLUUID	}
1795	}
1796}
1797
1798
1799// SetAlwaysRun
1800// Lets the viewer choose between running and walking
1801{
1802	SetAlwaysRun Low 88 NotTrusted Unencoded
1803	{
1804		AgentData				Single
1805		{	AgentID			LLUUID	}
1806		{	SessionID		LLUUID	}
1807		{	AlwaysRun		BOOL	}
1808	}
1809}
1810
1811// ObjectAdd - create new object in the world
1812// Simulator will assign ID and send message back to signal
1813// object actually created.
1814//
1815// AddFlags (see also ObjectUpdate)
1816// 0x01 - use physics
1817// 0x02 - create selected
1818//
1819// If only one ImageID is sent for an object type that has more than
1820// one face, the same image is repeated on each subsequent face.
1821// 
1822// Data field is opaque type-specific data for this object
1823{
1824	ObjectAdd Medium 1 NotTrusted Zerocoded
1825	{
1826		AgentData		Single
1827		{	AgentID		LLUUID	}
1828		{	SessionID	LLUUID	}
1829		{	GroupID			LLUUID	}
1830	}
1831	{
1832		ObjectData			Single
1833		{	PCode			U8	}
1834		{	Material		U8	}
1835		{	AddFlags		U32	}	// see object_flags.h
1836
1837		{	PathCurve		U8	}
1838		{	ProfileCurve	U8	}
1839		{	PathBegin		U16	}	// 0 to 1, quanta = 0.01
1840		{	PathEnd			U16	}	// 0 to 1, quanta = 0.01
1841		{	PathScaleX		U8	}	// 0 to 1, quanta = 0.01
1842		{	PathScaleY		U8	}	// 0 to 1, quanta = 0.01
1843		{	PathShearX		U8	}	// -.5 to .5, quanta = 0.01
1844		{	PathShearY		U8	}	// -.5 to .5, quanta = 0.01
1845		{	PathTwist		S8	}	// -1 to 1, quanta = 0.01
1846		{	PathTwistBegin		S8	}	// -1 to 1, quanta = 0.01
1847		{ 	PathRadiusOffset 	S8	} 	// -1 to 1, quanta = 0.01
1848		{ 	PathTaperX		S8	}	// -1 to 1, quanta = 0.01
1849		{	PathTaperY		S8	}	// -1 to 1, quanta = 0.01
1850		{	PathRevolutions		U8	}	// 0 to 3, quanta = 0.015
1851		{	PathSkew		S8	}	// -1 to 1, quanta = 0.01
1852		{	ProfileBegin	U16	}	// 0 to 1, quanta = 0.01
1853		{	ProfileEnd		U16	}	// 0 to 1, quanta = 0.01
1854		{	ProfileHollow	U16	}	// 0 to 1, quanta = 0.01
1855
1856		{	BypassRaycast	U8	}
1857		{	RayStart		LLVector3	}
1858		{	RayEnd			LLVector3	}
1859		{	RayTargetID		LLUUID	}
1860		{	RayEndIsIntersection	U8	}
1861
1862		{	Scale			LLVector3	}
1863		{	Rotation		LLQuaternion	}
1864
1865		{	State			U8	}
1866	}
1867}
1868
1869
1870// ObjectDelete
1871// viewer -> simulator
1872{
1873	ObjectDelete Low 89 NotTrusted Zerocoded
1874	{
1875		AgentData		Single
1876		{	AgentID		LLUUID	}
1877		{	SessionID	LLUUID	}
1878		{	Force		BOOL	}	// BOOL, god trying to force delete
1879	}
1880	{
1881		ObjectData		Variable
1882		{	ObjectLocalID	U32	}
1883	}
1884}
1885
1886
1887// ObjectDuplicate
1888// viewer -> simulator
1889// Makes a copy of a set of objects, offset by a given amount
1890{
1891	ObjectDuplicate Low 90 NotTrusted Zerocoded
1892	{
1893		AgentData		Single
1894		{	AgentID		LLUUID	}
1895		{	SessionID	LLUUID	}
1896		{	GroupID		LLUUID	}
1897	}
1898	{
1899		SharedData			Single
1900		{	Offset			LLVector3	}
1901		{	DuplicateFlags	U32			}	// see object_flags.h
1902	}
1903	{
1904		ObjectData			Variable
1905		{	ObjectLocalID		U32		}
1906	}
1907}
1908
1909
1910// ObjectDuplicateOnRay
1911// viewer -> simulator
1912// Makes a copy of an object, using the add object raycast
1913// code to abut it to other objects.
1914{
1915	ObjectDuplicateOnRay Low 91 NotTrusted Zerocoded
1916	{
1917		AgentData		Single
1918		{	AgentID					LLUUID	}
1919		{	SessionID				LLUUID	}
1920		{	GroupID					LLUUID	}
1921		{	RayStart				LLVector3	}	// region local
1922		{	RayEnd					LLVector3	}	// region local
1923		{	BypassRaycast			BOOL	}
1924		{	RayEndIsIntersection	BOOL	}
1925		{	CopyCenters				BOOL	}
1926		{	CopyRotates				BOOL	}
1927		{	RayTargetID				LLUUID	}
1928		{	DuplicateFlags			U32		}	// see object_flags.h
1929	}
1930	{
1931		ObjectData			Variable
1932		{	ObjectLocalID			U32		}
1933	}
1934}
1935
1936
1937// MultipleObjectUpdate
1938// viewer -> simulator
1939// updates position, rotation and scale in one message
1940// positions sent as region-local floats
1941{
1942	MultipleObjectUpdate Medium 2 NotTrusted Zerocoded
1943	{
1944		AgentData		Single
1945		{	AgentID			LLUUID	}
1946		{	SessionID		LLUUID	}
1947	}
1948	{
1949		ObjectData		Variable 
1950		{	ObjectLocalID	U32		}
1951		{   Type			U8		}
1952		{	Data			Variable	1	}	// custom type
1953	}
1954}
1955
1956// RequestMultipleObjects
1957// viewer -> simulator
1958// reliable
1959//
1960// When the viewer gets a local_id/crc for an object that
1961// it either doesn't have, or doesn't have the current version
1962// of, it sends this upstream get get an update.
1963//
1964// CacheMissType 0 => full object (viewer doesn't have it)
1965// CacheMissType 1 => CRC mismatch only
1966{
1967	RequestMultipleObjects Medium 3 NotTrusted Zerocoded
1968	{
1969		AgentData		Single
1970		{	AgentID		LLUUID	}
1971		{	SessionID		LLUUID	}
1972	}
1973	{
1974		ObjectData	Variable 
1975		{	CacheMissType	U8	}
1976		{	ID				U32	}
1977	}
1978}
1979
1980
1981// DEPRECATED: ObjectPosition
1982// == Old Behavior ==
1983// Set the position on objects
1984//
1985// == Reason for deprecation ==
1986// Unused code path was removed in the move to Havok4
1987// Object position, scale and rotation messages were already unified
1988// to MultipleObjectUpdate and this message was unused cruft.
1989//
1990// == New Location ==
1991// MultipleObjectUpdate can be used instead.
1992{
1993	ObjectPosition Medium 4 NotTrusted Zerocoded Deprecated
1994	{
1995		AgentData		Single
1996		{	AgentID		LLUUID	}
1997		{	SessionID	LLUUID	}
1998	}
1999	{
2000		ObjectData		Variable
2001		{	ObjectLocalID	U32			}
2002		{	Position		LLVector3	}	// region
2003	}
2004}
2005
2006
2007// DEPRECATED: ObjectScale
2008// == Old Behavior ==
2009// Set the scale on objects
2010//
2011// == Reason for deprecation ==
2012// Unused code path was removed in the move to Havok4
2013// Object position, scale and rotation messages were already unified
2014// to MultipleObjectUpdate and this message was unused cruft.
2015//
2016// == New Location ==
2017// MultipleObjectUpdate can be used instead.
2018{
2019	ObjectScale Low 92 NotTrusted Zerocoded Deprecated
2020	{
2021		AgentData		Single
2022		{	AgentID		LLUUID	}
2023		{	SessionID	LLUUID	}
2024	}
2025	{
2026		ObjectData		Variable
2027		{	ObjectLocalID	U32			}
2028		{	Scale			LLVector3	}
2029	}
2030}
2031
2032
2033// ObjectRotation
2034// viewer -> simulator
2035{
2036	ObjectRotation Low 93 NotTrusted Zerocoded
2037	{
2038		AgentData		Single
2039		{	AgentID		LLUUID	}
2040		{	SessionID	LLUUID	}
2041	}
2042	{
2043		ObjectData		Variable
2044		{	ObjectLocalID	U32				}
2045		{	Rotation		LLQuaternion	}
2046	}
2047}
2048
2049
2050// ObjectFlagUpdate
2051// viewer -> simulator
2052{
2053	ObjectFlagUpdate Low 94 NotTrusted Zerocoded
2054	{
2055		AgentData		Single
2056		{	AgentID		LLUUID	}
2057		{	SessionID	LLUUID	}
2058		{	ObjectLocalID	U32		}
2059		{	UsePhysics		BOOL	}
2060		{	IsTemporary		BOOL	}
2061		{	IsPhantom		BOOL	}
2062		{	CastsShadows	BOOL	}
2063	}
2064    {
2065		ExtraPhysics        Variable
2066		{   PhysicsShapeType U8     }
2067        {   Density          F32    }
2068        {   Friction         F32    }
2069        {   Restitution      F32    }
2070        {   GravityMultiplier    F32    }
2071
2072	}
2073}
2074
2075
2076// ObjectClickAction
2077// viewer -> simulator
2078{
2079	ObjectClickAction Low 95 NotTrusted Zerocoded
2080	{
2081		AgentData		Single
2082		{	AgentID		LLUUID	}
2083		{	SessionID	LLUUID	}
2084	}
2085	{
2086		ObjectData		Variable
2087		{	ObjectLocalID	U32		}
2088		{	ClickAction		U8		}
2089	}
2090}
2091
2092
2093// ObjectImage
2094// viewer -> simulator
2095{
2096	ObjectImage Low 96 NotTrusted Zerocoded
2097	{
2098		AgentData		Single
2099		{	AgentID		LLUUID	}
2100		{	SessionID	LLUUID	}
2101	}
2102	{
2103		ObjectData			Variable
2104		{	ObjectLocalID		U32				}
2105		{	MediaURL			Variable	1	}
2106		{	TextureEntry		Variable	2	}
2107	}
2108}
2109
2110
2111{
2112	ObjectMaterial Low 97 NotTrusted Zerocoded
2113	{
2114		AgentData		Single
2115		{	AgentID		LLUUID	}
2116		{	SessionID	LLUUID	}
2117	}
2118	{
2119		ObjectData		Variable
2120		{	ObjectLocalID	U32	}
2121		{	Material	U8	}
2122	}
2123}
2124
2125
2126{
2127	ObjectShape Low 98 NotTrusted Zerocoded
2128	{
2129		AgentData		Single
2130		{	AgentID		LLUUID	}
2131		{	SessionID	LLUUID	}
2132	}
2133	{
2134		ObjectData			Variable
2135		{	ObjectLocalID	U32	}
2136		{	PathCurve		U8	}
2137		{	ProfileCurve	U8	}
2138		{	PathBegin		U16	}	// 0 to 1, quanta = 0.01
2139		{	PathEnd			U16	}	// 0 to 1, quanta = 0.01
2140		{	PathScaleX		U8	}	// 0 to 1, quanta = 0.01
2141		{	PathScaleY		U8	}	// 0 to 1, quanta = 0.01
2142		{	PathShearX		U8	}	// -.5 to .5, quanta = 0.01
2143		{	PathShearY		U8	}	// -.5 to .5, quanta = 0.01
2144		{	PathTwist		S8	}	// -1 to 1, quanta = 0.01
2145		{	PathTwistBegin		S8	}	// -1 to 1, quanta = 0.01
2146		{ 	PathRadiusOffset 	S8	} 	// -1 to 1, quanta = 0.01
2147		{ 	PathTaperX		S8	}	// -1 to 1, quanta = 0.01
2148		{	PathTaperY		S8	}	// -1 to 1, quanta = 0.01
2149		{	PathRevolutions		U8	}	// 0 to 3, quanta = 0.015
2150		{	PathSkew		S8	}	// -1 to 1, quanta = 0.01
2151		{	ProfileBegin	U16	}	// 0 to 1, quanta = 0.01
2152		{	ProfileEnd		U16	}	// 0 to 1, quanta = 0.01
2153		{	ProfileHollow	U16	}	// 0 to 1, quanta = 0.01
2154	}
2155}
2156
2157{
2158	ObjectExtraParams Low 99 NotTrusted Zerocoded
2159	{
2160		AgentData		Single
2161		{	AgentID		LLUUID	}
2162		{	SessionID	LLUUID	}
2163	}
2164	{
2165		ObjectData			Variable
2166		{	ObjectLocalID	U32				}
2167		{	ParamType		U16				}
2168		{	ParamInUse		BOOL			}
2169		{	ParamSize		U32				}
2170		{	ParamData		Variable	1	}
2171	}
2172}
2173
2174
2175// ObjectOwner
2176// To make public, set OwnerID to LLUUID::null.
2177// TODO: Eliminate god-bit. Maybe not. God-bit is ok, because it's
2178// known on the server.
2179{
2180	ObjectOwner Low 100 NotTrusted Zerocoded
2181	{
2182		AgentData		Single
2183		{	AgentID		LLUUID	}
2184		{	SessionID	LLUUID	}
2185	}
2186	{
2187		HeaderData		Single
2188		{	Override	BOOL	}	// BOOL, God-bit.
2189		{	OwnerID		LLUUID	}
2190		{	GroupID		LLUUID	}
2191	}
2192	{
2193		ObjectData	Variable
2194		{	ObjectLocalID	U32	}
2195	}
2196}
2197
2198// ObjectGroup
2199// To make the object part of no group, set GroupID = LLUUID::null.
2200// This call only works if objectid.ownerid == agentid.
2201{
2202	ObjectGroup	Low	101 NotTrusted Zerocoded
2203	{
2204		AgentData	Single
2205		{	AgentID		LLUUID	}
2206		{	SessionID	LLUUID	}
2207		{	GroupID		LLUUID	}
2208	}
2209	{
2210		ObjectData	Variable
2211		{	ObjectLocalID	U32	}
2212	}
2213}
2214
2215// Attempt to buy an object. This will only pack root objects.
2216{
2217	ObjectBuy Low 102 NotTrusted Zerocoded
2218	{
2219		AgentData		Single
2220		{	AgentID		LLUUID	}
2221		{	SessionID	LLUUID	}
2222		{	GroupID		LLUUID	}
2223		{	CategoryID	LLUUID	}	// folder where it goes (if derezed)
2224	}
2225	{
2226		ObjectData		Variable
2227		{	ObjectLocalID	U32	}
2228		{	SaleType		U8	}   // U8 -> EForSale
2229		{	SalePrice		S32	}
2230	}
2231}
2232
2233// viewer -> simulator
2234
2235// buy object inventory. If the transaction succeeds, it will add
2236// inventory to the agent, and potentially remove the original.
2237{
2238	BuyObjectInventory	Low	103 NotTrusted Zerocoded
2239	{
2240		AgentData		Single
2241		{	AgentID		LLUUID	}
2242		{	SessionID	LLUUID	}
2243	}
2244	{
2245		Data	Single
2246		{	ObjectID	LLUUID	}
2247		{	ItemID		LLUUID	}
2248		{	FolderID	LLUUID	}
2249	}
2250}
2251
2252// sim -> viewer
2253// Used to propperly handle buying asset containers
2254{
2255	DerezContainer		Low	104 	Trusted Zerocoded
2256	{
2257		Data			Single
2258		{	ObjectID	LLUUID	}
2259		{	Delete		BOOL	}  // BOOL
2260	}
2261}
2262
2263// ObjectPermissions
2264// Field - see llpermissionsflags.h
2265// If Set is true, tries to turn on bits in mask.
2266// If set is false, tries to turn off bits in mask.
2267// BUG: This just forces the permissions field.
2268{
2269	ObjectPermissions Low 105 NotTrusted Zerocoded
2270	{
2271		AgentData		Single
2272		{	AgentID		LLUUID	}
2273		{	SessionID	LLUUID	}
2274	}
2275	{
2276		HeaderData		Single
2277		{	Override	BOOL	}	// BOOL, God-bit.
2278	}
2279	{
2280		ObjectData	Variable
2281		{	ObjectLocalID	U32	}
2282		{	Field		U8	}
2283		{	Set			U8	}
2284		{	Mask		U32	}
2285	}
2286}
2287
2288// set object sale information
2289{
2290	ObjectSaleInfo Low 106 NotTrusted Zerocoded
2291	{
2292		AgentData			Single
2293		{	AgentID			LLUUID	}
2294		{	SessionID		LLUUID	}
2295	}
2296	{
2297		ObjectData			Variable
2298		{	LocalID			U32	}
2299		{	SaleType		U8	}   // U8 -> EForSale
2300		{	SalePrice		S32	}
2301	}
2302}
2303
2304
2305// set object names
2306{
2307	ObjectName Low 107 NotTrusted Zerocoded
2308	{
2309		AgentData		Single
2310		{	AgentID		LLUUID	}
2311		{	SessionID	LLUUID	}
2312	}
2313	{
2314		ObjectData		Variable
2315		{	LocalID		U32	}
2316		{	Name		Variable	1	}
2317	}
2318}
2319
2320// set object descriptions
2321{
2322	ObjectDescription Low 108 NotTrusted Zerocoded
2323	{
2324		AgentData		Single
2325		{	AgentID		LLUUID	}
2326		{	SessionID	LLUUID	}
2327	}
2328	{
2329		ObjectData		Variable
2330		{	LocalID		U32	}
2331		{	Description	Variable	1	}
2332	}
2333}
2334
2335// set object category
2336{
2337	ObjectCategory Low 109 NotTrusted Zerocoded
2338	{
2339		AgentData		Single
2340		{	AgentID		LLUUID	}
2341		{	SessionID	LLUUID	}
2342	}
2343	{
2344		ObjectData		Variable
2345		{	LocalID		U32	}
2346		{	Category	U32	}
2347	}
2348}
2349
2350// ObjectSelect
2351// Variable object data because rectangular selection can
2352// generate a large list very quickly.
2353{
2354	ObjectSelect Low 110 NotTrusted Zerocoded
2355	{
2356		AgentData		Single
2357		{	AgentID		LLUUID	}
2358		{	SessionID	LLUUID	}
2359	}
2360	{
2361		ObjectData		Variable
2362		{	ObjectLocalID	U32	}
2363	}
2364
2365}
2366
2367
2368// ObjectDeselect
2369{
2370	ObjectDeselect Low 111 NotTrusted Zerocoded
2371	{
2372		AgentData		Single
2373		{	AgentID		LLUUID	}
2374		{	SessionID	LLUUID	}
2375	}
2376	{
2377		ObjectData		Variable
2378		{	ObjectLocalID	U32	}
2379	}
2380
2381}
2382
2383// ObjectAttach
2384{
2385	ObjectAttach Low 112 NotTrusted Zerocoded
2386	{
2387		AgentData		Single
2388		{	AgentID		LLUUID	}
2389		{	SessionID	LLUUID	}
2390		{	AttachmentPoint	U8	}
2391	}
2392	{
2393		ObjectData		Variable
2394		{	ObjectLocalID	U32				}
2395		{	Rotation		LLQuaternion	}
2396	}
2397}
2398
2399// ObjectDetach -- derezzes an attachment, marking its item in your inventory as not "(worn)"
2400{
2401	ObjectDetach Low 113 NotTrusted Unencoded
2402	{
2403		AgentData		Single
2404		{	AgentID		LLUUID	}
2405		{	SessionID	LLUUID	}
2406	}
2407	{
2408		ObjectData		Variable
2409		{	ObjectLocalID	U32	}
2410	}
2411}
2412
2413
2414// ObjectDrop -- drops an attachment from your avatar onto the ground
2415{
2416	ObjectDrop Low 114 NotTrusted Unencoded
2417	{
2418		AgentData		Single
2419		{	AgentID		LLUUID	}
2420		{	SessionID	LLUUID	}
2421	}
2422	{
2423		ObjectData		Variable
2424		{	ObjectLocalID	U32	}
2425	}
2426}
2427
2428
2429// ObjectLink
2430{
2431	ObjectLink Low 115 NotTrusted Unencoded
2432	{
2433		AgentData		Single
2434		{	AgentID		LLUUID	}
2435		{	SessionID	LLUUID	}
2436	}
2437	{
2438		ObjectData		Variable
2439		{	ObjectLocalID	U32	}
2440	}
2441}
2442
2443// ObjectDelink
2444{
2445	ObjectDelink Low 116 NotTrusted Unencoded
2446	{
2447		AgentData		Single
2448		{	AgentID		LLUUID	}
2449		{	SessionID	LLUUID	}
2450	}
2451	{
2452		ObjectData		Variable
2453		{	ObjectLocalID	U32	}
2454	}
2455}
2456
2457
2458// ObjectGrab
2459{
2460	ObjectGrab Low 117 NotTrusted Zerocoded
2461	{
2462		AgentData		Single
2463		{	AgentID		LLUUID	}
2464		{	SessionID	LLUUID	}
2465	}
2466	{
2467		ObjectData			Single
2468		{	LocalID				U32  }
2469		{	GrabOffset			LLVector3 }
2470	}
2471	{
2472		SurfaceInfo     Variable
2473		{   UVCoord     LLVector3 }
2474		{   STCoord     LLVector3 }
2475       	{   FaceIndex   S32 }
2476       	{   Position    LLVector3 }
2477       	{   Normal      LLVector3 }
2478       	{   Binormal    LLVector3 }
2479	}
2480}
2481
2482
2483// ObjectGrabUpdate
2484// TODO: Quantize this data, reduce message size.
2485// TimeSinceLast could go to 1 byte, since capped
2486// at 100 on sim.
2487{
2488	ObjectGrabUpdate Low 118 NotTrusted Zerocoded
2489	{
2490		AgentData	Single
2491		{	AgentID		LLUUID	}
2492		{	SessionID	LLUUID	}
2493	}
2494	{
2495		ObjectData	Single
2496		{	ObjectID			LLUUID	}
2497		{	GrabOffsetInitial	LLVector3	}	// LLVector3
2498		{	GrabPosition		LLVector3	}	// LLVector3, region local
2499		{	TimeSinceLast		U32	}
2500	}
2501	{
2502		SurfaceInfo     Variable
2503		{   UVCoord     LLVector3 }
2504		{   STCoord     LLVector3 }
2505       	{   FaceIndex   S32 }
2506       	{   Position    LLVector3 }
2507       	{   Normal      LLVector3 }
2508       	{   Binormal    LLVector3 }
2509	}
2510
2511}
2512
2513
2514// ObjectDeGrab				
2515{
2516	ObjectDeGrab Low 119 NotTrusted Unencoded
2517	{
2518		AgentData		Single
2519		{	AgentID		LLUUID	}
2520		{	SessionID	LLUUID	}
2521	}
2522	{
2523		ObjectData			Single
2524		{	LocalID				U32  }
2525	}
2526	{
2527		SurfaceInfo     Variable
2528		{   UVCoord     LLVector3 }
2529		{   STCoord     LLVector3 }
2530       	{   FaceIndex   S32 }
2531       	{   Position    LLVector3 }
2532       	{   Normal      LLVector3 }
2533       	{   Binormal    LLVector3 }
2534	}
2535}
2536
2537
2538// ObjectSpinStart
2539{
2540	ObjectSpinStart Low 120 NotTrusted Zerocoded
2541	{
2542		AgentData			Single
2543		{	AgentID			LLUUID	}
2544		{	SessionID		LLUUID	}
2545	}
2546	{
2547		ObjectData			Single
2548		{	ObjectID		LLUUID	}
2549	}
2550}
2551
2552
2553// ObjectSpinUpdate
2554{
2555	ObjectSpinUpdate Low 121 NotTrusted Zerocoded
2556	{
2557		AgentData			Single
2558

Large files files are truncated, but you can click here to view the full file