// programmer
: ANDY
//
website : http://tw.myblog.yahoo.com/mmogc3d-mmogc3d/
// last
date : 2009.06.03
#ifndef __AV_ANI_SCRIPT_H
#define __AV_ANI_SCRIPT_H
#include <windows.h>
#define DLL_EXPORT_DEFINE __declspec( dllexport
)
//=============================================================================================================================================================
enum _ANI_COMMAND_TYPE_
{
ANI_COMMAND__NULL,
ANI_COMMAND__CREATE_ANI,
ANI_COMMAND__CREATE_RECT,
ANI_COMMAND__CTRL_ANI_START,
ANI_COMMAND__CTRL_ANI_END,
ANI_COMMAND__SET_ANI_RANGE,
ANI_COMMAND__PLAY_ANI_RANGE,
ANI_COMMAND__PLAY_ANI,
ANI_COMMAND__CONTINUE_PLAY_ANI,
ANI_COMMAND__WAIT_ANI,
ANI_COMMAND__WAIT_ALL_ANI,
ANI_COMMAND__WAIT,
ANI_COMMAND__BREAK,
ANI_COMMAND__PLAY_SOUND,
ANI_COMMAND__SET_ANI,
ANI_COMMAND__SET_IMAGE,
ANI_COMMAND__SET_POS,
ANI_COMMAND__SET_DELAY,
ANI_COMMAND__SET_COLOR,
ANI_COMMAND__SET_R,
ANI_COMMAND__SET_G,
ANI_COMMAND__SET_B,
ANI_COMMAND__SET_A,
ANI_COMMAND__SET_PIC_INDEX,
ANI_COMMAND__SET_COUNT,
ANI_COMMAND__SET_LAYER,
ANI_COMMAND__SHOW_PIC,
ANI_COMMAND__ADD_X,
ANI_COMMAND__ADD_Y,
ANI_COMMAND__FADE_IN,
ANI_COMMAND__FADE_OUT,
ANI_COMMAND__CALL_FUNC,
ANI_COMMAND__CALL_SCRIPT,
ANI_COMMAND__END_ANI,
ANI_COMMAND__END,
ANI_COMMAND_MAX,
// don't use.
};
//=============================================================================================================================================================
#define A_RENDER_STATE__COLOR_KEY 1
class DLL_EXPORT_DEFINE AniScriptEventInterface
{
public :
//------------------------------------------------------------
virtual void vOnScriptDraw( DWORD image_index, long x, long y, DWORD
pic_index, RECT *rect = NULL, DWORD show_type = A_RENDER_STATE__COLOR_KEY, BYTE
r = 255, BYTE g = 255,
BYTE b = 255, BYTE a = 255
){}
virtual void vOnScriptColorRect( RECT *rect, BYTE r =
255, BYTE g = 255,
BYTE b = 255, BYTE a = 255
){}
virtual DWORD vOnScriptGetImageCount( DWORD
image_index ){ return 0;
}
virtual void vOnScriptPlaySound( void *user_info, DWORD sound_index ){}
virtual void vOnScriptExtraFunc( void *user_info, DWORD script_index, DWORD
manage_number, DWORD func_index ){}
virtual void vOnScriptAniUpdate( void *user_info, DWORD script_index, DWORD
manage_number, DWORD ani_number, DWORD pic_index ){}
virtual void vOnScriptAniEnd( void *user_info, DWORD script_index, DWORD manage_number, DWORD
ani_number ){}
virtual void vOnScriptEnd( void
*user_info, DWORD script_index, DWORD manage_number ){}
//------------------------------------------------------------
};
//=============================================================================================================================================================
class DLL_EXPORT_DEFINE AniScriptComponent
{
public :
//------------------------------------------------------------
static AniScriptComponent* sCreate(
AniScriptEventInterface *this_link, void
*user_info, DWORD ani_script_max, DWORD table_y_max = 512,
DWORD temp_pointer_buffer_max = 32, DWORD
buffer_bytes_max = (1024 * 1024) * 1 );
virtual void
vRelease() = 0;
//------------------------------------------------------------
virtual BOOL vLoadScriptFile( WCHAR *path_file_name,
DWORD script_index, BOOL decode_flag = FALSE ) = 0;
virtual BOOL vRunScript( DWORD script_index, DWORD
manage_number, DWORD layer_index = 0 ) = 0; // layer_index 0~2
virtual BOOL vPlayAni() = 0;
virtual BOOL vPlayToEndScript( DWORD manage_number,
DWORD layer_index = 0 ) = 0;
virtual BOOL vStopScript( DWORD manage_number, DWORD
layer_index = 0 ) = 0;
// layer_index 0~2
virtual BOOL vSetParameter( DWORD manage_number,
DWORD parameter_index, long parameter_value,
DWORD layer_index = 0 ) = 0;
virtual BOOL vCheckScriptPlaying( DWORD
manage_number, DWORD layer_index = 0 ) = 0;
virtual void
vSetAniDisplayFlag( BOOL flag ) = 0;
//------------------------------------------------------------
};
#endif
// eof