# /*==LICENSE==*
# 
# CyanWorlds.com Engine - MMOG client, server and tools
# Copyright (C) 2011 Cyan Worlds, Inc.
# 
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# 
# Additional permissions under GNU GPL version 3 section 7
# 
# If you modify this Program, or any covered work, by linking or
# combining it with any of RAD Game Tools Bink SDK, Autodesk 3ds Max SDK,
# NVIDIA PhysX SDK, Microsoft DirectX SDK, OpenSSL library, Independent
# JPEG Group JPEG library, Microsoft Windows Media SDK, or Apple QuickTime SDK
# (or a modified version of those libraries),
# containing parts covered by the terms of the Bink SDK EULA, 3ds Max EULA,
# PhysX SDK EULA, DirectX SDK EULA, OpenSSL and SSLeay licenses, IJG
# JPEG Library README, Windows Media SDK EULA, or QuickTime SDK EULA, the
# licensors of this Program grant you additional
# permission to convey the resulting work. Corresponding Source for a
# non-source form of such a combination shall include the source code for
# the parts of OpenSSL and IJG JPEG Library used as well as that of the covered
# work.
# 
# You can contact Cyan Worlds, Inc. by email legal@cyan.com
#  or by snail mail at:
#       Cyan Worlds, Inc.
#       14617 N Newport Hwy
#       Mead, WA   99021
# 
# *==LICENSE==*/
#===============================================
# Changing an SDL record? Be sure to leave the 
# legacy record intact and make changes in
# a new copy of the record. - eap
#===============================================


#
# Animation State Description
#


#
# Defines the state of an animation controller
#
STATEDESC AnimTimeConvert
{
	VERSION 5	
	VAR INT			flags[1]				DEFAULT=0
	VAR FLOAT		lastStateAnimTime[1]	DEFAULT=0
	VAR FLOAT		loopEnd[1]				DEFAULT=0
	VAR FLOAT		loopBegin[1]			DEFAULT=0
	VAR FLOAT		speed[1]				DEFAULT=1
	VAR CREATABLE	speedEaseCurve[1]
	VAR BYTE		currentEaseCurve[1]		DEFAULT=0	# 0=nil, 1=easeIn, 2=easeOut, 3=speed
	VAR TIME		currentEaseBeginWorldTime[1]	DEFAULT=0
	VAR TIME		lastStateChange[1]		DEFAULT=0
}
STATEDESC AnimTimeConvert
{
	VERSION 6	
	VAR INT			flags[1]				DEFAULT=0
	VAR FLOAT		lastStateAnimTime[1]	DEFAULT=0
	VAR FLOAT		loopEnd[1]				DEFAULT=0
	VAR FLOAT		loopBegin[1]			DEFAULT=0
	VAR FLOAT		speed[1]				DEFAULT=1
	VAR BYTE		currentEaseCurve[1]		DEFAULT=0	# 0=nil, 1=easeIn, 2=easeOut, 3=speed
	VAR TIME		currentEaseBeginWorldTime[1]	DEFAULT=0
	VAR TIME		lastStateChange[1]		DEFAULT=0
}

#
# TOP LEVEL
# Describes the state of an animated object (non-material) 
#
STATEDESC AGMaster
{
	VERSION 5
	VAR $AnimTimeConvert	atcs[]						# variable length list 
	VAR BYTE				blends[]		
}

#
# TOP LEVEL
# Describes the state of an animated layer
#
STATEDESC Layer
{
	VERSION 6
	VAR $AnimTimeConvert	atc[1]

	VAR INT			passThruChannels[1]	DEFAULT=0
	VAR FLOAT		transform[]			# Size will be 0 or 16, depending on whether we own the channel

	VAR BYTE		channelData[]		# A byte array for the channels below. Its size
										# will depend on the layer's fOwnedChannels.
	#VAR RGB8		preshadeColor[1]	DEFAULT=(1,1,1)
	#VAR RGB8		runtimeColor[1]		DEFAULT=(1,1,1)		
	#VAR RGB8		ambientColor[1]		DEFAULT=(1,1,1)
	#VAR BYTE		opacity[1]			DEFAULT=255
}