TwlIPL_commit-99/add-ins/TwlSystem/include/nnsys/g2d/g2d_Animation_inline.h

313 lines
9.7 KiB
C
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*---------------------------------------------------------------------------*
Project: NITRO-System - include - nnsys - g2d
File: g2d_Animation_inline.h
Copyright 2004-2008 Nintendo. All rights reserved.
These coded instructions, statements, and computer programs contain
proprietary information of Nintendo of America Inc. and/or Nintendo
Company Ltd., and are protected by Federal copyright law. They may
not be disclosed to third parties or copied or duplicated in any form,
in whole or in part, without the prior written consent of Nintendo.
$Revision: 172 $
*---------------------------------------------------------------------------*/
#ifndef NNS_G2D_ANIMATION_INLINE_H_
#define NNS_G2D_ANIMATION_INLINE_H_
#ifdef __cplusplus
extern "C" {
#endif
//------------------------------------------------------------------------------
// inline functions
//------------------------------------------------------------------------------
/*---------------------------------------------------------------------------*
Name: NNS_G2dGetAnimCtrlType
Description: アニメーションコントローラ の アニメ種類を取得します。
Arguments: pAnimCtrl: アニメーションコントローラ 実体
Returns: コントローラの種類
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE NNSG2dAnimationType NNS_G2dGetAnimCtrlType
(
const NNSG2dAnimController* pAnimCtrl
)
{
NNS_G2D_NULL_ASSERT( pAnimCtrl );
if( pAnimCtrl->pAnimSequence != NULL )
{
return NNS_G2dGetAnimSequenceAnimType( pAnimCtrl->pAnimSequence );
}else{
return NNS_G2D_ANIMATIONTYPE_MAX;
}
}
/*---------------------------------------------------------------------------*
Name: NNS_G2dSetAnimCtrlSpeed
Description: アニメーションコントローラ の アニメスピードを設定します
Arguments: pAnimCtrl : アニメーションコントローラ 実体
speed : スピード
Returns: なし
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE void NNS_G2dSetAnimCtrlSpeed
(
NNSG2dAnimController* pAnimCtrl,
fx32 speed
)
{
NNS_G2D_NULL_ASSERT( pAnimCtrl );
pAnimCtrl->speed = speed;
}
/*---------------------------------------------------------------------------*
Name: NNS_G2dGetAnimCtrlSpeed
Description: アニメーションコントローラ の アニメスピードを取得します
Arguments: pAnimCtrl: アニメーションコントローラ 実体
Returns: アニメスピード
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE fx32 NNS_G2dGetAnimCtrlSpeed
(
const NNSG2dAnimController* pAnimCtrl
)
{
NNS_G2D_NULL_ASSERT( pAnimCtrl );
return pAnimCtrl->speed;
}
/*---------------------------------------------------------------------------*
Name: NNS_G2dStartAnimCtrl
Description: アニメーションコントローラ の アニメ再生をスタートします。
Arguments: pAnimCtrl: アニメーションコントローラ 実体
Returns: なし
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE void NNS_G2dStartAnimCtrl
(
NNSG2dAnimController* pAnimCtrl
)
{
NNS_G2D_NULL_ASSERT( pAnimCtrl );
pAnimCtrl->bActive = TRUE;
}
/*---------------------------------------------------------------------------*
Name: NNS_G2dStopAnimCtrl
Description: アニメーションコントローラ の アニメ再生を終了します。
Arguments: pAnimCtrl: アニメーションコントローラ 実体
Returns: コントローラの種類
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE void NNS_G2dStopAnimCtrl
(
NNSG2dAnimController* pAnimCtrl
)
{
NNS_G2D_NULL_ASSERT( pAnimCtrl );
pAnimCtrl->bActive = FALSE;
}
/*---------------------------------------------------------------------------*
Name: NNS_G2dIsAnimCtrlActive
Description: アニメーションコントローラ が アニメ再生中か調査します。
Arguments: pAnimCtrl: アニメーションコントローラ 実体
Returns: アニメ再生中ならTRUE
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE BOOL NNS_G2dIsAnimCtrlActive
(
const NNSG2dAnimController* pAnimCtrl
)
{
NNS_G2D_NULL_ASSERT( pAnimCtrl );
return pAnimCtrl->bActive;
}
/*---------------------------------------------------------------------------*
Name: NNS_G2dSetAnimCtrlPlayModeOverridden
Description: ファイル情報で設定されたアニメーションシーケンスの再生方式を
オーバーライドします。
Arguments: pAnimCtrl: アニメーションコントローラ 実体
playMode : アニメ再生方式
Returns: なし
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE void NNS_G2dSetAnimCtrlPlayModeOverridden
(
NNSG2dAnimController* pAnimCtrl,
NNSG2dAnimationPlayMode playMode
)
{
NNS_G2D_NULL_ASSERT( pAnimCtrl );
NNS_G2D_MINMAX_ASSERT( playMode, NNS_G2D_ANIMATIONPLAYMODE_FORWARD,
NNS_G2D_ANIMATIONPLAYMODE_REVERSE_LOOP );
pAnimCtrl->overriddenPlayMode = playMode;
}
/*---------------------------------------------------------------------------*
Name: NNS_G2dResetAnimCtrlPlayModeOverridden
Description: オーバーライドされたアニメ再生方式を元に戻します。
(ファイル情報で設定された再生方式に戻します)
Arguments: pAnimCtrl: アニメーションコントローラ 実体
Returns: なし
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE void NNS_G2dResetAnimCtrlPlayModeOverridden
(
NNSG2dAnimController* pAnimCtrl
)
{
NNS_G2D_NULL_ASSERT( pAnimCtrl );
pAnimCtrl->overriddenPlayMode = NNS_G2D_ANIMATIONPLAYMODE_INVALID;
}
/*---------------------------------------------------------------------------*
Name: NNS_G2dGetAnimCtrlCurrentTime
Description: アニメーションコントローラ の 現在のアニメフレーム表示時間を取得します
Arguments: pAnimCtrl: アニメーションコントローラ 実体
Returns: 現在のアニメフレーム表示時間
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE fx32 NNS_G2dGetAnimCtrlCurrentTime
(
const NNSG2dAnimController* pAnimCtrl
)
{
NNS_G2D_NULL_ASSERT( pAnimCtrl );
return pAnimCtrl->currentTime;
}
/*---------------------------------------------------------------------------*
Name: NNS_G2dSetAnimCtrlCurrentTime
Description: アニメーションコントローラ の 現在のアニメフレーム表示時間を設定します
Arguments: pAnimCtrl: アニメーションコントローラ 実体
time 現在のアニメフレーム表示時間
Returns: なし
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE void NNS_G2dSetAnimCtrlCurrentTime
(
NNSG2dAnimController* pAnimCtrl,
fx32 time
)
{
NNS_G2D_NULL_ASSERT( pAnimCtrl );
pAnimCtrl->currentTime = time;
}
/*---------------------------------------------------------------------------*
Name: NNS_G2dGetAnimCtrlCurrentElemIdxVal
Description: アニメーションコントローラ の
現在のアニメ結果からインデックスの値を取得します
Arguments: pAnimCtrl: アニメーションコントローラ 実体
Returns: 現在のアニメ結果のインデックス値
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE u16 NNS_G2dGetAnimCtrlCurrentElemIdxVal
(
const NNSG2dAnimController* pAnimCtrl
)
{
NNS_G2D_NULL_ASSERT( pAnimCtrl );
//
// どの形式のアニメーションであっても、先頭の2バイトは必ず、
// インデックス値として利用されています。
//
{
const NNSG2dAnimData* pAnmRes
= (const NNSG2dAnimData*)pAnimCtrl->pCurrent->pContent;
return (*pAnmRes);
}
}
/*---------------------------------------------------------------------------*
Name: NNS_G2dGetAnimCtrlCurrentAnimSequence
Description: アニメーションコントローラ の
現在のアニメーションシーケンスを取得します
Arguments: pAnimCtrl: アニメーションコントローラ 実体
Returns: 現在のアニメーションシーケンス
*---------------------------------------------------------------------------*/
NNS_G2D_INLINE const NNSG2dAnimSequence*
NNS_G2dGetAnimCtrlCurrentAnimSequence
(
const NNSG2dAnimController* pAnimCtrl
)
{
NNS_G2D_NULL_ASSERT( pAnimCtrl );
return pAnimCtrl->pAnimSequence;
}
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif // NNS_G2D_ANIMATION_INLINE_H_